@@ -57,7 +57,11 @@ if(NOT _cxx_std_flag)
57
57
endif ()
58
58
59
59
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32 ))
60
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion" )
60
+ CHECK_CXX_COMPILER_FLAG(-march=native arch_native_supported)
61
+ if (arch_native_supported AND NOT CMAKE_CXX_FLAGS MATCHES "-march" )
62
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native" )
63
+ endif ()
64
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion" )
61
65
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast -Wunused-variable" )
62
66
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
63
67
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} /EHsc /MP /bigobj /wd4800" )
@@ -66,7 +70,11 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
66
70
add_definitions (-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
67
71
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
68
72
if (NOT WIN32 )
69
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion" )
73
+ CHECK_CXX_COMPILER_FLAG(-march=native arch_native_supported)
74
+ if (arch_native_supported AND NOT CMAKE_CXX_FLAGS MATCHES "-march" )
75
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native" )
76
+ endif ()
77
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion" )
70
78
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast -Wunused-variable" )
71
79
else () # We are using clang-cl
72
80
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} /EHsc /MP /bigobj -Wno-unused-command-line-argument" )
0 commit comments