|
26 | 26 | # link against the sanitizers.
|
27 | 27 | option(SANITIZE_LINK_STATIC "Try to link static against sanitizers." Off)
|
28 | 28 |
|
29 |
| - |
30 |
| - |
31 |
| - |
32 | 29 | set(FIND_QUIETLY_FLAG "")
|
33 | 30 | if (DEFINED Sanitizers_FIND_QUIETLY)
|
34 | 31 | set(FIND_QUIETLY_FLAG "QUIET")
|
35 | 32 | endif ()
|
36 | 33 |
|
37 |
| -find_package(ASan ${FIND_QUIETLY_FLAG}) |
38 |
| -find_package(TSan ${FIND_QUIETLY_FLAG}) |
39 |
| -find_package(MSan ${FIND_QUIETLY_FLAG}) |
40 |
| -find_package(UBSan ${FIND_QUIETLY_FLAG}) |
41 |
| - |
42 |
| - |
| 34 | +list(APPEND REQUIRED_SANITIZERS "") |
43 | 35 |
|
| 36 | +if(SANITIZE_ADDRESS) |
| 37 | + find_package(ASan ${FIND_QUIETLY_FLAG}) |
| 38 | + list(APPEND REQUIRED_SANITIZERS "ASan_FOUND") |
| 39 | +endif() |
| 40 | +if(SANITIZE_THREAD) |
| 41 | + find_package(TSan ${FIND_QUIETLY_FLAG}) |
| 42 | + list(APPEND REQUIRED_SANITIZERS "TSan_FOUND") |
| 43 | +endif() |
| 44 | +if(SANITIZE_MEMORY) |
| 45 | + find_package(MSan ${FIND_QUIETLY_FLAG}) |
| 46 | + list(APPEND REQUIRED_SANITIZERS "MSan_FOUND") |
| 47 | +endif() |
| 48 | +if(SANITIZE_UNDEFINED) |
| 49 | + find_package(UBSan ${FIND_QUIETLY_FLAG}) |
| 50 | + list(APPEND REQUIRED_SANITIZERS "UBSan_FOUND") |
| 51 | +endif() |
44 | 52 |
|
45 | 53 | function(sanitizer_add_blacklist_file FILE)
|
46 | 54 | if(NOT IS_ABSOLUTE ${FILE})
|
@@ -79,9 +87,22 @@ function(add_sanitizers ...)
|
79 | 87 | endif ()
|
80 | 88 |
|
81 | 89 | # Add sanitizers for target.
|
82 |
| - add_sanitize_address(${TARGET}) |
83 |
| - add_sanitize_thread(${TARGET}) |
84 |
| - add_sanitize_memory(${TARGET}) |
85 |
| - add_sanitize_undefined(${TARGET}) |
| 90 | + if(SANITIZE_ADDRESS) |
| 91 | + add_sanitize_address(${TARGET}) |
| 92 | + endif() |
| 93 | + if(SANITIZE_THREAD) |
| 94 | + add_sanitize_thread(${TARGET}) |
| 95 | + endif() |
| 96 | + if(SANITIZE_MEMORY) |
| 97 | + add_sanitize_memory(${TARGET}) |
| 98 | + endif() |
| 99 | + if(SANITIZE_UNDEFINED) |
| 100 | + add_sanitize_undefined(${TARGET}) |
| 101 | + endif() |
86 | 102 | endforeach ()
|
87 | 103 | endfunction(add_sanitizers)
|
| 104 | + |
| 105 | +include(FindPackageHandleStandardArgs) |
| 106 | +find_package_handle_standard_args(Sanitizers |
| 107 | + REQUIRED_VARS |
| 108 | + ${REQUIRED_SANITIZERS}) |
0 commit comments