Oolite build system

From Elite Wiki

Here is the result of this forum thread: gitversion.sh / meson.build changes

Build system.png
Build Step Description Requires Provides
configure system manually A developer will maintain his development system will all the required tools and dependencies to build Oolite. Should be supported by scripts. nothing configured system
checkout code Clone and checkout from the Oolite git repository so it resides in the local filesystem. configured system working tree
change code A developer will change code in the local filesystem to whatever extent. working tree modified working tree
meson setup working tree meson configuration files
meson compile meson configuration files compiled and linked output in the build directory
test/debug manually A developer will test manually, focusing on the changes he/she applied. compiled and linked output in the build directory nothing
meson test runs predefined tests compiled and linked output in the build directory error log and return status code
meson install copies Oolite files to another location on disk compiled and linked output in the build directory files in new output location
meson uninstall reverse opertion for meson install. Removes the files from the new output location files in new output location nothing
push changes Push the changes back into the Oolite repository. Likely involves commit and pull request actions. modified working tree unmodified working tree
configure system automatically Similar to the `configure system manually` step, in CI builds all this has to be scripted. nothing configured system
calculate version number Generates the checked out version's semver. working tree
generate tar.gz Generates an Oolite distribution as tar ball. compiled and linked output in the build directory the tar.gz file
generate AppImage Generates a Linux AppImage. the tar.gz file the AppImage
generate Flatpak Generates a Linux Flatpak image. the tar.gz file the Flatpak
generate MSIX Generates a Windows installer for Oolite using MSIX. the tar.gz file the MSIX package
generate NSIS Generates a Windows installer for Oolite using NSIS. the tar.gz file the executable installer
tag source code The CI run will tag the version in the official repository so it is available to all other steps. the version number tagged git revision
upload artifacts Uploads generated artifacts to a Github Release so they are available to the public. any kind of artifact artifacts attached to the release on Github
prepare Similar to the `configure system automatically` step, this step will prepare an AUR build environment to build Oolite. nothing configured system
pkgver Checks the version tag of the local source code and transforms it from semver to an AUR package version number.
package Generates the AUR package.
publish on AUR Pushes the AUR package into the AUR repository.


   {
       "builder": "unknown",
       "title": "Oolite core",
       "identifier": "org.oolite.oolite",
       "required_oolite_version": "1.93",
       "license": "GPL 2+ / CC-BY-NC-SA 3.0 - see LICENSE.md for details",
       "author": "Giles Williams, Jens Ayton and contributors",
       "information_url": "https://oolite.space/",
       "expansion_catalog": "https://addons.oolite.space/api/1.0/overview/"
   }