diff --git a/compiler-rt/CMakeLists.txt b/compiler-rt/CMakeLists.txt index 9f8e8334d75ba..885670bd88a8c 100644 --- a/compiler-rt/CMakeLists.txt +++ b/compiler-rt/CMakeLists.txt @@ -91,6 +91,9 @@ mark_as_advanced(COMPILER_RT_SCUDO_STANDALONE_BUILD_SHARED) option(COMPILER_RT_BUILD_SCUDO_STANDALONE_WITH_LLVM_LIBC "Build SCUDO standalone with LLVM's libc headers" OFF) mark_as_advanced(COMPILER_RT_BUILD_SCUDO_STANDALONE_WITH_LLVM_LIBC) +option(COMPILER_RT_BUILD_SHARED_LIBS "Build all libraries as shared libraries in addition to static libraries" ON) +mark_as_advanced(COMPILER_RT_BUILD_SHARED_LIBS) + if(FUCHSIA) set(COMPILER_RT_HWASAN_WITH_INTERCEPTORS_DEFAULT OFF) else() diff --git a/compiler-rt/cmake/Modules/AddCompilerRT.cmake b/compiler-rt/cmake/Modules/AddCompilerRT.cmake index d346b0ec01b03..06822d79019db 100644 --- a/compiler-rt/cmake/Modules/AddCompilerRT.cmake +++ b/compiler-rt/cmake/Modules/AddCompilerRT.cmake @@ -169,6 +169,10 @@ function(add_compiler_rt_runtime name type) "type argument must be OBJECT, STATIC, SHARED or MODULE") return() endif() + if(type STREQUAL "SHARED" AND NOT COMPILER_RT_BUILD_SHARED_LIBS) + message(STATUS "Skipping shared library ${name} because COMPILER_RT_BUILD_SHARED_LIBS is OFF") + return() + endif() cmake_parse_arguments(LIB "" "PARENT_TARGET"