- 10 Feb, 2017 40 commits
-
-
Christian Hergert authored
A bunch of this is no longer necessary now that we have the build pipeline. However, we need to merge it with configuration providers still so that we don't overload the runtime as the source for configuration information.
-
Christian Hergert authored
This registers various flatpak stages into the build pipeline so that they can ensure everything is setup to perform builds within the proper build environment.
-
Christian Hergert authored
This removes the vast amount of tricky code we previously had and moves it into a series of build stages to be attached to the build pipeline. As the configuration will not change during the lifetime of the pipeline, all of the work can be performed up front which should simplify some of our issues with threading in the build process (by making it go away). We can probably still simplify this further, but this at least gets everything working. I would like to see a transient stage added for running `make dist` to perform tarball creation.
-
Christian Hergert authored
We no longer want IdeMakecache to be in charge of executing the make -p -n -s process since that should be done anytime the configuration changes (and therefore belongs in the build pipeline). This simply allows us to create a new IdeMakecache from a makecache file on disk. We still use the runtime to perform various other make commands (like determining what needs to be rebuilt if a file changes).
-
Christian Hergert authored
This reduces the GCC diagnostics to simply register the regex for extraction when the build pipeline executes. This means that we do not need to many handlers for logs which should keep overhead low as we add additional error formats (such as for vala).
-
Christian Hergert authored
This updates the build tools plugin to use the build pipeline to track build progress and logging.
-
Christian Hergert authored
This is a simple build pipeline addin for cmake. It does not yet handle things like extracting build flags or targets. Also, it uses the Ninja backend for building since that seems to be the better performing version.
-
Christian Hergert authored
This converts the cargo operations into a series of build stages to be attached to the build pipeline.
-
Christian Hergert authored
Nothing surprising here. Just converts the operations into stages to be attached to the build pipeline.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
We need this a bit wider so it doesn't jump around so much.
-
Christian Hergert authored
-
Christian Hergert authored
This should not be necessary going forward. But should it be, we can bring it back.
-
Christian Hergert authored
This moves the build manager to use the new IdeBuildPipeline. We can drop a bunch of things such as IdeBuildResult and IdeBuilder with this design.
-
Christian Hergert authored
The new IdeBuildPipeline provides a pluggable pipeline with phases. Stages are attached within a given stage. When the pipeline is executed, it tries to avoid performing unnecessary work so that we can speed up the rate at which some user-actions can be performed (such as running). You can invalidate phases for which those stages will need to be re-executed next time the pipeline advances to that phase. Stages can override some of this behavior by attaching to the ::query signal to determine their "completed" status. If work needs to be performed asynchronously, it can put a "hold" on the stage and release the hold after the asynchronous work is completed. The pipeline will pause to wait for thie operation to complete. You likely want to use some of the pre-created build stage subclasses such as for creating directories, launching subprocesses, or performing transfers.
-
Christian Hergert authored
By adding the reapers, we can occasionally run the housekeeping or at least run them at shutdown.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
This is useful so that we can avoid setting up build pipelines unless we know we can make progress on the runtime.
-
Christian Hergert authored
-
Christian Hergert authored
This is a simplified directory reaper which can go through and remove files based on expiry time. It allows us to perform housecleaning as a single asynchronous step.
-
Christian Hergert authored
These might come back, but if they do, they will be part of a subclass specifically for the .buildconfig (and associated pipeline stages).
-
Christian Hergert authored
This simplified GSignal can be used to determine when the configuration has changed to the point of needing to prepare a new build pipeline.
-
Christian Hergert authored
This is a simplified logging infrastructure for use by the upcoming build pipeline. It extracts some of the techniques we were doing in IdeBuildResult into a more specific logging helper so that we don't overload too much complexity into one object.
-
Christian Hergert authored
This will be used by the build pipeline to locate staging (where we commit local files for the build) and where we install files (the repo).
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
This is an IdeTransfer implementation that can be used to install a flatpak runtime from a remote repository. This can be used with the upcoming IdeBuildStageTransfer to perform a runtime installation as part of the build pipeline.
-
Christian Hergert authored
-
Christian Hergert authored
This is mostly handled in other ways now that we have the flatpak clone stuff and simplified build infrastructure.
-
Christian Hergert authored
-
Christian Hergert authored
This simplifies the process of converting a GTimeSpan into a string for various UI. We should use it going forward to remove duplication.
-
Christian Hergert authored
This allows a check by transfer implementations to override whether or not they have completed. This might be useful for transfers that can be replayed due to something changing behind the scenes. (Such as a flatpak app/runtime installation).
-
Christian Hergert authored
If we did not exit cleanly due to a signal, we should propagate an error that looks closer to what other GLib APIs will return.
-
Christian Hergert authored
This can be generally useful, not just during tracing.
-
Christian Hergert authored
This can be convenient in a few cases to remove extra NULL checks in caller code.
-
Christian Hergert authored
-