Skip to content

Refactor image building and build type selection

This is a major refactoring of how images are built and how they are used and labelled:

  • The base images now export a set of toolchains like gcc-7-14 or clang-6-libcpp-17. These are simply defined by sourceable files in /duneci/toolchains. There is also a default toolchain for each image.
  • Based on these toolchains, there is a single opts file called dune.opts. This file imports the selected toolchain and offers two extension points:
    • Images further down the chain can put files in /duneci/cmake-flags. These files will be sourced by the opts file after the basic flags have been set up and can append / override those flags.
    • Jobs can specify a variable DUNECI_CMAKE_FLAGS, which will be appended to the end of the flags.
  • The core images are now templated on both the base image and the toolchain. Based on those parameters, the system now builds a much larger set of core images for different combinations of distributions and toolchains. The old images are still available under their short names, but the alternative opts files are gone.
Edited by Steffen Müthing

Merge request reports