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)