]>
Commit | Line | Data |
---|---|---|
e969a926 | 1 | # -*- mode: cmake -*- |
2 | MACRO ( Check_Compiler ) | |
3 | ||
4 | ||
5 | # Set a default build type for single-configuration | |
6 | # CMake generators if no build type is set. | |
7 | if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) | |
8 | set(CMAKE_BUILD_TYPE RelWithDebInfo) | |
9 | endif (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE) | |
10 | ||
11 | if (CMAKE_SYSTEM_NAME MATCHES Linux) | |
12 | MESSAGE("--- Found a Linux ssytem") | |
13 | if (CMAKE_COMPILER_IS_GNUCXX) | |
14 | MESSAGE("--- Found GNU compiler collection") | |
15 | # set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") | |
16 | # set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}") | |
17 | # we profile... | |
18 | # if(CMAKE_BUILD_TYPE_TOLOWER MATCHES profile) | |
19 | # set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") | |
20 | # set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fprofile-arcs -ftest-coverage") | |
21 | # endif(CMAKE_BUILD_TYPE_TOLOWER MATCHES profile) | |
22 | ||
23 | # Select flags. | |
24 | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") | |
25 | set(CMAKE_CXX_FLAGS_RELEASE "-O2") | |
26 | # set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") | |
27 | set(CMAKE_CXX_FLAGS_DEBUG "-g") | |
28 | set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline") | |
29 | set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") | |
30 | set(CMAKE_CXX_FLAGS_ARRAY_CHECK "-g3 -fno-inline -ftest-coverage -fprofile-arcs -fstack-protector") | |
31 | set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") | |
32 | set(CMAKE_C_FLAGS_RELEASE "-O2") | |
33 | # set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") | |
34 | set(CMAKE_C_FLAGS_DEBUG "-g") | |
35 | set(CMAKE_C_FLAGS_DEBUGFULL "-g3 -fno-inline") | |
36 | set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") | |
37 | set(CMAKE_C_FLAGS_ARRAY_CHECK "-g3 -fno-inline -ftest-coverage -fprofile-arcs -fstack-protector") | |
38 | ||
39 | # set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-long-long -std=iso9899:1990 -Wundef -Wcast-align -Werror-implicit-function-declaration -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-common") | |
40 | # set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security -fno-exceptions -fno-check-new -fno-common") | |
41 | endif (CMAKE_COMPILER_IS_GNUCXX) | |
42 | ||
43 | if (CMAKE_C_COMPILER MATCHES "icc") | |
44 | MESSAGE("--- Found Intel compiler collection") | |
45 | # set ( CMAKE_SHARED_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_SHARED_LINKER_FLAGS}") | |
46 | # set ( CMAKE_MODULE_LINKER_FLAGS "-Wl,--fatal-warnings -Wl,--no-undefined -lc ${CMAKE_MODULE_LINKER_FLAGS}") | |
47 | ||
48 | # Select flags. | |
49 | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") | |
50 | set(CMAKE_CXX_FLAGS_RELEASE "-O2") | |
51 | set(CMAKE_CXX_FLAGS_DEBUG "-O2 -g -0b0 -noalign") | |
52 | set(CMAKE_CXX_FLAGS_DEBUGFULL "-g -Ob0 -noalign") | |
53 | set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") | |
54 | set(CMAKE_C_FLAGS_RELEASE "-O2") | |
55 | set(CMAKE_C_FLAGS_DEBUG "-O2 -g -Ob0 -noalign") | |
56 | set(CMAKE_C_FLAGS_DEBUGFULL "-g -Ob0 -noalign") | |
57 | ||
58 | # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ansi -Wpointer-arith -fno-common") | |
59 | # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ansi -Wpointer-arith -fno-exceptions -fno-common") | |
60 | ||
61 | endif (CMAKE_C_COMPILER MATCHES "icc") | |
62 | endif (CMAKE_SYSTEM_NAME MATCHES Linux) | |
63 | ||
64 | ||
65 | if (CMAKE_SYSTEM_NAME MATCHES Darwin) | |
66 | EXEC_PROGRAM("sw_vers -productVersion | cut -d . -f 1-2" OUTPUT_VARIABLE MAC_OS_VERSION) | |
67 | MESSAGE("--- Found a Mac OS X System ${MAC_OS_VERSION}") | |
68 | if (CMAKE_COMPILER_IS_GNUCXX) | |
69 | MESSAGE("--- Found GNU compiler collection") | |
70 | ||
71 | STRING(COMPARE EQUAL "10.5" "${MAC_OS_VERSION}" MAC_OS_10_5) | |
72 | IF(MAC_OS_10_5) | |
73 | SET(CMAKE_CXX_FLAGS "-m64") | |
74 | SET(CMAKE_C_FLAGS "-m64") | |
75 | SET(CMAKE_Fortran_FLAGS "-m64") | |
76 | ENDIF(MAC_OS_10_5) | |
77 | ||
78 | SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") | |
79 | SET(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup") | |
80 | # MESSAGE("C_FLAGS: ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS}") | |
81 | # MESSAGE("CXX_FLAGS: ${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS}") | |
82 | ||
83 | # Select flags. | |
84 | set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") | |
85 | set(CMAKE_CXX_FLAGS_RELEASE "-O2") | |
86 | set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") | |
87 | set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline") | |
88 | set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") | |
89 | set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") | |
90 | set(CMAKE_C_FLAGS_RELEASE "-O2") | |
91 | set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline") | |
92 | set(CMAKE_C_FLAGS_DEBUGFULL "-g3 -fno-inline") | |
93 | set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs") | |
94 | ||
95 | ||
96 | ||
97 | endif (CMAKE_COMPILER_IS_GNUCXX) | |
98 | ||
99 | endif (CMAKE_SYSTEM_NAME MATCHES Darwin) | |
100 | ||
101 | ||
102 | ||
103 | STRING(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER) | |
104 | ||
105 | #if(CMAKE_BUILD_TYPE_UPPER MATCHES "RELWITHDEBINFO") | |
106 | # SET (ALL_CXX_FLAGS ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}) | |
107 | #endif(CMAKE_BUILD_TYPE_UPPER MATCHES "RELWITHDEBINFO") | |
108 | #if(CMAKE_BUILD_TYPE_UPPER MATCHES "DEBUG") | |
109 | # SET (ALL_CXX_FLAGS ${CMAKE_CXX_FLAGS_DEBUG}) | |
110 | #endif(CMAKE_BUILD_TYPE_UPPER MATCHES "DEBUG") | |
111 | ||
112 | SET (BLA CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE_UPPER}) | |
113 | ||
114 | MESSAGE("--- Build Type: ${CMAKE_BUILD_TYPE}") | |
115 | #MESSAGE("--- Build Type: ${${BLA}}") | |
116 | MESSAGE("--- Compiler Flags: ${CMAKE_CXX_FLAGS} ${${BLA}}") | |
117 | ||
118 | ENDMACRO ( Check_Compiler ) |