mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-31 20:44:18 +00:00
806b8d56a2
Make it possible to control building profile runtime separately from other options. Before r313549, the profile runtime building was controlled along with sanitizers. However, since that commit it is built unconditionally which results in multiple builds for people building different runtimes separately. Differential Revision: https://reviews.llvm.org/D38441 llvm-svn: 314646
55 lines
1.4 KiB
CMake
55 lines
1.4 KiB
CMake
# 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()
|
|
|
|
function(compiler_rt_build_runtime runtime)
|
|
string(TOUPPER ${runtime} runtime_uppercase)
|
|
if(COMPILER_RT_HAS_${runtime_uppercase})
|
|
add_subdirectory(${runtime})
|
|
if(${runtime} STREQUAL tsan)
|
|
add_subdirectory(tsan/dd)
|
|
endif()
|
|
endif()
|
|
endfunction()
|
|
|
|
if(COMPILER_RT_BUILD_SANITIZERS)
|
|
compiler_rt_build_runtime(interception)
|
|
|
|
if(COMPILER_RT_HAS_SANITIZER_COMMON)
|
|
add_subdirectory(stats)
|
|
add_subdirectory(lsan)
|
|
add_subdirectory(ubsan)
|
|
endif()
|
|
|
|
foreach(sanitizer ${COMPILER_RT_SANITIZERS_TO_BUILD})
|
|
compiler_rt_build_runtime(${sanitizer})
|
|
endforeach()
|
|
endif()
|
|
|
|
if(COMPILER_RT_BUILD_PROFILE AND COMPILER_RT_HAS_PROFILE)
|
|
compiler_rt_build_runtime(profile)
|
|
endif()
|
|
|
|
if(COMPILER_RT_BUILD_XRAY)
|
|
compiler_rt_build_runtime(xray)
|
|
endif()
|
|
|
|
if(COMPILER_RT_BUILD_LIBFUZZER)
|
|
compiler_rt_build_runtime(fuzzer)
|
|
endif()
|