-
Notifications
You must be signed in to change notification settings - Fork 97
Build System Update #1071
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Build System Update #1071
Conversation
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
Line 160 in 1329d56
Yes please (in |
6855be3
to
b9ad7b5
Compare
I installed FairCMakeModules v0.2.0 into all CI images (in |
4fe3ec9
to
25ff6ce
Compare
3 tasks
919f36c
to
831b1e3
Compare
831b1e3
to
a329a72
Compare
So that building and using this will already yield a newer version.
If a test passed, only 1 kB of it was sent to CDash. This is okay to get a quick look, but not at all, if you want to inspect things.
It looks like there once was a mode, where the subdirectories of a FairSoft/SIMPATH installation were structured for topics. This mode does not exist any more. If you install things into multiple prefixes (like with spack), use CMAKE_PREFIX_PATH to list all the prefixes and be done!
Bump the requirement on FairCMakeModules to 0.2. Version 0.2 brings support for find_package2_implicit_dependencies(). Also drop the internal fallbacks. All important distribution channels (FairSoft, brew, ...) have it now. It's easy to install from source. So there isn't a good reason to not have it installed.
First: Use find_package2_implicit_dependencies() in FairRoot and the templates. Second simplify FairLogger/fmt dependency handling: FairRoot itself is now fully using CMake targets. So there is no need to setup include directories for all and everything. On the other hand, projects using FairRoot are not yet there (especially, they can't with FairRoot itself until soon). So let's improve include directory handling for them. This is especially useful on spack based builds. See-Also: 89ccd48
fairsoft-config has two main points: * Provide the FairSoft version. FairRoot doesn't care at all. * Provide compiler flags and C++-Level. For the compiler flags, we just assume, that the user uses a compatible setting, really. For the C++-Level, we have fairroot_check_root_cxxstd_compatibility() to check for the compatibility with the ROOT C++-Level. (It currently only emits a warning.)
`fairroot_check_root_cxxstd_compatibility()` is a macro to check the compatibility of the current C++-Level with the one of ROOT. Recommend to use it and actually use it in the templates.
The new config mode package can easily transfer configure/build time information to the package consumer. Our config mode package is very minimal currently. So it doesn't pollute anything. So let's import (find_package) the config mode package from inside the find module!
First for users of FairRoot: * FairRoot exports the `CXX_STANDARD` level as `FairRoot_CXX_STANDARD`. * `Check_Compiler()` uses this to set the minimum `CXX_STANDARD` for any users of FairRoot. You should call `Check_Compiler()` after `find_package(FairRoot)`. For FairRoot itself: * If `CMAKE_CXX_STANDARD` is not set from outside, detect ROOT's `CXX_STANDARD` from its `target_compile_features()`. This means, that `Check_Compiler()` must be called after `find_package(ROOT)`. * If `CMAKE_CXX_STANDARD` is not set, try to ask fairsoft-config. * Handle `PROJECT_MIN_CXX_STANDARD`.
FairCMakeModules's new FairSummary has some nice function inspired by some of the code in FairRoot. Let's use it in FairRoot to replace our local code. Let's use it in the templates to make them better.
a329a72
to
72905d6
Compare
dennisklein
approved these changes
Jul 1, 2021
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.
fairsoft-config
usage (still used as a last fallback for C++-Level-Detection),FAIRSOFT_EXTERN
supportFairSummary
from FCMfind_package2_implicit_dependencies()
Checklist:
dev
branch