[Support] Lazy load of dbghlp.dll on Windows
[oota-llvm.git] / tools / llvm-c-test / CMakeLists.txt
index 2926d9dd34550f9b3ef7cd115875a7aa0bc5d5d4..f22dffb30e8a4a912cbd4914ca6bfc3768c11397 100644 (file)
@@ -1,7 +1,37 @@
-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
@@ -11,6 +41,11 @@ 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()