@@ -57,55 +57,45 @@ if(NOT _cxx_std_flag)
5757 message (FATAL_ERROR "xtensor needs a C++20-compliant compiler." )
5858endif ()
5959
60- OPTION (XTENSOR_ENABLE_WERROR "Turn on -Werror" OFF )
61-
6260set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DXSIMD_ENABLE_XTL_COMPLEX=1" )
6361if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR (CMAKE_CXX_COMPILER_ID MATCHES "Intel" AND NOT WIN32 ))
64- CHECK_CXX_COMPILER_FLAG (-march=native arch_native_supported )
62+ CHECK_CXX_COMPILER_FLAG (${_cxx_std_flag} -march=native arch_native_supported )
6563 if (arch_native_supported AND NOT CMAKE_CXX_FLAGS MATCHES "-march" )
66- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -march=native" )
64+ add_compile_options ( -march=native )
6765 endif ()
68- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -Wunused-parameter -Wextra -Wreorder -Wconversion -Wno-sign-conversion " )
69- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast -Wunused-variable -ftemplate-backtrace-limit=0" )
66+ add_compile_options (-Werror -Wall -Wextra -Wconversion -Wsign-conversion )
7067 if (XTENSOR_DISABLE_EXCEPTIONS)
71- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions" )
72- endif ()
73- if (XTENSOR_ENABLE_WERROR)
74- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -DSKIP_ON_WERROR" )
68+ add_compile_options (-fno-exceptions )
7569 endif ()
7670elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" )
77- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} ${ _cxx_std_flag} /Zc:__cplusplus /MP /bigobj" )
71+ add_compile_options ( ${ _cxx_std_flag} /Zc:__cplusplus /EHsc /bigobj -fms-compatibility )
7872 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO" )
7973 add_definitions (-D_CRT_SECURE_NO_WARNINGS )
8074 add_definitions (-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING )
8175 if (XTENSOR_DISABLE_EXCEPTIONS)
82- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} /EHs-c-" )
76+ add_compile_options ( /EHs-c- )
8377 else ()
84- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} /EHsc" )
78+ add_compile_options ( /EHsc )
8579 endif ()
8680elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
8781if (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "GNU" )
8882 CHECK_CXX_COMPILER_FLAG (-march=native arch_native_supported )
8983 if (arch_native_supported AND NOT CMAKE_CXX_FLAGS MATCHES "-march" )
90- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -march=native" )
84+ add_compile_options ( -march=native )
9185 endif ()
92- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion" )
93- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wold-style-cast -Wunused-variable" )
86+ add_compile_options (${_cxx_std_flag} -Werror -Wall -Wextra -Wconversion -Wsign-conversion )
9487 if (XTENSOR_DISABLE_EXCEPTIONS)
95- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions" )
96- endif ()
97- if (XTENSOR_ENABLE_WERROR)
98- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -DSKIP_ON_WERROR" )
88+ add_compile_options (-fno-exceptions )
9989 endif ()
10090 elseif (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC" )
10191 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_cxx_std_flag} /bigobj" )
10292 set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO" )
10393 add_definitions (-D_CRT_SECURE_NO_WARNINGS )
10494 add_definitions (-D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING )
10595 if (XTENSOR_DISABLE_EXCEPTIONS)
106- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} /EHs-c-" )
96+ add_compile_options ( /EHs-c- )
10797 else ()
108- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} /EHsc" )
98+ add_compile_options ( /EHsc )
10999 endif ()
110100 endif ()
111101else ()
0 commit comments