Have llvm-c-test only use libLLVM if libLLVM has all the right components.

Summary: We should only have llvm-c-test use libLLVM if the library is built with the default set of components or if LLVM_DYLIB_COMPONENTS includes all the LLVM_LINK_COMPONENTS required for llvm-c-test. Making libLLVM always used causes build failures if libLLVM doesn't include all

Reviewers: chapuni, ributzka

Reviewed By: ributzka

Subscribers: ributzka, llvm-commits

Differential Revision: http://reviews.llvm.org/D6668

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Bieneman 2014-12-18 21:03:49 +00:00
parent 7ff5aa221c
commit 3d6a903779

View File

@ -7,7 +7,26 @@ set(LLVM_LINK_COMPONENTS
Target
)
if(TARGET LLVM)
# We should only have llvm-c-test use libLLVM if libLLVM is built with the
# default list of components. Using libLLVM with custom components can result in
# build failures.
set (USE_LLVM_DYLIB FALSE)
if (TARGET LLVM)
set (USE_LLVM_DYLIB TRUE)
if (DEFINED LLVM_DYLIB_COMPONENTS)
foreach(c in ${LLVM_LINK_COMPONENTS})
list(FIND LLVM_DYLIB_COMPONENTS ${c} C_IDX)
if (C_IDX EQUAL -1)
set(USE_LLVM_DYLIB FALSE)
break()
endif()
endforeach()
endif()
endif()
if(USE_LLVM_DYLIB)
set(LLVM_LINK_COMPONENTS)
endif()
@ -26,7 +45,6 @@ add_llvm_tool(llvm-c-test
targets.c
)
# Use libLLVM.so if it is available.
if(TARGET LLVM)
if(USE_LLVM_DYLIB)
target_link_libraries(llvm-c-test LLVM)
endif()