CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.
authorMichael J. Spencer <bigcheesegs@gmail.com>
Fri, 10 Sep 2010 21:14:25 +0000 (21:14 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Fri, 10 Sep 2010 21:14:25 +0000 (21:14 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113632 91177308-0d34-0410-b5e6-96231b3b80d8

62 files changed:
CMakeLists.txt
cmake/modules/AddLLVM.cmake
cmake/modules/CMakeLists.txt
cmake/modules/LLVMConfig.cmake [deleted file]
cmake/modules/LLVMConfig.cmake.in [new file with mode: 0644]
cmake/modules/LLVMLibDeps.cmake [deleted file]
examples/BrainF/CMakeLists.txt
examples/ExceptionDemo/CMakeLists.txt
examples/Fibonacci/CMakeLists.txt
examples/HowToUseJIT/CMakeLists.txt
examples/Kaleidoscope/Chapter3/CMakeLists.txt
examples/Kaleidoscope/Chapter4/CMakeLists.txt
examples/Kaleidoscope/Chapter5/CMakeLists.txt
examples/Kaleidoscope/Chapter6/CMakeLists.txt
examples/Kaleidoscope/Chapter7/CMakeLists.txt
examples/ModuleMaker/CMakeLists.txt
examples/ParallelJIT/CMakeLists.txt
lib/Analysis/CMakeLists.txt
lib/Analysis/IPA/CMakeLists.txt
lib/Archive/CMakeLists.txt
lib/AsmParser/CMakeLists.txt
lib/Bitcode/Reader/CMakeLists.txt
lib/CodeGen/AsmPrinter/CMakeLists.txt
lib/CodeGen/CMakeLists.txt
lib/CodeGen/SelectionDAG/CMakeLists.txt
lib/CompilerDriver/CMakeLists.txt
lib/ExecutionEngine/CMakeLists.txt
lib/ExecutionEngine/Interpreter/CMakeLists.txt
lib/ExecutionEngine/JIT/CMakeLists.txt
lib/Linker/CMakeLists.txt
lib/MC/MCDisassembler/CMakeLists.txt
lib/Target/ARM/AsmParser/CMakeLists.txt
lib/Target/ARM/AsmPrinter/CMakeLists.txt
lib/Target/ARM/CMakeLists.txt
lib/Target/CMakeLists.txt
lib/Target/X86/AsmParser/CMakeLists.txt
lib/Target/X86/AsmPrinter/CMakeLists.txt
lib/Target/X86/CMakeLists.txt
lib/Target/X86/Disassembler/CMakeLists.txt
lib/Transforms/IPO/CMakeLists.txt
lib/Transforms/InstCombine/CMakeLists.txt
lib/Transforms/Instrumentation/CMakeLists.txt
lib/Transforms/Scalar/CMakeLists.txt
lib/Transforms/Utils/CMakeLists.txt
tools/CMakeLists.txt
tools/bugpoint/CMakeLists.txt
tools/llc/CMakeLists.txt
tools/lli/CMakeLists.txt
tools/llvm-ar/CMakeLists.txt
tools/llvm-as/CMakeLists.txt
tools/llvm-bcanalyzer/CMakeLists.txt
tools/llvm-config/CMakeLists.txt
tools/llvm-diff/CMakeLists.txt
tools/llvm-dis/CMakeLists.txt
tools/llvm-extract/CMakeLists.txt
tools/llvm-ld/CMakeLists.txt
tools/llvm-link/CMakeLists.txt
tools/llvm-mc/CMakeLists.txt
tools/llvm-nm/CMakeLists.txt
tools/llvm-prof/CMakeLists.txt
tools/llvm-ranlib/CMakeLists.txt
tools/opt/CMakeLists.txt

index a6099d1..8a0d9e3 100644 (file)
@@ -263,6 +263,7 @@ add_subdirectory(lib/System)
 
 # Everything else depends on Support and System:
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} ${LLVM_LIBS} )
+set(LLVM_COMMON_LIBS LLVMSupport LLVMSystem)
 
 set(LLVM_TABLEGEN "tblgen" CACHE
   STRING "Native TableGen executable. Saves building one when cross-compiling.")
@@ -362,6 +363,11 @@ add_subdirectory(examples)
 
 add_subdirectory(cmake/modules)
 
+install(EXPORT LLVM
+  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/
+  FILE LLVMTargets.cmake
+  )
+
 install(DIRECTORY include/
   DESTINATION include
   FILES_MATCHING
index 0ecd153..6291ad1 100755 (executable)
@@ -1,5 +1,21 @@
 include(LLVMProcessSources)
-include(LLVMConfig)
+
+function(get_system_libs return_var)
+  # Returns in `return_var' a list of system libraries used by LLVM.
+  if( NOT MSVC )
+    if( MINGW )
+      set(system_libs ${system_libs} imagehlp psapi)
+    elseif( CMAKE_HOST_UNIX )
+      if( HAVE_LIBDL )
+        set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
+      endif()
+      if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
+        set(system_libs ${system_libs} pthread)
+      endif()
+    endif( MINGW )
+  endif( NOT MSVC )
+  set(${return_var} ${system_libs} PARENT_SCOPE)
+endfunction(get_system_libs)
 
 macro(add_llvm_library name)
   llvm_process_sources( ALL_FILES ${ARGN} )
@@ -9,7 +25,11 @@ macro(add_llvm_library name)
   if( LLVM_COMMON_DEPENDS )
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
+  if (LLVM_COMMON_LIBS)
+    target_link_libraries(${name} ${LLVM_COMMON_LIBS})
+  endif()
   install(TARGETS ${name}
+    EXPORT LLVM
     LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
     ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
   # The LLVM Target library shall be built before its sublibraries
@@ -38,6 +58,7 @@ ${name} ignored.")
     endif()
 
     install(TARGETS ${name}
+      EXPORT LLVM
       LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
       ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
   endif()
@@ -57,9 +78,6 @@ macro(add_llvm_executable name)
       target_link_libraries( ${name} ${lib} )
     endforeach(lib)
   endif( LLVM_USED_LIBS )
-  if( LLVM_LINK_COMPONENTS )
-    llvm_config(${name} ${LLVM_LINK_COMPONENTS})
-  endif( LLVM_LINK_COMPONENTS )
   get_system_libs(llvm_system_libs)
   if( llvm_system_libs )
     target_link_libraries(${name} ${llvm_system_libs})
@@ -67,6 +85,9 @@ macro(add_llvm_executable name)
   if( LLVM_COMMON_DEPENDS )
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
+  if (LLVM_COMMON_LIBS)
+    target_link_libraries(${name} ${LLVM_COMMON_LIBS})
+  endif()
 endmacro(add_llvm_executable name)
 
 
@@ -107,3 +128,61 @@ macro(add_llvm_target target_name)
   endif (TABLEGEN_OUTPUT)
   set(CURRENT_LLVM_TARGET LLVM${target_name} PARENT_SCOPE)
 endmacro(add_llvm_target)
+
+macro(llvm_get_target_libraries return_var)
+  set( link_components ${ARGN} )
+  foreach(c ${link_components})
+    # add codegen, asmprinter, asmparser, disassembler
+    list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
+    if( NOT idx LESS 0 )
+      list(FIND llvm_libs "LLVM${c}CodeGen" idx)
+      if( NOT idx LESS 0 )
+        list(APPEND expanded_components "LLVM${c}CodeGen")
+      else()
+        list(FIND llvm_libs "LLVM${c}" idx)
+        if( NOT idx LESS 0 )
+          list(APPEND expanded_components "LLVM${c}")
+        else()
+          message(FATAL_ERROR "Target ${c} is not in the set of libraries.")
+        endif()
+      endif()
+      list(FIND llvm_libs "LLVM${c}AsmPrinter" asmidx)
+      if( NOT asmidx LESS 0 )
+        list(APPEND expanded_components "LLVM${c}AsmPrinter")
+      endif()
+      list(FIND llvm_libs "LLVM${c}AsmParser" asmidx)
+      if( NOT asmidx LESS 0 )
+        list(APPEND expanded_components "LLVM${c}AsmParser")
+      endif()
+      list(FIND llvm_libs "LLVM${c}Info" asmidx)
+      if( NOT asmidx LESS 0 )
+        list(APPEND expanded_components "LLVM${c}Info")
+      endif()
+      list(FIND llvm_libs "LLVM${c}Disassembler" asmidx)
+      if( NOT asmidx LESS 0 )
+        list(APPEND expanded_components "LLVM${c}Disassembler")
+      endif()
+    elseif( c STREQUAL "native" )
+      list(APPEND expanded_components "LLVM${LLVM_NATIVE_ARCH}CodeGen")
+    elseif( c STREQUAL "nativecodegen" )
+      list(APPEND expanded_components "LLVM${LLVM_NATIVE_ARCH}CodeGen")
+    elseif( c STREQUAL "backend" )
+      # same case as in `native'.
+    elseif( c STREQUAL "engine" OR c STREQUAL "jit")
+      # TODO: as we assume we are on X86, this is `jit'.
+      list(APPEND expanded_components "LLVMJIT")
+    elseif( c STREQUAL "interpreter" )
+      list(APPEND expanded_components "LLVMInterpreter")
+    elseif( c STREQUAL "all" )
+      list(APPEND expanded_components ${llvm_libs})
+    else( NOT idx LESS 0 )
+      list(APPEND expanded_components LLVM${c})
+    endif( NOT idx LESS 0 )
+  endforeach(c)
+  set(${return_var} ${expanded_components})
+endmacro(llvm_get_target_libraries)
+
+macro(add_llvm_link_components target_name)
+  llvm_get_target_libraries(target_libs ${ARGN})
+  target_link_libraries(${target_name} ${target_libs})
+endmacro()
index 416d7f4..4e79371 100644 (file)
@@ -1,12 +1,18 @@
-set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/share/llvm/cmake")
+set(LLVM_CFLAGS "${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
+set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
+set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
+llvm_get_target_libraries(LLVM_JIT_LIBS jit)
+llvm_get_target_libraries(LLVM_INTERPRETER_LIBS interpreter)
+llvm_get_target_libraries(LLVM_NATIVECODEGEN_LIBS nativecodegen)
+get_system_libs(LLVM_SYSTEM_LIBS)
 
 configure_file(
-  LLVM.cmake
-  ${llvm_cmake_builddir}/LLVM.cmake
-  @ONLY)
+  LLVMConfig.cmake.in
+  ${LLVM_BINARY_DIR}/cmake/modules/LLVMConfig.cmake
+  @ONLY
+  )
 
 install(FILES
-  ${llvm_cmake_builddir}/LLVM.cmake
-  LLVMConfig.cmake
-  LLVMLibDeps.cmake
-  DESTINATION share/llvm/cmake)
+  ${LLVM_BINARY_DIR}/cmake/modules/LLVMConfig.cmake
+  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/
+  )
diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake
deleted file mode 100755 (executable)
index e549708..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-function(get_system_libs return_var)
-  # Returns in `return_var' a list of system libraries used by LLVM.
-  if( NOT MSVC )
-    if( MINGW )
-      set(system_libs ${system_libs} imagehlp psapi)
-    elseif( CMAKE_HOST_UNIX )
-      if( HAVE_LIBDL )
-       set(system_libs ${system_libs} ${CMAKE_DL_LIBS})
-      endif()
-      if( LLVM_ENABLE_THREADS AND HAVE_LIBPTHREAD )
-       set(system_libs ${system_libs} pthread)
-      endif()
-    endif( MINGW )
-  endif( NOT MSVC )
-  set(${return_var} ${system_libs} PARENT_SCOPE)
-endfunction(get_system_libs)
-
-
-function(is_llvm_target_library library return_var)
-  # Sets variable `return_var' to ON if `library' corresponds to a
-  # LLVM supported target. To OFF if it doesn't.
-  set(${return_var} OFF PARENT_SCOPE)
-  string(TOUPPER "${library}" capitalized_lib)
-  string(TOUPPER "${LLVM_ALL_TARGETS}" targets)
-  foreach(t ${targets})
-    if( capitalized_lib STREQUAL "LLVM${t}" OR
-       capitalized_lib STREQUAL "LLVM${t}CODEGEN" OR
-       capitalized_lib STREQUAL "LLVM${t}ASMPARSER" OR
-       capitalized_lib STREQUAL "LLVM${t}ASMPRINTER" OR
-       capitalized_lib STREQUAL "LLVM${t}DISASSEMBLER" OR
-       capitalized_lib STREQUAL "LLVM${t}INFO" )
-      set(${return_var} ON PARENT_SCOPE)
-      break()
-    endif()
-  endforeach()
-endfunction(is_llvm_target_library)
-
-
-macro(llvm_config executable)
-  explicit_llvm_config(${executable} ${ARGN})
-endmacro(llvm_config)
-
-
-function(explicit_llvm_config executable)
-  set( link_components ${ARGN} )
-
-  explicit_map_components_to_libraries(LIBRARIES ${link_components})
-  target_link_libraries(${executable} ${LIBRARIES})
-endfunction(explicit_llvm_config)
-
-
-# This is a variant intended for the final user:
-function(llvm_map_components_to_libraries OUT_VAR)
-  explicit_map_components_to_libraries(result ${ARGN})
-  get_system_libs(sys_result)
-  set( ${OUT_VAR} ${result} ${sys_result} PARENT_SCOPE )
-endfunction(llvm_map_components_to_libraries)
-
-
-function(explicit_map_components_to_libraries out_libs)
-  set( link_components ${ARGN} )
-  foreach(c ${link_components})
-    # add codegen, asmprinter, asmparser, disassembler
-    list(FIND LLVM_TARGETS_TO_BUILD ${c} idx)
-    if( NOT idx LESS 0 )
-      list(FIND llvm_libs "LLVM${c}CodeGen" idx)
-      if( NOT idx LESS 0 )
-       list(APPEND expanded_components "LLVM${c}CodeGen")
-      else()
-       list(FIND llvm_libs "LLVM${c}" idx)
-       if( NOT idx LESS 0 )
-         list(APPEND expanded_components "LLVM${c}")
-       else()
-         message(FATAL_ERROR "Target ${c} is not in the set of libraries.")
-       endif()
-      endif()
-      list(FIND llvm_libs "LLVM${c}AsmPrinter" asmidx)
-      if( NOT asmidx LESS 0 )
-        list(APPEND expanded_components "LLVM${c}AsmPrinter")
-      endif()
-      list(FIND llvm_libs "LLVM${c}AsmParser" asmidx)
-      if( NOT asmidx LESS 0 )
-        list(APPEND expanded_components "LLVM${c}AsmParser")
-      endif()
-      list(FIND llvm_libs "LLVM${c}Info" asmidx)
-      if( NOT asmidx LESS 0 )
-        list(APPEND expanded_components "LLVM${c}Info")
-      endif()
-      list(FIND llvm_libs "LLVM${c}Disassembler" asmidx)
-      if( NOT asmidx LESS 0 )
-        list(APPEND expanded_components "LLVM${c}Disassembler")
-      endif()
-    elseif( c STREQUAL "native" )
-      list(APPEND expanded_components "LLVM${LLVM_NATIVE_ARCH}CodeGen")
-    elseif( c STREQUAL "nativecodegen" )
-      list(APPEND expanded_components "LLVM${LLVM_NATIVE_ARCH}CodeGen")
-    elseif( c STREQUAL "backend" )
-      # same case as in `native'.
-    elseif( c STREQUAL "engine" )
-      # TODO: as we assume we are on X86, this is `jit'.
-      list(APPEND expanded_components "LLVMJIT")
-    elseif( c STREQUAL "all" )
-      list(APPEND expanded_components ${llvm_libs})
-    else( NOT idx LESS 0 )
-      list(APPEND expanded_components LLVM${c})
-    endif( NOT idx LESS 0 )
-  endforeach(c)
-  # We must match capitalization.
-  string(TOUPPER "${llvm_libs}" capitalized_libs)
-  list(REMOVE_DUPLICATES expanded_components)
-  list(LENGTH expanded_components lst_size)
-  set(result "")
-  while( 0 LESS ${lst_size} )
-    list(GET expanded_components 0 c)
-    string(TOUPPER "${c}" capitalized)
-    list(FIND capitalized_libs ${capitalized} idx)
-    set(add_it ON)
-    if( idx LESS 0 )
-      # The library is unkown. Maybe is an ommitted target?
-      is_llvm_target_library(${c} iltl_result)
-      if( NOT iltl_result )
-       message(FATAL_ERROR "Library ${c} not found in list of llvm libraries.")
-      endif()
-      set(add_it OFF)
-    endif( idx LESS 0 )
-    list(GET llvm_libs ${idx} canonical_lib)
-    list(REMOVE_ITEM result ${canonical_lib})
-    foreach(c ${MSVC_LIB_DEPS_${canonical_lib}})
-      list(REMOVE_ITEM expanded_components ${c})
-    endforeach()
-    if( add_it )
-      list(APPEND result ${canonical_lib})
-      list(APPEND expanded_components ${MSVC_LIB_DEPS_${canonical_lib}})
-    endif()
-    list(REMOVE_AT expanded_components 0)
-    list(LENGTH expanded_components lst_size)
-  endwhile( 0 LESS ${lst_size} )
-  set(${out_libs} ${result} PARENT_SCOPE)
-endfunction(explicit_map_components_to_libraries)
-
-
-# The library dependency data is contained in the file
-# LLVMLibDeps.cmake on this directory. It is automatically generated
-# by tools/llvm-config/CMakeLists.txt when the build comprises all the
-# targets and we are on a environment Posix enough to build the
-# llvm-config script. This, in practice, just excludes MSVC.
-
-# When you remove or rename a library from the build, be sure to
-# remove its file from lib/ as well, or the GenLibDeps.pl script will
-# include it on its analysis!
-
-# The format generated by GenLibDeps.pl
-
-# libLLVMARMAsmPrinter.a: libLLVMMC.a libLLVMSupport.a
-
-# is translated to:
-
-# set(MSVC_LIB_DEPS_LLVMARMAsmPrinter LLVMMC LLVMSupport)
-
-# It is necessary to remove the `lib' prefix and the `.a' suffix.
-
-# This 'sed' script should do the trick:
-# sed -e s'#\.a##g' -e 's#libLLVM#LLVM#g' -e 's#: # #' -e 's#\(.*\)#set(MSVC_LIB_DEPS_\1)#' ~/llvm/tools/llvm-config/LibDeps.txt
-
-include(LLVMLibDeps)
diff --git a/cmake/modules/LLVMConfig.cmake.in b/cmake/modules/LLVMConfig.cmake.in
new file mode 100644 (file)
index 0000000..ea3f683
--- /dev/null
@@ -0,0 +1,11 @@
+get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+include(${SELF_DIR}/LLVMTargets.cmake)
+get_filename_component(LLVM_INCLUDE_DIRS "${SELF_DIR}/../../../include" ABSOLUTE)
+set(LLVM_CPPFLAGS "@LLVM_CPPFLAGS@")
+set(LLVM_CFLAGS "@LLVM_CFLAGS@")
+set(LLVM_CXXFLAGS "@LLVM_CXXFLAGS@")
+set(LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@")
+set(LLVM_JIT_LIBS "@LLVM_JIT_LIBS@")
+set(LLVM_INTERPRETER_LIBS "@LLVM_INTERPRETER_LIBS@")
+set(LLVM_NATIVECODEGEN_LIBS "@LLVM_NATIVECODEGEN_LIBS@")
+set(LLVM_BUILDMODE "@LLVM_BUILDMODE@")
diff --git a/cmake/modules/LLVMLibDeps.cmake b/cmake/modules/LLVMLibDeps.cmake
deleted file mode 100644 (file)
index e639b04..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-set(MSVC_LIB_DEPS_LLVMARMAsmParser LLVMARMInfo LLVMMC LLVMMCParser LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMARMAsmPrinter LLVMMC LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMARMCodeGen LLVMARMInfo LLVMAnalysis LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMARMInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMAlphaAsmPrinter LLVMAlphaInfo LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMAlphaCodeGen LLVMAlphaInfo LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMAlphaInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMAnalysis LLVMCore LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMArchive LLVMBitReader LLVMCore LLVMSupport LLVMSystem)
-set(MSVC_LIB_DEPS_LLVMAsmParser LLVMCore LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMAsmPrinter LLVMAnalysis LLVMCodeGen LLVMCore LLVMMC LLVMMCParser LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMBitReader LLVMCore LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMBitWriter LLVMCore LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMBlackfinAsmPrinter LLVMAsmPrinter LLVMBlackfinInfo LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMBlackfinCodeGen LLVMBlackfinInfo LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMBlackfinInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMCBackend LLVMAnalysis LLVMCBackendInfo LLVMCodeGen LLVMCore LLVMMC LLVMScalarOpts LLVMSupport LLVMSystem LLVMTarget LLVMTransformUtils LLVMipa)
-set(MSVC_LIB_DEPS_LLVMCBackendInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMCellSPUAsmPrinter LLVMAsmPrinter LLVMCellSPUInfo LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMCellSPUCodeGen LLVMCellSPUInfo LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMCellSPUInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMCodeGen LLVMAnalysis LLVMCore LLVMMC LLVMScalarOpts LLVMSupport LLVMSystem LLVMTarget LLVMTransformUtils)
-set(MSVC_LIB_DEPS_LLVMCore LLVMSupport LLVMSystem)
-set(MSVC_LIB_DEPS_LLVMCppBackend LLVMCore LLVMCppBackendInfo LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMCppBackendInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMExecutionEngine LLVMCore LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMInstCombine LLVMAnalysis LLVMCore LLVMSupport LLVMSystem LLVMTarget LLVMTransformUtils)
-set(MSVC_LIB_DEPS_LLVMInstrumentation LLVMAnalysis LLVMCore LLVMSupport LLVMSystem LLVMTransformUtils)
-set(MSVC_LIB_DEPS_LLVMInterpreter LLVMCodeGen LLVMCore LLVMExecutionEngine LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMJIT LLVMCodeGen LLVMCore LLVMExecutionEngine LLVMMC LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMLinker LLVMArchive LLVMBitReader LLVMCore LLVMSupport LLVMSystem LLVMTransformUtils)
-set(MSVC_LIB_DEPS_LLVMMBlazeAsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMBlazeCodeGen LLVMMBlazeInfo LLVMMC LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMBlazeCodeGen LLVMCodeGen LLVMCore LLVMMBlazeInfo LLVMMC LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMBlazeInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMMC LLVMSupport LLVMSystem)
-set(MSVC_LIB_DEPS_LLVMMCDisassembler LLVMARMAsmParser LLVMARMCodeGen LLVMARMInfo LLVMAlphaAsmPrinter LLVMAlphaCodeGen LLVMAlphaInfo LLVMBlackfinAsmPrinter LLVMBlackfinCodeGen LLVMBlackfinInfo LLVMCBackend LLVMCBackendInfo LLVMCellSPUAsmPrinter LLVMCellSPUCodeGen LLVMCellSPUInfo LLVMCppBackend LLVMCppBackendInfo LLVMMBlazeAsmPrinter LLVMMBlazeCodeGen LLVMMBlazeInfo LLVMMC LLVMMCParser LLVMMSP430AsmPrinter LLVMMSP430CodeGen LLVMMSP430Info LLVMMipsAsmPrinter LLVMMipsCodeGen LLVMMipsInfo LLVMPIC16AsmPrinter LLVMPIC16CodeGen LLVMPIC16Info LLVMPowerPCAsmPrinter LLVMPowerPCCodeGen LLVMPowerPCInfo LLVMSparcAsmPrinter LLVMSparcCodeGen LLVMSparcInfo LLVMSupport LLVMSystem LLVMSystemZAsmPrinter LLVMSystemZCodeGen LLVMSystemZInfo LLVMX86AsmParser LLVMX86CodeGen LLVMX86Disassembler LLVMX86Info LLVMXCoreAsmPrinter LLVMXCoreCodeGen LLVMXCoreInfo)
-set(MSVC_LIB_DEPS_LLVMMCParser LLVMMC LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMMSP430AsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMMSP430Info LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMSP430CodeGen LLVMCodeGen LLVMCore LLVMMC LLVMMSP430Info LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMSP430Info LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMMipsAsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMMipsCodeGen LLVMMipsInfo LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMipsCodeGen LLVMCodeGen LLVMCore LLVMMC LLVMMipsInfo LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMMipsInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMPIC16AsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMPIC16CodeGen LLVMPIC16Info LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMPIC16CodeGen LLVMAnalysis LLVMCodeGen LLVMCore LLVMMC LLVMPIC16Info LLVMSelectionDAG LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMPIC16Info LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMPowerPCAsmPrinter LLVMAnalysis LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMPowerPCInfo LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMPowerPCCodeGen LLVMCodeGen LLVMCore LLVMMC LLVMPowerPCInfo LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMPowerPCInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMScalarOpts LLVMAnalysis LLVMCore LLVMInstCombine LLVMSupport LLVMSystem LLVMTarget LLVMTransformUtils)
-set(MSVC_LIB_DEPS_LLVMSelectionDAG LLVMAnalysis LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMSparcAsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSparcInfo LLVMSupport LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMSparcCodeGen LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSparcInfo LLVMSupport LLVMSystem LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMSparcInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMSupport LLVMSystem)
-set(MSVC_LIB_DEPS_LLVMSystem )
-set(MSVC_LIB_DEPS_LLVMSystemZAsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMSystemZInfo LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMSystemZCodeGen LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMSystemZInfo LLVMTarget)
-set(MSVC_LIB_DEPS_LLVMSystemZInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMTarget LLVMCore LLVMMC LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMTransformUtils LLVMAnalysis LLVMCore LLVMSupport LLVMSystem LLVMTarget LLVMipa)
-set(MSVC_LIB_DEPS_LLVMX86AsmParser LLVMMC LLVMMCParser LLVMSupport LLVMTarget LLVMX86Info)
-set(MSVC_LIB_DEPS_LLVMX86AsmPrinter LLVMMC LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMX86CodeGen LLVMAnalysis LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMSystem LLVMTarget LLVMX86AsmPrinter LLVMX86Info)
-set(MSVC_LIB_DEPS_LLVMX86Disassembler LLVMMC LLVMSupport LLVMX86Info)
-set(MSVC_LIB_DEPS_LLVMX86Info LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMXCoreAsmPrinter LLVMAsmPrinter LLVMCodeGen LLVMCore LLVMMC LLVMSupport LLVMTarget LLVMXCoreInfo)
-set(MSVC_LIB_DEPS_LLVMXCoreCodeGen LLVMCodeGen LLVMCore LLVMMC LLVMSelectionDAG LLVMSupport LLVMTarget LLVMXCoreInfo)
-set(MSVC_LIB_DEPS_LLVMXCoreInfo LLVMSupport)
-set(MSVC_LIB_DEPS_LLVMipa LLVMAnalysis LLVMCore LLVMSupport LLVMSystem)
-set(MSVC_LIB_DEPS_LLVMipo LLVMAnalysis LLVMCore LLVMScalarOpts LLVMSupport LLVMSystem LLVMTarget LLVMTransformUtils LLVMipa)
index 7bec105..4859634 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
-
 add_llvm_example(BrainF
   BrainF.cpp
   BrainFDriver.cpp
   )
+
+add_llvm_link_components(BrainF jit nativecodegen interpreter)
+target_link_libraries(BrainF LLVMBitWriter)
index d661915..293c66b 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS jit nativecodegen)
-
 add_llvm_example(ExceptionDemo
   ExceptionDemo.cpp
   )
+
+add_llvm_link_components(ExceptionDemo jit nativecodegen)
index 6937612..7b8c3ea 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
 add_llvm_example(Fibonacci
   fibonacci.cpp
   )
+
+add_llvm_link_components(Fibonacci jit interpreter nativecodegen)
index 428b53f..672af14 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
 add_llvm_example(HowToUseJIT
   HowToUseJIT.cpp
   )
+
+add_llvm_link_components(HowToUseJIT jit interpreter nativecodegen)
index 1af8db0..059d7f6 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS core)
-
 add_llvm_example(Kaleidoscope-Ch3
   toy.cpp
   )
+
+target_link_libraries(Kaleidoscope-Ch3 LLVMCore)
index 0d1ac53..7aa18b8 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS core jit interpreter native)
-
 add_llvm_example(Kaleidoscope-Ch4
   toy.cpp
   )
+
+add_llvm_link_components(Kaleidoscope-Ch4 jit interpreter native)
+target_link_libraries(Kaleidoscope-Ch4 LLVMCore)
index 2d75ad3..33a0651 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS core jit interpreter native)
-
 add_llvm_example(Kaleidoscope-Ch5
   toy.cpp
   )
+
+add_llvm_link_components(Kaleidoscope-Ch5 jit interpreter native)
+target_link_libraries(Kaleidoscope-Ch5 LLVMCore)
index 2e15a5f..002e0d4 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS core jit interpreter native)
-
 add_llvm_example(Kaleidoscope-Ch6
   toy.cpp
   )
+
+add_llvm_link_components(Kaleidoscope-Ch6 jit interpreter native)
+target_link_libraries(Kaleidoscope-Ch6 LLVMCore)
index 9b8227c..3c4ac17 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS core jit interpreter native)
-
 add_llvm_example(Kaleidoscope-Ch7
   toy.cpp
   )
+
+add_llvm_link_components(Kaleidoscope-Ch7 jit interpreter native)
+target_link_libraries(Kaleidoscope-Ch7 LLVMCore)
index 81e9115..735942d 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS bitwriter)
-
 add_llvm_example(ModuleMaker
   ModuleMaker.cpp
   )
+
+target_link_libraries(ModuleMaker LLVMBitWriter LLVMCore)
index fbdc6e5..91ac5ef 100644 (file)
@@ -1,9 +1,9 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
-
 add_llvm_example(ParallelJIT
   ParallelJIT.cpp
   )
 
+add_llvm_link_components(ParallelJIT jit interpreter nativecodegen)
+
 if(HAVE_LIBPTHREAD)
   target_link_libraries(ParallelJIT pthread)
 endif(HAVE_LIBPTHREAD)
index 6a2ab68..e221c6e 100644 (file)
@@ -50,4 +50,4 @@ add_llvm_library(LLVMAnalysis
   ValueTracking.cpp
   )
 
-target_link_libraries (LLVMAnalysis LLVMSupport)
+target_link_libraries(LLVMAnalysis LLVMCore LLVMTarget)
index 007ad22..b63a849 100644 (file)
@@ -4,3 +4,5 @@ add_llvm_library(LLVMipa
   FindUsedTypes.cpp
   GlobalsModRef.cpp
   )
+
+target_link_libraries(LLVMipa LLVMAnalysis LLVMCore)
index 7ff478a..e5c5fbd 100644 (file)
@@ -3,3 +3,5 @@ add_llvm_library(LLVMArchive
   ArchiveReader.cpp
   ArchiveWriter.cpp
   )
+
+target_link_libraries(LLVMArchive LLVMBitReader LLVMCore)
index 985ebe2..02ea240 100644 (file)
@@ -4,3 +4,5 @@ add_llvm_library(LLVMAsmParser
   LLParser.cpp
   Parser.cpp
   )
+
+target_link_libraries(LLVMAsmParser LLVMCore)
index 693d431..7601d83 100644 (file)
@@ -2,3 +2,5 @@ add_llvm_library(LLVMBitReader
   BitReader.cpp
   BitcodeReader.cpp
   )
+
+target_link_libraries(LLVMBitReader LLVMCore)
index ca8b843..ef6e157 100644 (file)
@@ -8,4 +8,11 @@ add_llvm_library(LLVMAsmPrinter
   OcamlGCPrinter.cpp
   )
 
-target_link_libraries (LLVMAsmPrinter LLVMMCParser)
+target_link_libraries (LLVMAsmPrinter
+  LLVMAnalysis
+  LLVMCodeGen
+  LLVMCore
+  LLVMMC
+  LLVMMCParser
+  LLVMTarget
+  )
index 2ef115d..068ad2f 100644 (file)
@@ -83,4 +83,11 @@ add_llvm_library(LLVMCodeGen
   VirtRegRewriter.cpp
   )
 
-target_link_libraries (LLVMCodeGen LLVMCore LLVMScalarOpts)
+target_link_libraries (LLVMCodeGen
+  LLVMAnalysis
+  LLVMCore
+  LLVMMC
+  LLVMScalarOpts
+  LLVMTarget
+  LLVMTransformUtils
+  )
index 799988a..ce3259a 100644 (file)
@@ -22,4 +22,10 @@ add_llvm_library(LLVMSelectionDAG
   TargetSelectionDAGInfo.cpp
   )
 
-target_link_libraries (LLVMSelectionDAG LLVMAnalysis LLVMAsmPrinter LLVMCodeGen)
+target_link_libraries(LLVMSelectionDAG
+  LLVMAnalysis
+  LLVMCodeGen
+  LLVMCore
+  LLVMMC
+  LLVMTarget
+  )
index 153dd44..afe6665 100644 (file)
@@ -1,4 +1,3 @@
-set(LLVM_LINK_COMPONENTS support system)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvmc
index 0e118cc..efedd65 100644 (file)
@@ -2,3 +2,5 @@ add_llvm_library(LLVMExecutionEngine
   ExecutionEngine.cpp
   ExecutionEngineBindings.cpp
   )
+
+target_link_libraries(LLVMExecutionEngine LLVMCore LLVMTarget)
index dff97fa..b517d99 100644 (file)
@@ -3,3 +3,10 @@ add_llvm_library(LLVMInterpreter
   ExternalFunctions.cpp
   Interpreter.cpp
   )
+
+target_link_libraries(LLVMInterpreter
+  LLVMCodeGen
+  LLVMCore
+  LLVMExecutionEngine
+  LLVMTarget
+  )
index 42020d6..d81b162 100644 (file)
@@ -11,3 +11,11 @@ add_llvm_library(LLVMJIT
   OProfileJITEventListener.cpp
   TargetSelect.cpp
   )
+
+target_link_libraries(LLVMJIT
+  LLVMCodeGen
+  LLVMCore
+  LLVMExecutionEngine
+  LLVMMC
+  LLVMTarget
+  )
index 0b6d2f4..6a8b767 100644 (file)
@@ -4,3 +4,10 @@ add_llvm_library(LLVMLinker
   LinkModules.cpp
   Linker.cpp
   )
+
+target_link_libraries(LLVMLinker
+  LLVMArchive
+  LLVMBitReader
+  LLVMCore
+  LLVMTransformUtils
+  )
index 5fa7b70..a01b78e 100644 (file)
@@ -1,7 +1,8 @@
-
 add_llvm_library(LLVMMCDisassembler
   EDDisassembler.cpp
   EDOperand.cpp
   EDInst.cpp
   EDToken.cpp
   )
+
+add_llvm_link_components(LLVMMCDisassembler all)
index 9ba7c01..1fa6022 100644 (file)
@@ -5,3 +5,9 @@ add_llvm_library(LLVMARMAsmParser
   ARMAsmParser.cpp
   )
 
+target_link_libraries(LLVMARMAsmParser
+  LLVMARMInfo
+  LLVMMC
+  LLVMMCParser
+  LLVMTarget
+  )
index 18645c0..da4dd8e 100644 (file)
@@ -3,4 +3,6 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/
 add_llvm_library(LLVMARMAsmPrinter
   ARMInstPrinter.cpp
   )
+
 add_dependencies(LLVMARMAsmPrinter ARMCodeGenTable_gen)
+target_link_libraries(LLVMARMAsmPrinter LLVMMC)
index 6b4dee5..b38e953 100644 (file)
@@ -47,4 +47,13 @@ add_llvm_target(ARMCodeGen
   Thumb2SizeReduction.cpp
   )
 
-target_link_libraries (LLVMARMCodeGen LLVMARMAsmPrinter LLVMSelectionDAG)
+target_link_libraries (LLVMARMCodeGen
+  LLVMARMInfo
+  LLVMAnalysis
+  LLVMAsmPrinter
+  LLVMCodeGen
+  LLVMCore
+  LLVMMC
+  LLVMSelectionDAG
+  LLVMTarget
+  )
index 43ebdac..242b52f 100644 (file)
@@ -13,3 +13,5 @@ add_llvm_library(LLVMTarget
   TargetRegisterInfo.cpp
   TargetSubtarget.cpp
   )
+
+target_link_libraries(LLVMTarget LLVMCore LLVMMC)
index 40dbdd7..897db3a 100644 (file)
@@ -4,4 +4,11 @@ add_llvm_library(LLVMX86AsmParser
   X86AsmLexer.cpp
   X86AsmParser.cpp
   )
+
 add_dependencies(LLVMX86AsmParser X86CodeGenTable_gen)
+target_link_libraries(LLVMX86AsmParser
+  LLVMMC
+  LLVMMCParser
+  LLVMTarget
+  LLVMX86Info
+  )
index 033973e..71ee884 100644 (file)
@@ -5,4 +5,6 @@ add_llvm_library(LLVMX86AsmPrinter
   X86IntelInstPrinter.cpp
   X86InstComments.cpp
   )
+
 add_dependencies(LLVMX86AsmPrinter X86CodeGenTable_gen)
+target_link_libraries(LLVMX86AsmPrinter LLVMMC)
index e9399f5..f4e0331 100644 (file)
@@ -29,7 +29,7 @@ set(sources
   X86InstrInfo.cpp
   X86JITInfo.cpp
   X86MCAsmInfo.cpp
-  X86MCCodeEmitter.cpp 
+  X86MCCodeEmitter.cpp
   X86MCInstLower.cpp
   X86RegisterInfo.cpp
   X86SelectionDAGInfo.cpp
@@ -49,4 +49,14 @@ if( CMAKE_CL_64 )
 endif()
 
 add_llvm_target(X86CodeGen ${sources})
-
+target_link_libraries(LLVMX86CodeGen
+  LLVMAnalysis
+  LLVMAsmPrinter
+  LLVMCodeGen
+  LLVMCore
+  LLVMMC
+  LLVMSelectionDAG
+  LLVMTarget
+  LLVMX86AsmPrinter
+  LLVMX86Info
+  )
index 97589c0..91411f3 100644 (file)
@@ -11,4 +11,6 @@ set_property(
   PROPERTY COMPILE_FLAGS "/Od"
   )
 endif()
+
 add_dependencies(LLVMX86Disassembler X86CodeGenTable_gen)
+target_link_libraries(LLVMX86Disassembler LLVMMC LLVMX86Info)
index 65483e8..b07d094 100644 (file)
@@ -24,4 +24,11 @@ add_llvm_library(LLVMipo
   StructRetPromotion.cpp
   )
 
-target_link_libraries (LLVMipo LLVMScalarOpts LLVMInstCombine)
+target_link_libraries(LLVMipo
+  LLVMAnalysis
+  LLVMCore
+  LLVMScalarOpts
+  LLVMTarget
+  LLVMTransformUtils
+  LLVMipa
+  )
index 5b1ff3e..4330377 100644 (file)
@@ -9,9 +9,14 @@ add_llvm_library(LLVMInstCombine
   InstCombineMulDivRem.cpp
   InstCombinePHI.cpp
   InstCombineSelect.cpp
-  InstCombineShifts.cpp 
+  InstCombineShifts.cpp
   InstCombineSimplifyDemanded.cpp
   InstCombineVectorOps.cpp
   )
 
-target_link_libraries (LLVMInstCombine LLVMTransformUtils)
+target_link_libraries(LLVMInstCombine
+  LLVMAnalysis
+  LLVMCore
+  LLVMTarget
+  LLVMTransformUtils
+  )
index 128bf48..f5ad9c6 100644 (file)
@@ -3,3 +3,9 @@ add_llvm_library(LLVMInstrumentation
   OptimalEdgeProfiling.cpp
   ProfilingUtils.cpp
   )
+
+target_link_libraries(LLVMInstrumentation
+  LLVMAnalysis
+  LLVMCore
+  LLVMTransformUtils
+  )
index b7598ea..05825e7 100644 (file)
@@ -32,4 +32,10 @@ add_llvm_library(LLVMScalarOpts
   TailRecursionElimination.cpp
   )
 
-target_link_libraries (LLVMScalarOpts LLVMTransformUtils)
+target_link_libraries (LLVMScalarOpts
+  LLVMAnalysis
+  LLVMCore
+  LLVMInstCombine
+  LLVMTarget
+  LLVMTransformUtils
+  )
index 61cbeb2..f10a727 100644 (file)
@@ -25,4 +25,9 @@ add_llvm_library(LLVMTransformUtils
   ValueMapper.cpp
   )
 
-target_link_libraries (LLVMTransformUtils LLVMSupport)
+target_link_libraries(LLVMTransformUtils
+  LLVMAnalysis
+  LLVMCore
+  LLVMTarget
+  LLVMipa
+  )
index 7ed10e9..c4274dd 100644 (file)
@@ -2,15 +2,6 @@
 # large and three small executables. This is done to minimize memory load
 # in parallel builds.  Please retain this ordering.
 
-if( NOT WIN32 OR MSYS OR CYGWIN )
-  # It is useful to build llvm-config before the other tools, so we
-  # have a fresh LibDeps.txt for regenerating the hard-coded library
-  # dependencies. llvm-config/CMakeLists.txt takes care of this but we
-  # must keep llvm-config as the first entry on the list of tools to
-  # be built.
-  add_subdirectory(llvm-config)
-endif()
-
 add_subdirectory(opt)
 add_subdirectory(llvm-as)
 add_subdirectory(llvm-dis)
@@ -38,6 +29,4 @@ add_subdirectory(llvmc)
 
 if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt )
   add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/clang )
-endif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt )
-
-set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
+endif()
index e06feb1..731c7bf 100644 (file)
@@ -1,6 +1,3 @@
-set(LLVM_LINK_COMPONENTS asmparser instrumentation scalaropts ipo
-  linker bitreader bitwriter)
-
 add_llvm_tool(bugpoint
   BugDriver.cpp
   CrashDebugger.cpp
@@ -12,3 +9,13 @@ add_llvm_tool(bugpoint
   ToolRunner.cpp
   bugpoint.cpp
   )
+
+target_link_libraries(bugpoint
+  LLVMAsmParser
+  LLVMInstrumentation
+  LLVMScalarOpts
+  LLVMipo
+  LLVMLinker
+  LLVMBitReader
+  LLVMBitWriter
+  )
index 683f298..798578e 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} bitreader asmparser)
-
 add_llvm_tool(llc
   llc.cpp
   )
+
+add_llvm_link_components(llc all)
+target_link_libraries(llc LLVMBitReader LLVMAsmParser)
index ce70d46..8fd34ac 100644 (file)
@@ -1,5 +1,6 @@
-set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen bitreader selectiondag)
-
 add_llvm_tool(lli
   lli.cpp
   )
+
+add_llvm_link_components(lli jit interpreter nativecodegen)
+target_link_libraries(lli LLVMBitReader LLVMSelectionDAG)
index c8b0b72..65ad36a 100644 (file)
@@ -1,8 +1,9 @@
-set(LLVM_LINK_COMPONENTS archive)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ar
   llvm-ar.cpp
   )
 
+target_link_libraries(llvm-ar LLVMArchive)
+
 # TODO: Support check-local.
index eef4a13..05f5fd7 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS asmparser bitwriter)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-as
   llvm-as.cpp
   )
+
+target_link_libraries(llvm-as LLVMAsmParser LLVMBitWriter)
index 732bc32..2be4243 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS bitreader)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-bcanalyzer
   llvm-bcanalyzer.cpp
   )
+
+target_link_libraries(llvm-bcanalyzer LLVMBitReader)
index 663cae5..8887a64 100644 (file)
@@ -110,10 +110,6 @@ add_custom_target(llvm-config.target ALL
 
 add_dependencies(llvm-config.target ${llvm_lib_targets})
 
-# Make sure that llvm-config builds before the llvm tools, so we have
-# LibDeps.txt and can use it for updating the hard-coded library
-# dependencies on cmake/modules/LLVMLibDeps.cmake when the tools'
-# build fail due to outdated dependencies:
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} llvm-config.target)
 
 install(FILES ${LLVM_CONFIG}
@@ -122,25 +118,4 @@ install(FILES ${LLVM_CONFIG}
   DESTINATION bin)
 
 
-# Regeneration of library dependencies.
-
-# See the comments at the end of cmake/modules/LLVMConfig.cmake for
-# notes and guidelines.
-
-set(LLVMLibDeps ${LLVM_MAIN_SRC_DIR}/cmake/modules/LLVMLibDeps.cmake)
-set(LLVMLibDeps_TMP ${CMAKE_CURRENT_BINARY_DIR}/LLVMLibDeps.cmake.tmp)
-
-add_custom_command(OUTPUT ${LLVMLibDeps_TMP}
-  COMMAND sed -e s'@\\.a@@g' -e s'@\\.so@@g' -e 's@libLLVM@LLVM@g' -e 's@: @ @' -e 's@\\\(.*\\\)@set\(MSVC_LIB_DEPS_\\1\)@' ${FINAL_LIBDEPS} > ${LLVMLibDeps_TMP}
-  COMMAND ${CMAKE_COMMAND} -E copy_if_different ${LLVMLibDeps_TMP} ${LLVMLibDeps}
-  DEPENDS ${FINAL_LIBDEPS}
-  COMMENT "Updating cmake library dependencies file ${LLVMLibDeps}"
-  )
-
-if( LLVM_TARGETS_TO_BUILD STREQUAL LLVM_ALL_TARGETS )
-  add_custom_target(llvmlibdeps.target ALL DEPENDS ${LLVMLibDeps_TMP})
-  add_dependencies(llvmlibdeps.target llvm-config.target)
-  set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} llvmlibdeps.target)
-endif()
-
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
index f6d65c9..42e2ba8 100644 (file)
@@ -1,6 +1,6 @@
-set(LLVM_LINK_COMPONENTS support asmparser bitreader)
-
 add_llvm_tool(llvm-diff
   llvm-diff.cpp
   DifferenceEngine.cpp
   )
+
+target_link_libraries(llvm-diff LLVMAsmParser LLVMBitReader)
index d62a6b5..fb76772 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS bitreader)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-dis
   llvm-dis.cpp
   )
+
+target_link_libraries(llvm-dis LLVMCore LLVMBitReader)
index a4e3266..e3b728c 100644 (file)
@@ -1,5 +1,10 @@
-set(LLVM_LINK_COMPONENTS asmparser ipo bitreader bitwriter)
-
 add_llvm_tool(llvm-extract
   llvm-extract.cpp
   )
+
+target_link_libraries(llvm-extract
+  LLVMAsmParser
+  LLVMipo
+  LLVMBitReader
+  LLVMBitWriter
+  )
index 2ae4a1d..8fba66b 100644 (file)
@@ -1,6 +1,12 @@
-set(LLVM_LINK_COMPONENTS ipo scalaropts linker archive bitwriter)
-
 add_llvm_tool(llvm-ld
   Optimize.cpp
   llvm-ld.cpp
   )
+
+target_link_libraries(llvm-ld
+  LLVMipo
+  LLVMScalarOpts
+  LLVMLinker
+  LLVMArchive
+  LLVMBitWriter
+  )
index 11933f7..e837a48 100644 (file)
@@ -1,5 +1,10 @@
-set(LLVM_LINK_COMPONENTS linker bitreader bitwriter asmparser)
-
 add_llvm_tool(llvm-link
   llvm-link.cpp
   )
+
+target_link_libraries(llvm-link
+  LLVMLinker
+  LLVMBitReader
+  LLVMBitWriter
+  LLVMAsmParser
+  )
index 805caf4..ea987db 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} support MC MCParser MCDisassembler)
-
 add_llvm_tool(llvm-mc
   llvm-mc.cpp
   Disassembler.cpp
   )
+
+add_llvm_link_components(llvm-mc all)
+target_link_libraries(llvm-mc LLVMMC LLVMMCParser LLVMMCDisassembler)
index 45cf1b6..c771155 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS archive bitreader)
-
 add_llvm_tool(llvm-nm
   llvm-nm.cpp
   )
+
+target_link_libraries(llvm-nm LLVMArchive LLVMBitReader)
index 442112b..e1d95dd 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS bitreader analysis)
-
 add_llvm_tool(llvm-prof
   llvm-prof.cpp
   )
+
+target_link_libraries(llvm-prof LLVMBitReader LLVMAnalysis)
index 3116d2e..ab3fa37 100644 (file)
@@ -1,6 +1,7 @@
-set(LLVM_LINK_COMPONENTS archive)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ranlib
   llvm-ranlib.cpp
   )
+
+target_link_libraries(llvm-ranlib LLVMArchive)
index 0570d0e..5eff9d8 100644 (file)
@@ -1,8 +1,15 @@
-set(LLVM_LINK_COMPONENTS bitreader asmparser bitwriter instrumentation scalaropts ipo)
-
 add_llvm_tool(opt
   AnalysisWrappers.cpp
   GraphPrinters.cpp
   PrintSCC.cpp
   opt.cpp
   )
+
+target_link_libraries(opt
+  LLVMBitReader
+  LLVMAsmParser
+  LLVMBitWriter
+  LLVMInstrumentation
+  LLVMScalarOpts
+  LLVMipo
+  )