Conditional build of the algo directory
Build the algo subdirectory only if C++17 is the chosen c++ standard. The value depends on the C++ standard used to compile FairSoft.
Merge request reports
Activity
added Build System label
mentioned in merge request !567 (merged)
added 5 commits
-
5012cb18...22c9d45e - 4 commits from branch
computing:master
- c29f97e9 - Conditional build of the algo directory
-
5012cb18...22c9d45e - 4 commits from branch
- Resolved by Pierre-Alain Loizeau
Small interrogation which can be resolved later given the small change: should we stick to
EQUAL
or bet on the future and plan that the compilation is enabled forc++17 and higher
?I did not comment directly on the line to avoid triggering a thread blocking the merge as the MR is still OK as is ^^'
Dear @f.uhlig, @v.friese, @p.-a.loizeau,
you have been identified as code owner of at least one file which was changed with this merge request.
Please check the changes and approve them or request changes.
added CodeOwners label
@f.uhlig Can you please give a quick summary why this change was done? (This is relevant for my work on unit tests)
- Resolved by Florian Uhlig
@v.friese What did you do to solve this? Update FairSoft? I currently comment out the if() statement on my machine, to get algo to compile, but run into some problems. I really want to avoid going through the FairSoft installation again if possible.
the code uses C++17 features and does not compile if the compiler doesn't support that. Which FairSoft version do you use?
- Resolved by Dominik Smith
I use "jun19p1".
I was trying to work in unit tests for the trigger algorithm. When compiling the cbmroot I noticed that the algo subdirectory is not compiled, so I commented out the if-statement. Now I get the following error:
Warning in cling::IncrementalParser::CheckABICompatibility(): Possible C++ standard library mismatch, compiled with __GLIBCXX__ '20200408' Extraction of runtime standard library version was: '20200808' /home/dsmith/cbmroot/core/data/psd/CbmPsdDigi.cxx:14:10: fatal error: TBuffer.h: No such file or directory 14 | #include <TBuffer.h> // for TBuffer | ^~~~~~~~~~~ compilation terminated. make[2]: *** [algo/data/CMakeFiles/OnlineData.dir/build.make:219: algo/data/CMakeFiles/OnlineData.dir/__/__/core/data/psd/CbmPsdDigi.cxx.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /home/dsmith/cbmroot/core/data/tof/CbmTofDigi.cxx:13:10: fatal error: TString.h: No such file or directory 13 | #include <TString.h> // for Form, TString | ^~~~~~~~~~~ compilation terminated. make[2]: *** [algo/data/CMakeFiles/OnlineData.dir/build.make:167: algo/data/CMakeFiles/OnlineData.dir/__/__/core/data/tof/CbmTofDigi.cxx.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:4348: algo/data/CMakeFiles/OnlineData.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs....
This seems to be super unrelated to what I am currently working on. I'm also not sure what "TString.h" and "TBuffer.h" have to do with C++ 17. I was wondering if there is some quick fix through which I can disable the corresponding classes.