set(LLVM_LINK_COMPONENTS
  ${LLVM_TARGETS_TO_BUILD}
  BitReader
  Core
  MCDisassembler
  Object
  Support
  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=gnu99 -Wstrict-prototypes")
endif ()

add_llvm_tool(llvm-c-test
  attributes.c
  calc.c
  diagnostic.c
  disassemble.c
  echo.cpp
  helpers.c
  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()
