-set(LLVM_LINK_COMPONENTS all)
+set(LLVM_LINK_COMPONENTS
+ ${LLVM_TARGETS_TO_BUILD}
+ BitReader
+ Core
+ MCDisassembler
+ Object
+ Target
+ )
+
+# 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()
if (LLVM_COMPILER_IS_GCC_COMPATIBLE)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wstrict-prototypes")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wstrict-prototypes")
endif ()
add_llvm_tool(llvm-c-test
include-all.c
main.c
module.c
+ metadata.c
object.c
targets.c
)
+
+if(USE_LLVM_DYLIB)
+ target_link_libraries(llvm-c-test LLVM)
+endif()