Fix mismatching c++ std between CLUMPY and ROOT
In order to make compilation easier I suggest we automatically detect what c++ std was used in compilation of root and add the corresponding result to CMAKE_CXX_FLAGS. The solution seems to be to replace the following lines in CMakeLists.txt:
if( COMPILER_SUPPORTS_CXX17 )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17" )
message( " N.B.: ROOT version=6 => set compiler flag -std=c++17" )
elseif( COMPILER_SUPPORTS_CXX14 )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
message( " N.B.: ROOT version=6 => set compiler flag -std=c++14" )
elseif( COMPILER_SUPPORTS_CXX11 )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
message( " N.B.: ROOT version=6 => set compiler flag -std=c++11" )
else()
message( FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has neither C++11 nor C++14 support needed for ROOT 6. Please use a different C++ compiler or a ROOT 5 version." )
endif()
with
execute_process(COMMAND bash "-c" "bash ${ROOTSYS}/bin/root-config --cflags" OUTPUT_VARIABLE ROOT_CppSTD)
message("root-config --cflags are set to: ${ROOT_CppSTD}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ROOT_cppSTD}")
I will create a branch with this issue number and will make a pull request into master. Please take a look @dmaurin @combet