diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index 72117b11762b647c7cc591b337c9f129c330b007..3ad5ab8281336b01ca2c5447823a820748f68610 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -25,6 +25,12 @@ endif() # Set additional user-given compiler flags set(CMAKE_CXX_FLAGS ${OGS_CXX_FLAGS}) +if(OGS_CPU_ARCHITECTURE STREQUAL "generic") + set(CPU_FLAGS "-mtune=generic") +else() + set(CPU_FLAGS "-march=${OGS_CPU_ARCHITECTURE}") +endif() + ### GNU C/CXX compiler if(COMPILER_IS_GCC) get_gcc_version(GCC_VERSION) @@ -33,14 +39,14 @@ if(COMPILER_IS_GCC) endif() if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug") message(STATUS "Set GCC release flags") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=${OGS_CPU_ARCHITECTURE} -DNDEBUG") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -DNDEBUG") else() # Enable assertions in STL in debug mode. if (NOT STL_NO_DEBUG) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_ASSERT -D_GLIBCXX_DEBUG_PEDASSERT -D_GLIBCXX_DEBUG_VERIFY") endif() endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wno-deprecated -Wall -Wextra") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CPU_FLAGS} -std=c++11 -Wno-deprecated -Wall -Wextra") endif() # COMPILER_IS_GCC ### Clang @@ -48,7 +54,7 @@ if(COMPILER_IS_CLANG) if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "3.3") message(FATAL_ERROR "Aborting: Clang 3.3 is required! Found version ${CMAKE_CXX_COMPILER_VERSION}") endif() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-c++98-compat-pedantic -march=${OGS_CPU_ARCHITECTURE}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CPU_FLAGS} -std=c++11 -Wall -Wno-c++98-compat-pedantic") if(CMAKE_BUILD_TYPE STREQUAL "Debug") # Enable assertions in STL in debug mode. if (NOT STL_NO_DEBUG)