Skip to content

Simplify CMakeLists and plugin handling

Moritz Kiehn requested to merge msmk-cmake_coordination into master
  • Introduce add_subdirectory_if, add_component, and add_component_if similar to the framework. The later functions automatically adds the subdirectory name to the list of supported components.
  • Consistent names: all (optional) components are located in subdirectories of the corresponding name. The plugins are therefore located in ...Plugin subdirectories instead of ...Plugins. This change is only performed on the cmake level, headers paths are untouched to avoid breaking dependent software. To be considered in the future.
  • Centralize options and required packages in the main CMakeLists.txt file. By looking at this file you now see directly what can be configured and what is required.
  • Drop inconsistent/confusing options: ACTS_FIND_QIET conflicts with REQUIRED in all find_package(...) calls, PRINT_OPTIONS is pure duplication since the options are already listed both in the main CMakeLists.txt file and in the README file.
  • Extend the generated version header and use .hpp extension for consistency with the rest of the code base. This is a possible breaking change, but there seems to be no code that actually includes the file here.
  • Prefix all build options with ACTS_... for consistency and to avoid conflicts with options from our packages. This is a breaking change.

Open questions:

  • I would like to remove the automatic ccache setup. I don't think it belongs into the build instructions since it is a developer-dependent setting and can be easily enable using CXX='ccache g++' cmake .... If we want to be able to include acts directly as a subproject in the framework, this also forces this setting on everything else which might not be what we want.

Fixes ACTS-374.

Edited by Moritz Kiehn

Merge request reports