Introduced process querying API for all the platforms
we currently support. With this we are able to get
realiable data about system processes.
We use this API to track running process instances
launched from Edi.
Also, this allows for a much cleaner implementation
of the edi_debug code when tracking the debug process.
Essentially using the new API to track both running
instances and debugged instances.
Moreover, simplifying this by using a timer in
edi_main to keep track of these occurences.
We can now reliably track use of the 'Run' command
in the toolbar and menu. Adding a 'Terminate' to
compliment. The UI now responds properly to running
or non-running Edi launched process instances.
This adds tracking of other build types and their exit status and
allows us to use desktop notification for these also. Also cleaned
up some unnecessary cleanup code.
This adds two methods for handling executing shells async. The notification
has been reworked to use this method so there is less blocking. A callback
can be passed to the handler method for various actions on the exit status
of the script execution.
This patch adds tracking of the build process's status code. This allows us
to respond to the build process within the program much easier. Also added
a simple API for desktop notification of the build process and its exit code
which is useful and pretty.
In the process we needed to define if a project can be run...
Python and rust can always be run as they will build their binaries
whereas make and cmake need to be configured etc...