diff --git a/cmake/CORALBuildFlags.cmake b/cmake/CORALBuildFlags.cmake index 6d151baceca71c3518527ba72afd5b857e378d7d..a7770aedb3b5aa2bd05f68e37d682077dd8fcdaf 100644 --- a/cmake/CORALBuildFlags.cmake +++ b/cmake/CORALBuildFlags.cmake @@ -1,15 +1,32 @@ # Build options option(BUILD_SHARED_LIBS "Set to OFF to build static libraries." ON) -# Build flags +# Build flags (C++ std) +# [NB Keep flags passed from outside, e.g. from lcgcmake (CORALCOOL-2854)] +IF(NOT CMAKE_CXX_FLAGS MATCHES "std=c\\+\\+11" AND NOT CMAKE_CXX_FLAGS MATCHES "std=c\\+\\+1y" AND NOT CMAKE_CXX_FLAGS MATCHES "std=c\\+\\+14") + IF(BINARY_TAG MATCHES "clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + ELSEIF(BINARY_TAG MATCHES "gcc5") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + ELSEIF(BINARY_TAG MATCHES "gcc49") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y") + ELSEIF(BINARY_TAG MATCHES "gcc48") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + ENDIF() +ENDIF() + +# Build flags (warnings and other common options) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -fPIC") + +# Build flags (other platform-dependent settings) IF(CMAKE_HOST_SYSTEM_NAME MATCHES "Darwin") - set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ELSEIF(BINARY_TAG MATCHES "clang35") # See CORALCOOL-2821 - ###set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC --gcc-toolchain=/afs/cern.ch/sw/lcg/external/gcc/4.9.1/x86_64-slc6") - set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC --gcc-toolchain=/cvmfs/sft.cern.ch/lcg/releases/gcc/4.9.1/x86_64-slc6") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=/cvmfs/sft.cern.ch/lcg/releases/gcc/4.9.1/x86_64-slc6") # cvmfs instead of AFS, see CORALCOOL-2855 ELSEIF(BINARY_TAG MATCHES "clang37") # See CORALCOOL-2821 - ###set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC --gcc-toolchain=/afs/cern.ch/sw/lcg/external/gcc/4.9.3/x86_64-slc6") - set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC --gcc-toolchain=/cvmfs/sft.cern.ch/lcg/releases/gcc/4.9.3/x86_64-slc6") # use cvmfs, see CORALCOOL-2855 + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=/cvmfs/sft.cern.ch/lcg/releases/gcc/4.9.3/x86_64-slc6") # cvmfs instead of AFS, see CORALCOOL-2855 ELSE() - set(CMAKE_CXX_FLAGS "-pedantic -Wall -Wextra -Wno-long-long -Wno-deprecated -pthread -std=c++11 -fPIC -Wl,--no-undefined") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--no-undefined") ENDIF() + +message(STATUS "Using CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}") diff --git a/setupCMake.sh b/setupCMake.sh index 84ee61db33f8a952ebf0e7511b30c14598ba0653..e0f3fe59e9da06a74acdee95dcc755c804953deb 100644 --- a/setupCMake.sh +++ b/setupCMake.sh @@ -96,6 +96,9 @@ export CCACHE_DIR=$topdir/.ccache # keep this here to allow interactive queries export LCG_releases_base=/cvmfs/sft.cern.ch/lcg/releases/LCG_${lcg_xx} export CORALCOOL_CMAKE_LCGSUMMARY=${LCG_releases_base}/LCG_externals_${BINARY_TAG}.txt +# Test passing CMAKE_CXX_FLAGS as in lcgcmake +###export CMAKEFLAGS="-DCMAKE_CXX_FLAGS=-std=c++1y $CMAKEFLAGS" + # Add setup overrides if any are present if [ -f $topdir/overrideSetupCMake.sh ]; then echo "INFO: override defaults using $topdir/overrideSetupCMake.sh"