# First, add the subdirectories which contain feature-based runtime libraries # and several convenience helper libraries. include(AddCompilerRT) include(SanitizerUtils) # Hoist the building of sanitizer_common on whether we're building either the # sanitizers or xray (or both). # #TODO: Refactor sanitizer_common into smaller pieces (e.g. flag parsing, utils). if (COMPILER_RT_HAS_SANITIZER_COMMON AND (COMPILER_RT_BUILD_SANITIZERS OR COMPILER_RT_BUILD_XRAY)) add_subdirectory(sanitizer_common) endif() if(COMPILER_RT_BUILD_BUILTINS) add_subdirectory(builtins) endif() if(COMPILER_RT_BUILD_SANITIZERS) if(COMPILER_RT_HAS_INTERCEPTION) add_subdirectory(interception) endif() if(COMPILER_RT_HAS_SANITIZER_COMMON) add_subdirectory(stats) add_subdirectory(lsan) add_subdirectory(ubsan) endif() if(COMPILER_RT_HAS_ASAN) add_subdirectory(asan) endif() if(COMPILER_RT_HAS_DFSAN) add_subdirectory(dfsan) endif() if(COMPILER_RT_HAS_MSAN) add_subdirectory(msan) endif() if(COMPILER_RT_HAS_PROFILE) add_subdirectory(profile) endif() if(COMPILER_RT_HAS_TSAN) add_subdirectory(tsan) add_subdirectory(tsan/dd) endif() if(COMPILER_RT_HAS_SAFESTACK) add_subdirectory(safestack) endif() if(COMPILER_RT_HAS_CFI) add_subdirectory(cfi) endif() if(COMPILER_RT_HAS_ESAN) add_subdirectory(esan) endif() if(COMPILER_RT_HAS_SCUDO) add_subdirectory(scudo) endif() endif() if(COMPILER_RT_BUILD_XRAY AND COMPILER_RT_HAS_XRAY) add_subdirectory(xray) endif()