Now that things are able to be compiled with wxUSE_GUI=0, the only real difference between the gui and non-gui applications is that the gui applications pop up a frame. We can #ifdef this with the wxUSE_GUI define and pull it out. This way the main apps are exactly the same and we can maintain them better.
This also lays the framework for fixing some of the assertions for the remote commands since it gives us an event loop in both main threads.
Additionally, this may allow Windows users to have a non-gui app that they can run from the command line and potentially as a service. Someone should try compiling the Windows app with wxUSE_GUI=0 defined and see if they get a good binary that runs.
Now that things are able to be compiled with wxUSE_GUI=0, the only real difference between the gui and non-gui applications is that the gui applications pop up a frame. We can #ifdef this with the wxUSE_GUI define and pull it out. This way the main apps are exactly the same and we can maintain them better.
This also lays the framework for fixing some of the assertions for the remote commands since it gives us an event loop in both main threads.
Additionally, this may allow Windows users to have a non-gui app that they can run from the command line and potentially as a service. Someone should try compiling the Windows app with wxUSE_GUI=0 defined and see if they get a good binary that runs.