@@ -12,10 +12,58 @@ if(APPLE OR WIN32)
1212set (CMAKE_SHARED_MODULE_SUFFIX ".scx" )
1313endif ()
1414
15- if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
16- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2 -mstackrealign -mfpmath=sse" )
17- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2 -mstackrealign -mfpmath=sse" )
18- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
15+ option (CPP11 "Build with c++11." ON )
16+
17+ if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
18+ add_definitions (-fvisibility=hidden)
19+
20+ include (CheckCCompilerFlag)
21+ include (CheckCXXCompilerFlag)
22+
23+ CHECK_C_COMPILER_FLAG(-msse HAS_SSE)
24+ CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE)
25+
26+ if (HAS_SSE)
27+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse" )
28+ endif ()
29+ if (HAS_CXX_SSE)
30+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse" )
31+ endif ()
32+
33+ CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2)
34+ CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2)
35+
36+ if (HAS_SSE2)
37+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2" )
38+ endif ()
39+ if (HAS_CXX_SSE2)
40+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2" )
41+ endif ()
42+
43+ CHECK_C_COMPILER_FLAG(-mfpmath=sse HAS_FPMATH_SSE)
44+ CHECK_CXX_COMPILER_FLAG(-mfpmath=sse HAS_CXX_FPMATH_SSE)
45+
46+ if (HAS_FPMATH_SSE)
47+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse" )
48+ endif ()
49+ if (HAS_CXX_FPMATH_SSE)
50+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse" )
51+ endif ()
52+
53+ if (NATIVE)
54+ add_definitions (-march=native)
55+ endif ()
56+
57+ if (CPP11)
58+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
59+ if (CMAKE_COMPILER_IS_CLANG)
60+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
61+ endif ()
62+ endif ()
63+ endif ()
64+ if (MINGW)
65+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign" )
66+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mstackrealign" )
1967endif ()
2068
2169add_library (${PROJECT} MODULE BoringMixer.cpp)
0 commit comments