mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 18:42:46 +02:00
llvm-shlib: Create object libraries for each component and link against them
This makes it possible to build libLLVM.so without first creating a static library for each component. In the case where only libLLVM.so is built (i.e. ninja LLVM) this eliminates 150 linker jobs. Reviewed By: stellaraccident Differential Revision: https://reviews.llvm.org/D95727
This commit is contained in:
parent
678c8737df
commit
26663577f0
@ -488,6 +488,7 @@ function(llvm_add_library name)
|
||||
add_dependencies(${obj_name} ${link_lib})
|
||||
endif()
|
||||
endforeach()
|
||||
target_link_libraries(${obj_name} ${ARG_LINK_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@ -746,7 +747,7 @@ function(add_llvm_component_library name)
|
||||
"COMPONENT_NAME;ADD_TO_COMPONENT"
|
||||
""
|
||||
${ARGN})
|
||||
add_llvm_library(${name} COMPONENT_LIB ${ARG_UNPARSED_ARGUMENTS})
|
||||
add_llvm_library(${name} COMPONENT_LIB OBJECT ${ARG_UNPARSED_ARGUMENTS})
|
||||
string(REGEX REPLACE "^LLVM" "" component_name ${name})
|
||||
set_property(TARGET ${name} PROPERTY LLVM_COMPONENT_NAME ${component_name})
|
||||
|
||||
|
@ -33,6 +33,10 @@ if(LLVM_BUILD_LLVM_DYLIB)
|
||||
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
||||
|
||||
list(REMOVE_DUPLICATES LIB_NAMES)
|
||||
|
||||
# Link against the object libraries instead of static libraries.
|
||||
list(TRANSFORM LIB_NAMES PREPEND "obj.")
|
||||
|
||||
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD")
|
||||
OR ("${CMAKE_SYSTEM_NAME}" STREQUAL "GNU")
|
||||
|
Loading…
Reference in New Issue
Block a user