@@ -151,16 +151,19 @@ Output variables:
151
151
# then pass the sanitizers (e.g. ${ENABLE_SANITIZER_ADDRESS}) to project_options(... ${ENABLE_SANITIZER_ADDRESS} ...)
152
152
153
153
]]
154
- function (
155
- check_sanitizers_support
156
- ENABLE_SANITIZER_ADDRESS
157
- ENABLE_SANITIZER_UNDEFINED_BEHAVIOR
158
- ENABLE_SANITIZER_LEAK
159
- ENABLE_SANITIZER_THREAD
160
- ENABLE_SANITIZER_MEMORY
161
- ENABLE_SANITIZER_POINTER_COMPARE
162
- ENABLE_SANITIZER_POINTER_SUBTRACT
163
- )
154
+ function (check_sanitizers_support)
155
+
156
+ set (options
157
+ ENABLE_SANITIZER_ADDRESS
158
+ ENABLE_SANITIZER_UNDEFINED_BEHAVIOR
159
+ ENABLE_SANITIZER_LEAK
160
+ ENABLE_SANITIZER_THREAD
161
+ ENABLE_SANITIZER_MEMORY
162
+ ENABLE_SANITIZER_POINTER_COMPARE
163
+ ENABLE_SANITIZER_POINTER_SUBTRACT
164
+ )
165
+ cmake_parse_arguments (_ "" "${options} " "" "" )
166
+
164
167
set (SUPPORTED_SANITIZERS "" )
165
168
if (NOT "${CMAKE_SYSTEM_NAME} " STREQUAL "Windows" AND (CMAKE_CXX_COMPILER_ID STREQUAL "GNU"
166
169
OR CMAKE_CXX_COMPILER_ID MATCHES ".*Clang" )
@@ -209,24 +212,24 @@ function(
209
212
endif ()
210
213
211
214
if ("address" IN_LIST SUPPORTED_SANITIZERS)
212
- set (${ENABLE_SANITIZER_ADDRESS} "ENABLE_SANITIZER_ADDRESS" PARENT_SCOPE)
213
- endif ()
214
- if ("pointer-compare" IN_LIST SUPPORTED_SANITIZERS)
215
- set (${ENABLE_SANITIZER_POINTER_COMPARE} "ENABLE_SANITIZER_POINTER_COMPARE" PARENT_SCOPE)
216
- endif ()
217
- if ("pointer-subtract" IN_LIST SUPPORTED_SANITIZERS)
218
- set (${ENABLE_SANITIZER_POINTER_SUBTRACT} "ENABLE_SANITIZER_POINTER_SUBTRACT" PARENT_SCOPE)
215
+ set (${_ENABLE_SANITIZER_ADDRESS} "ENABLE_SANITIZER_ADDRESS" PARENT_SCOPE)
219
216
endif ()
220
217
if ("undefined" IN_LIST SUPPORTED_SANITIZERS)
221
- set (${ENABLE_SANITIZER_UNDEFINED_BEHAVIOR } "ENABLE_SANITIZER_UNDEFINED_BEHAVIOR" PARENT_SCOPE)
218
+ set (${_ENABLE_SANITIZER_UNDEFINED_BEHAVIOR } "ENABLE_SANITIZER_UNDEFINED_BEHAVIOR" PARENT_SCOPE)
222
219
endif ()
223
220
if ("leak" IN_LIST SUPPORTED_SANITIZERS)
224
- set (${ENABLE_SANITIZER_LEAK } "ENABLE_SANITIZER_LEAK" PARENT_SCOPE)
221
+ set (${_ENABLE_SANITIZER_LEAK } "ENABLE_SANITIZER_LEAK" PARENT_SCOPE)
225
222
endif ()
226
223
if ("thread" IN_LIST SUPPORTED_SANITIZERS)
227
- set (${ENABLE_SANITIZER_THREAD } "ENABLE_SANITIZER_THREAD" PARENT_SCOPE)
224
+ set (${_ENABLE_SANITIZER_THREAD } "ENABLE_SANITIZER_THREAD" PARENT_SCOPE)
228
225
endif ()
229
226
if ("memory" IN_LIST SUPPORTED_SANITIZERS)
230
- set (${ENABLE_SANITIZER_MEMORY} "ENABLE_SANITIZER_MEMORY" PARENT_SCOPE)
227
+ set (${_ENABLE_SANITIZER_MEMORY} "ENABLE_SANITIZER_MEMORY" PARENT_SCOPE)
228
+ endif ()
229
+ if ("pointer-compare" IN_LIST SUPPORTED_SANITIZERS)
230
+ set (${_ENABLE_SANITIZER_POINTER_COMPARE} "ENABLE_SANITIZER_POINTER_COMPARE" PARENT_SCOPE)
231
+ endif ()
232
+ if ("pointer-subtract" IN_LIST SUPPORTED_SANITIZERS)
233
+ set (${_ENABLE_SANITIZER_POINTER_SUBTRACT} "ENABLE_SANITIZER_POINTER_SUBTRACT" PARENT_SCOPE)
231
234
endif ()
232
235
endfunction ()
0 commit comments