@@ -32,44 +32,59 @@ endif ()
32
32
set (CMAKE_C_FLAGS "-g -Wall -Wextra -Wunused -pipe -std=gnu99" )
33
33
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
34
34
35
- if (CMAKE_COMPILER_IS_GNUCC )
35
+ if (CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang" )
36
36
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-variadic-macros" )
37
37
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wsequence-point" )
38
38
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wredundant-decls" )
39
39
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow" )
40
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wtrampolines" )
41
40
42
41
# gcc >= 4.2
43
42
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcomment" )
44
43
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmain" )
45
44
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wparentheses" )
46
45
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wfloat-equal" )
47
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunsafe-loop-optimizations" )
48
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-but-set-parameter" )
49
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-but-set-variable" )
50
46
51
47
# gcc >= 4.6
52
48
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes" )
53
49
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-field-initializers" )
54
50
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Winline")
55
51
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wconversion")
56
52
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wswitch-enum")
53
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused" )
54
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-const-variable" )
55
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-parameter" )
56
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-variable" )
57
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-macros" )
58
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-value" )
59
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-function" )
60
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-result" )
61
+
62
+ if (CMAKE_COMPILER_IS_GNUCC )
63
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wtrampolines" )
64
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunsafe-loop-optimizations" )
65
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-but-set-parameter" )
66
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wunused-but-set-variable" )
67
+ endif ()
57
68
else ()
58
69
message ("The default compiler set in CC is not supported." )
59
- message ("You need to use gcc with a version >= 4.2. " )
70
+ message ("You need to use gcc ( with a version >= 4.2) or Clang (version >= 9) " )
60
71
message ("You can set your default compiler either by updating your CC variable environment:" )
61
72
message ("export CC=/path/to/gcc" )
73
+ message ("export CC=/path/to/clang-9" )
62
74
message ("Or by adding a flag when calling CMake: " )
63
75
message ("-D CMAKE_C_COMPILER=gcc" )
76
+ message ("-D CMAKE_C_COMPILER=clang-9" )
64
77
message ( FATAL_ERROR "CMake will exit." )
65
78
endif ()
79
+
80
+
66
81
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${SAN_CFLAGS} " )
67
82
68
83
if (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" )
69
84
MESSAGE ("DEBUG symbols enabled" )
70
85
endif ()
71
86
72
- set (CMAKE_C_FLAGS_DEBUG "-O0 -fno-inline" )
87
+ set (CMAKE_C_FLAGS_DEBUG "-Og -fno-inline" )
73
88
set (CMAKE_C_FLAGS_RELEASE "-O2" )
74
89
set (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2" )
75
90
set (CMAKE_C_FLAGS_MINSIZEREL "-Os" )
0 commit comments