Open
Conversation
# Motivation To properly support ubuntu 24.04, building with `make` is not sufficient. Just managing the dependencies is difficult. Since this repository is already using `cmake` and `vcpkg` for building on windows, this commit is simply extending this for ubuntu-24.04. To build locally, you simply need to run `python continuous-integration/build.py` when you have all of the dependencies installed. These you can install by running `continuous-integration/ubuntu-24.04/setup.sh`. Alternatively you can just do the same as the Github Actions workflow run and do the same as it does. The usage of `ninja` as generator and `gcc` as compiler is completely arbitrary. However the setup is configured so that adding support for a different compiler such as `clang` could be done with minimal effort. Since we now use `CMakePresets.json` to provide `vcpkg` to `CMake`, this forces a bump to `CMake` version 3.19. # Rejected alternatives The system dependencies that we rely on could be installed with `nix` + `devenv`, but I decided that this might be a bit too controversial/overkill for the initial ubuntu build. Using `AppVeyor` to build targeting different platforms + compilers could be an option, however this is difficult for anyone that is not the repository owner to contribute, as the `AppVeyor` settings are not something that are visible to others. By using `Github Actions` makes it possible for others that fork this repository to have working builds from the very start. # Future work This commit only ensures that the build actually succeeds, if the resulting artifacts can actually be run is a different task altogether. There are a lot of compiler warnings like ``` warning: invalid use of incomplete type 'struct CommonGameState' ``` That is printed to stdout when building, but these would need to be addressed in a future commit.
Contributor
Author
|
As mentioned before, feel free to reject this pull request if it is not to your liking :) Also, the As I do not have access to AppVeyor settings, I am not quite sure what is actually being run. But from the command, it seems like you are running |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
To properly support ubuntu 24.04, building with
makeis not sufficient. Just managing the dependencies is difficult. Since this repository is already usingcmakeandvcpkgfor building on windows, this commit is simply extending this for ubuntu-24.04.To build locally, you simply need to run
python continuous-integration/build.pywhen you have all of the dependencies installed. These you can install by runningcontinuous-integration/ubuntu-24.04/setup.sh.Alternatively you can just do the same as the Github Actions workflow run and do the same as it does.
The usage of
ninjaas generator andgccas compiler is completely arbitrary. However the setup is configured so that adding support for a different compiler such asclangcould be done with minimal effort.Since we now use
CMakePresets.jsonto providevcpkgtoCMake, this forces a bump toCMakeversion 3.19.Rejected alternatives
The system dependencies that we rely on could be installed with
nix+devenv, but I decided that this might be a bit too controversial/overkill for the initial ubuntu build.Using
AppVeyorto build targeting different platforms + compilers could be an option, however this is difficult for anyone that is not the repository owner to contribute, as theAppVeyorsettings are not something that are visible to others.By using
Github Actionsmakes it possible for others that fork this repository to have working builds from the very start.Future work
This commit only ensures that the build actually succeeds, if the resulting artifacts can actually be run is a different task altogether.
There are a lot of compiler warnings like
That is printed to stdout when building, but these would need to be addressed in a future commit.