diff --git a/CMakeLists.txt b/CMakeLists.txt index fe73be98749a9420cdae82c25c46c3f4323aed3e..114f67bd55361baf12a97902bfa916becaba712e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,7 @@ list(APPEND CMAKE_PREFIX_PATH option(OGS_NO_BOOST_DOWNLOAD "Always use the system installed Boost?" OFF) set(CMAKE_LIBRARY_SEARCH_PATH "" CACHE PATH "Additional library installation path, e.g. /opt/local or C:/libs") +set(OGS_CPU_ARCHITECTURE "native" CACHE STRING "Processor architecture, defaults to native.") ### CMake includes ### include(scripts/cmake/CheckTypeSizes.cmake) diff --git a/scripts/cmake/CompilerSetup.cmake b/scripts/cmake/CompilerSetup.cmake index 651c48e2315e261b93a4b6efb55470094cf3bce1..72117b11762b647c7cc591b337c9f129c330b007 100644 --- a/scripts/cmake/CompilerSetup.cmake +++ b/scripts/cmake/CompilerSetup.cmake @@ -33,11 +33,7 @@ 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=native -DNDEBUG") - # Disable -march=native on mac or Ninja generator - if(NOT APPLE AND NOT "${CMAKE_GENERATOR}" STREQUAL "Ninja") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") - endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=${OGS_CPU_ARCHITECTURE} -DNDEBUG") else() # Enable assertions in STL in debug mode. if (NOT STL_NO_DEBUG) @@ -52,7 +48,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=native") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Wno-c++98-compat-pedantic -march=${OGS_CPU_ARCHITECTURE}") if(CMAKE_BUILD_TYPE STREQUAL "Debug") # Enable assertions in STL in debug mode. if (NOT STL_NO_DEBUG)