diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d15cc55af127877043090f7342ebd7dca68928c..b7b453d09aad6ef7262b520e34237e52f1b67d8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,11 +68,11 @@ include(GetFilenameComponent) # overwrite CMake command include(CheckCompiler) include(Dependences) if(ZERO_TOLERANCE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wfatal-errors") + string(APPEND CMAKE_CXX_FLAGS " -Werror -Wfatal-errors") endif() if(BORNAGAIN_GUI) include(SearchQt) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DHAVE_QT=ON") + string(APPEND CMAKE_CXX_FLAGS " -DHAVE_QT=ON") endif() include(BornAgainConfiguration) include(GeneratePythonDocs) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index a6cdd7d869dbf59833be88205d1c26f90eeb87ea..2c90cb7a7a1b07868d1b328a5a232010178caeb7 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -14,7 +14,7 @@ if((NOT Cerf_IS_CPP) AND (NOT WIN32)) # TEMPORARY list(APPEND source_files ${CMAKE_SOURCE_DIR}/ThirdParty/Core/cerf_wrapper/cerf_ptr.c) endif() if(${Cerf_IS_CPP}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERF_AS_CPP=ON") + string(APPEND CMAKE_CXX_FLAGS " -DCERF_AS_CPP=ON") endif() @@ -87,7 +87,7 @@ endif(BORNAGAIN_PYTHON) # --- making library --- if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") + string(APPEND CMAKE_CXX_FLAGS " -DBA_CORE_BUILD_DLL") endif() add_library(${lib} SHARED ${source_files}) diff --git a/Fit/CMakeLists.txt b/Fit/CMakeLists.txt index 7740e36b4ae58e38695578e5514fe83ad7290447..da0970c54be8289da6266b9a7ccd0086b0d59222 100644 --- a/Fit/CMakeLists.txt +++ b/Fit/CMakeLists.txt @@ -81,7 +81,7 @@ endif(BORNAGAIN_PYTHON) # --- making library --- if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") + string(APPEND CMAKE_CXX_FLAGS " -DBA_CORE_BUILD_DLL") endif() add_library(${lib} SHARED ${source_files}) diff --git a/GUI/coregui/CMakeLists.txt b/GUI/coregui/CMakeLists.txt index 503528b98fdc61012b9a645d996c8eea1b0f156b..965d4b8b2dc308dffe9c56556e9ec375dd6f65b2 100644 --- a/GUI/coregui/CMakeLists.txt +++ b/GUI/coregui/CMakeLists.txt @@ -77,7 +77,7 @@ if(BORNAGAIN_CRASHHANDLER) endif() if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") + string(APPEND CMAKE_CXX_FLAGS " -DBA_CORE_BUILD_DLL") endif() diff --git a/Tests/UnitTests/Numeric/CMakeLists.txt b/Tests/UnitTests/Numeric/CMakeLists.txt index dcf378af198be025a4f0b606cb18bf1f977541d3..66bdd0c0fa8060787581a34cdf65c4859433b585 100644 --- a/Tests/UnitTests/Numeric/CMakeLists.txt +++ b/Tests/UnitTests/Numeric/CMakeLists.txt @@ -3,7 +3,7 @@ include(GoogleTest) # provides gtest_discover_tests set(test UnitTestNumeric) if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_LINKED_AS_SHARED_LIBRARY=1") + string(APPEND CMAKE_CXX_FLAGS " -DGTEST_LINKED_AS_SHARED_LIBRARY=1") endif() file(GLOB source_files "*.cpp" ${CMAKE_SOURCE_DIR}/Tests/GTestWrapper/TestAll.cpp) diff --git a/cmake/extensions/CoverageFunction.cmake b/cmake/extensions/CoverageFunction.cmake index 96ae3108af41982c1122a4e8e7f75cc57de1aee6..17f3aaebdec671fe0bd9dfae5741a48e9954985d 100644 --- a/cmake/extensions/CoverageFunction.cmake +++ b/cmake/extensions/CoverageFunction.cmake @@ -38,13 +38,13 @@ else() endif() if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -coverage") + string(APPEND CMAKE_C_FLAGS " -coverage") else() message(ERROR "C compiler is not GNU; don't know how to set code coverage flags!") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -coverage") + string(APPEND CMAKE_CXX_FLAGS " -coverage") else() message(ERROR "CXX compiler is not GNU; don't know how to set code coverage flags!") endif() diff --git a/cmake/extensions/DebugOptimization.cmake b/cmake/extensions/DebugOptimization.cmake index 0a19de98457f72f5a71a9695bce94ccdb618d0d9..6683d7172d323bc240e6816913b4fae36637da69 100644 --- a/cmake/extensions/DebugOptimization.cmake +++ b/cmake/extensions/DebugOptimization.cmake @@ -17,13 +17,13 @@ # if(CMAKE_C_COMPILER_ID STREQUAL "GNU") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Og") + string(APPEND CMAKE_C_FLAGS " -Og") else() message(WARNING "C compiler is not GNU; debug optimization has no effect") endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og") + string(APPEND CMAKE_CXX_FLAGS " -Og") else() message(WARNING "C compiler is not GNU; debug optimization has no effect") endif() diff --git a/cmake/modules/BornAgainConfiguration.cmake b/cmake/modules/BornAgainConfiguration.cmake index 38e37a2c9e351665405c649b1560596844d92c69..b2731756514ec2f393df46fca6da842c36feb4dd 100644 --- a/cmake/modules/BornAgainConfiguration.cmake +++ b/cmake/modules/BornAgainConfiguration.cmake @@ -117,7 +117,7 @@ endif() configure_file(${CONFIGURABLES_DIR}/BAVersion.h.in ${BUILD_INC_DIR}/BAVersion.h @ONLY) configure_file(${CONFIGURABLES_DIR}/BABuild.h.in ${BUILD_INC_DIR}/BABuild.h @ONLY) configure_file(${CONFIGURABLES_DIR}/BATesting.h.in ${BUILD_INC_DIR}/BATesting.h @ONLY) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${BUILD_INC_DIR}") +string(APPEND CMAKE_CXX_FLAGS " -I${BUILD_INC_DIR}") configure_file(${CMAKE_SOURCE_DIR}/Examples/python/utils/plot_intensity_data.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/plot_intensity_data.py COPYONLY) diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake index 8a0c88c44b025cf136e5d726914d9ea62a19cf3e..1d6bd9de095e34075b21a30c3d68d927b5f9aa13 100644 --- a/cmake/modules/CheckCompiler.cmake +++ b/cmake/modules/CheckCompiler.cmake @@ -32,11 +32,11 @@ message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}") set(all_cxx_flags ${CMAKE_CXX_FLAGS}) if(CMAKE_BUILD_TYPE STREQUAL "Release") - set(all_cxx_flags "${all_cxx_flags} ${CMAKE_CXX_FLAGS_RELEASE}") + string(APPEND all_cxx_flags " ${CMAKE_CXX_FLAGS_RELEASE}") elseif(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(all_cxx_flags "${all_cxx_flags} ${CMAKE_CXX_FLAGS_DEBUG}") + string(APPEND all_cxx_flags " ${CMAKE_CXX_FLAGS_DEBUG}") elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") - set(all_cxx_flags "${all_cxx_flags} ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") + string(APPEND all_cxx_flags " ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") endif() message(STATUS "Compiler Flags: ${all_cxx_flags}") diff --git a/cmake/modules/SetUpLinux.cmake b/cmake/modules/SetUpLinux.cmake index aeaa68e225788f2681a63ec5f1b23988b9096972..2f482eea00075e9c0b7430db478bb8cd8b962ea3 100644 --- a/cmake/modules/SetUpLinux.cmake +++ b/cmake/modules/SetUpLinux.cmake @@ -19,6 +19,6 @@ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") set(CMAKE_C_FLAGS_RELEASE "-O3") set(CMAKE_C_FLAGS_DEBUG "-g") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SOURCE_DIR}/Wrap -pipe ${BIT_ENVIRONMENT} -Wall -W -Woverloaded-virtual -Wno-unknown-pragmas -fPIC") -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe ${BIT_ENVIRONMENT} -Wall -W -fPIC") +string(APPEND CMAKE_CXX_FLAGS " -I${CMAKE_SOURCE_DIR}/Wrap -pipe ${BIT_ENVIRONMENT} -Wall -W -Woverloaded-virtual -Wno-unknown-pragmas -fPIC") +string(APPEND CMAKE_C_FLAGS " -pipe ${BIT_ENVIRONMENT} -Wall -W -fPIC") set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined") diff --git a/cmake/modules/SetUpMacOS.cmake b/cmake/modules/SetUpMacOS.cmake index 485649d818a0ea4eb80561b8b904cf55abafbb73..6e6867d0d4e531d77716c343866f15c32b1a04f8 100644 --- a/cmake/modules/SetUpMacOS.cmake +++ b/cmake/modules/SetUpMacOS.cmake @@ -21,16 +21,16 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin) MESSAGE(STATUS "Found a 64bit system") set(BORNAGAIN_ARCHITECTURE macosx64) SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}") - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -m64") - SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -m64") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64") - SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m64") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS " -m64") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS " -m64") + string(APPEND CMAKE_CXX_FLAGS " -m64") + string(APPEND CMAKE_C_FLAGS " -m64") + string(APPEND CMAKE_FORTRAN_FLAGS " -m64") else(${SYSCTL_OUTPUT} MATCHES 64) MESSAGE(STATUS "Found a 32bit system") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32") - SET(CMAKE_FORTRAN_FLAGS "${CMAKE_FORTRAN_FLAGS} -m32") + string(APPEND CMAKE_CXX_FLAGS " -m32") + string(APPEND CMAKE_C_FLAGS " -m32") + string(APPEND CMAKE_FORTRAN_FLAGS " -m32") endif(${SYSCTL_OUTPUT} MATCHES 64) endif() @@ -38,17 +38,17 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin) message(STATUS "Found GNU compiler collection") execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -fsigned-char -fno-common") + string(APPEND CMAKE_CXX_FLAGS " -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common") + string(APPEND CMAKE_C_FLAGS " -pipe -W -Wall -fsigned-char -fno-common") SET(CMAKE_Fortran_FLAGS "${CMAKE_FORTRAN_FLAGS} -std=legacy") SET(CINT_CXX_DEFINITIONS "-DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__STD_EXCEPTION") SET(CINT_C_DEFINITIONS "-DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__STD_EXCEPTION") - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") - SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup") - set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -bind_at_load -m64") - set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -bind_at_load -m64") + string(APPEND CMAKE_C_LINK_FLAGS " -bind_at_load -m64") + string(APPEND CMAKE_CXX_LINK_FLAGS " -bind_at_load -m64") # Select flags. set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") @@ -73,17 +73,17 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin) message(STATUS "Found LLVM compiler collection") execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe -W -Wall -fsigned-char -fno-common") + string(APPEND CMAKE_CXX_FLAGS " -pipe -W -Wall -Woverloaded-virtual -fsigned-char -fno-common") + string(APPEND CMAKE_C_FLAGS " -pipe -W -Wall -fsigned-char -fno-common") # SET(CMAKE_Fortran_FLAGS "${CMAKE_FORTRAN_FLAGS} -std=legacy") # SET(CINT_CXX_DEFINITIONS "-DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__STD_EXCEPTION") # SET(CINT_C_DEFINITIONS "-DG__REGEXP -DG__UNIX -DG__SHAREDLIB -DG__ROOT -DG__REDIRECTIO -DG__OSFDLL -DG__STD_EXCEPTION") - SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") - SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup") + string(APPEND CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS " -flat_namespace -single_module -undefined dynamic_lookup") - set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -bind_at_load -m64") - set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -bind_at_load -m64") + string(APPEND CMAKE_C_LINK_FLAGS " -bind_at_load -m64") + string(APPEND CMAKE_CXX_LINK_FLAGS " -bind_at_load -m64") # Select flags. set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") @@ -106,7 +106,7 @@ if (CMAKE_SYSTEM_NAME MATCHES Darwin) MESSAGE(FATAL_ERROR "There is no setup for this compiler up to now. Don't know waht to do. Stop cmake at this point.") endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SOURCE_DIR}/Wrap") + string(APPEND CMAKE_CXX_FLAGS " -I${CMAKE_SOURCE_DIR}/Wrap") else (CMAKE_SYSTEM_NAME MATCHES Darwin) MESSAGE(FATAL_ERROR "There is no setup for this this Apple system up to now. Don't know waht to do. Stop cmake at this point.") diff --git a/cmake/modules/SetUpWindows.cmake b/cmake/modules/SetUpWindows.cmake index 84c23c986d376fb3259b25c5e69a0bb080e58d56..632aea5b8bdf0c9eaa93bc28a4543d5b870d6998 100644 --- a/cmake/modules/SetUpWindows.cmake +++ b/cmake/modules/SetUpWindows.cmake @@ -11,5 +11,5 @@ endif() add_definitions(-DEIGEN_DONT_ALIGN_STATICALLY=1) message(STATUS "Disabling static align for Eigen") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /D_USE_MATH_DEFINES /wd4005 /wd4244 -I${CMAKE_SOURCE_DIR}/Wrap -FIw32pragma.h") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /NODEFAULTLIB:libcmtd.lib") +string(APPEND CMAKE_CXX_FLAGS " /MP /D_USE_MATH_DEFINES /wd4005 /wd4244 -I${CMAKE_SOURCE_DIR}/Wrap -FIw32pragma.h") +string(APPEND CMAKE_SHARED_LINKER_FLAGS " /NODEFAULTLIB:libcmtd.lib")