@@ -44,6 +44,31 @@ OPTION(CROSS_COMPILE_ARM "cross compile for ARM targets" OFF)
4444set (TARGET_ARCH "native" CACHE STRING "Target architecture arguments" )
4545
4646if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel" )
47+ if (NOT WIN32 AND NOT ANDROID )
48+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused-parameter -Wextra -Wreorder" )
49+ # Users may override the c++ standard:
50+ if (NOT DEFINED CMAKE_CXX_STANDARD OR "${CMAKE_CXX_STANDARD} " STREQUAL "" )
51+ if (ENABLE_XTL_COMPLEX)
52+ CHECK_CXX_COMPILER_FLAG ("-std=c++14" HAS_CPP14_FLAG )
53+ if (NOT HAS_CPP14_FLAG)
54+ message (FATAL_ERROR "Unsupported compiler -- xsimd requires C++14 support when xtl complex support is enabled" )
55+ endif ()
56+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
57+ else ()
58+ CHECK_CXX_COMPILER_FLAG ("-std=c++11" HAS_CPP11_FLAG )
59+ if (NOT HAS_CPP11_FLAG)
60+ message (FATAL_ERROR "Unsupported compiler -- xsimd requires C++11 support!" )
61+ else ()
62+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
63+ endif ()
64+ endif ()
65+ endif ()
66+
67+ if (NOT CROSS_COMPILE_ARM)
68+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fPIC" )
69+ endif ()
70+ endif ()
71+
4772 if (ANDROID )
4873 # Nothing to do here, we assume the cmake Android NDK toolchain sets the
4974 # correct options for arm and neon.
@@ -73,33 +98,14 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU"
7398 endif ()
7499 message (STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS} " )
75100 message (STATUS "CMAKE_CXX_LINK_EXECUTABLE: ${CMAKE_CXX_LINK_EXECUTABLE} " )
76- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunused-parameter -Wextra -Wreorder -std=c++11" )
77101 elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^ppc64" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64" )
78- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fPIC - mcpu=${TARGET_ARCH} -mtune=${TARGET_ARCH} -Wunused-parameter -Wextra -Wreorder -std=c++11 " )
102+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=${TARGET_ARCH} -mtune=${TARGET_ARCH} " )
79103 elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES "riscv64" )
80- set ( CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -g -fPIC -Wunused-parameter -Wextra -Wreorder -std=c++11" )
104+ # Nothing specific
81105 elseif (NOT WIN32 )
82106 if (NOT CMAKE_CXX_FLAGS MATCHES "-march" AND NOT CMAKE_CXX_FLAGS MATCHES "-arch" AND NOT CMAKE_OSX_ARCHITECTURES)
83107 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=${TARGET_ARCH} " )
84108 endif ()
85- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fPIC -Wunused-parameter -Wextra -Wreorder" )
86- # Users may override the c++ standard:
87- if (NOT DEFINED CMAKE_CXX_STANDARD OR "${CMAKE_CXX_STANDARD} " STREQUAL "" )
88- if (ENABLE_XTL_COMPLEX)
89- CHECK_CXX_COMPILER_FLAG ("-std=c++14" HAS_CPP14_FLAG )
90- if (NOT HAS_CPP14_FLAG)
91- message (FATAL_ERROR "Unsupported compiler -- xsimd requires C++14 support when xtl complex support is enabled" )
92- endif ()
93- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14" )
94- else ()
95- CHECK_CXX_COMPILER_FLAG ("-std=c++11" HAS_CPP11_FLAG )
96- if (NOT HAS_CPP11_FLAG)
97- message (FATAL_ERROR "Unsupported compiler -- xsimd requires C++11 support!" )
98- else ()
99- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
100- endif ()
101- endif ()
102- endif ()
103109 endif ()
104110endif ()
105111
0 commit comments