File llvm-do-not-install-static-libraries.patch of Package rocm-llvm
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
index 4059fc3e986c..e281340a1ba7 100644
--- a/clang/cmake/modules/AddClang.cmake
+++ b/clang/cmake/modules/AddClang.cmake
@@ -131,12 +131,15 @@ macro(add_clang_library name)
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)
get_target_export_arg(${name} Clang export_to_clangtargets UMBRELLA clang-libraries)
- install(TARGETS ${lib}
- COMPONENT ${lib}
- ${export_to_clangtargets}
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ if (ARG_SHARED OR ARG_MODULE)
+ install(TARGETS ${lib}
+ COMPONENT ${lib}
+ ${export_to_clangtargets}
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${lib})
+ endif()
if (NOT LLVM_ENABLE_IDE)
add_llvm_install_targets(install-${lib}
@@ -146,7 +149,6 @@ macro(add_clang_library name)
set_property(GLOBAL APPEND PROPERTY CLANG_LIBS ${lib})
endif()
- set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${lib})
else()
# Add empty "phony" target
add_custom_target(${lib})
diff --git a/lld/cmake/modules/AddLLD.cmake b/lld/cmake/modules/AddLLD.cmake
index 37f73afa915f..c5f16913b6e8 100644
--- a/lld/cmake/modules/AddLLD.cmake
+++ b/lld/cmake/modules/AddLLD.cmake
@@ -13,6 +13,7 @@ macro(add_lld_library name)
llvm_add_library(${name} ${ARG_ENABLE_SHARED} ${ARG_UNPARSED_ARGUMENTS})
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ if (ARG_SHARED)
get_target_export_arg(${name} LLD export_to_lldtargets UMBRELLA lld-libraries)
install(TARGETS ${name}
COMPONENT ${name}
@@ -20,6 +21,8 @@ macro(add_lld_library name)
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
+ set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
+ endif()
if (NOT CMAKE_CONFIGURATION_TYPES)
add_llvm_install_targets(install-${name}
@@ -27,7 +30,6 @@ macro(add_lld_library name)
COMPONENT ${name})
endif()
set_property(GLOBAL APPEND PROPERTY LLD_ALL_LIBS ${name})
- set_property(GLOBAL APPEND PROPERTY LLD_EXPORTS ${name})
endif()
endmacro(add_lld_library)
diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake
index 80e59a4df243..3982a470aeef 100644
--- a/llvm/cmake/modules/AddLLVM.cmake
+++ b/llvm/cmake/modules/AddLLVM.cmake
@@ -966,7 +966,7 @@ macro(add_llvm_library name)
else()
set(umbrella)
endif()
-
+ if(ARG_SHARED OR ARG_MODULE OR NOT LLVM_BUILD_LLVM_DYLIB)
if(ARG_NO_EXPORT)
set(export_to_llvmexports)
else()
@@ -977,14 +977,14 @@ macro(add_llvm_library name)
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
-
+ endif()
if (NOT LLVM_ENABLE_IDE)
add_llvm_install_targets(install-${name}
DEPENDS ${name}
COMPONENT ${name})
endif()
endif()
- if(NOT ARG_NO_EXPORT)
+ if((ARG_SHARED OR ARG_MODULE OR NOT LLVM_BUILD_LLVM_DYLIB) AND NOT ARG_NO_EXPORT)
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
endif()
endif()
diff --git a/polly/cmake/polly_macros.cmake b/polly/cmake/polly_macros.cmake
index 9bd7b0b0ea59..dfe029289fd6 100644
--- a/polly/cmake/polly_macros.cmake
+++ b/polly/cmake/polly_macros.cmake
@@ -39,6 +39,7 @@ macro(add_polly_library name)
llvm_config(${name} ${LLVM_LINK_COMPONENTS})
endif( LLVM_LINK_COMPONENTS )
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
+ if (MODULE OR SHARED_LIBRARY OR NOT LLVM_BUILD_LLVM_DYLIB)
set(exports)
if (LLVM_POLLY_LINK_INTO_TOOLS)
set(exports EXPORT LLVMExports)
@@ -48,10 +49,11 @@ macro(add_polly_library name)
${exports}
LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
+ endif()
add_llvm_install_targets(install-${name}
COMPONENT ${name})
endif()
- if (LLVM_POLLY_LINK_INTO_TOOLS)
+ if((MODULE OR SHARED_LIBRARY OR NOT LLVM_BUILD_LLVM_DYLIB) AND LLVM_POLLY_LINK_INTO_TOOLS)
set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
endif()
endmacro(add_polly_library)
diff --git a/polly/lib/CMakeLists.txt b/polly/lib/CMakeLists.txt
index d91f4ecd37e6..39e38cbaf20d 100644
--- a/polly/lib/CMakeLists.txt
+++ b/polly/lib/CMakeLists.txt
@@ -108,7 +108,7 @@ endif()
# It depends on all library it needs, such that with
# LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as
# well.
-target_link_libraries(Polly PUBLIC
+target_link_libraries(Polly PRIVATE
${ISL_TARGET}
)
@@ -129,7 +129,7 @@ else ()
# to be already available in the address space the module is loaded into.
# Adding them once more would have the effect that both copies try to register
# the same command line options, to which LLVM reacts with an error.
- target_link_libraries(LLVMPolly PUBLIC ${ISL_TARGET})
+ target_link_libraries(LLVMPolly PRIVATE ${ISL_TARGET})
set_target_properties(LLVMPolly
PROPERTIES