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 a6099d17c56a6d9f83ff43fd4f3f1477b74ef932..8a0d9e3e2e6ca3e55501489fa84a31a90b3bebc7 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 0ecd153c6be400117cf834a61e10dbf0fa719889..6291ad1d2eed7f84981046cd5640a93dcf2dd52f 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 416d7f4785641de0c7f86412ae24a596a9dfd1a8..4e79371feec8333e559fb7c2a344ff1d11719ef2 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 7bec105cdc8a677d4cce4bc78d4ae52be8a7f4ba..4859634ed138afc2059da57c98db92ce0c6974ec 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 d6619155684341eec5e3f9daa3d2342d9aa56e84..293c66b2298d6cf3f3e2094176124098ecafdb52 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 693761241fc18e18d0a6fd4dca3d1721e360bac3..7b8c3ea90406be7c9101caa9074a80522462a7f1 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 428b53ffb9be92bddb4063881014d6e2de2eab61..672af144d691d10508f6df934e2958bbb7f5e494 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 1af8db00a172284efd65b19c77163b8ed71dfc9d..059d7f6d5b009f947bd4978366e2246d48d3546f 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 0d1ac533f02d49a19758fadc0687da4630d8cabf..7aa18b8898871728e3280b3391061ad65193c600 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 2d75ad35923fa50f7063ee75161f5cb4ec5a4a67..33a0651f8c0a9d9c15707a4635ca9dc07e0c04df 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 2e15a5f7dfc60b10639fc26ef71be543c3fd53af..002e0d4670beb8f75d3220cb5d32258a4db2314c 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 9b8227c693409144d99c20f68c7b9a5ac0353bc1..3c4ac17d93ee5c61775cabdde348af444b2879c9 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 81e911560bdcf2c9c863029d5c265d79dce55590..735942d775d6ef6af19719e4da3efc688d8a8e7f 100644 (file)
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS bitwriter)
-
 add_llvm_example(ModuleMaker
   ModuleMaker.cpp
   )
+
+target_link_libraries(ModuleMaker LLVMBitWriter LLVMCore)
index fbdc6e5fc10b4ecc2516737566bba566e06181b0..91ac5ef4675128d85f2b8d348cf8303ffb821d4a 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 6a2ab681d1acf46f5a99202ba54fd31914aded9c..e221c6e25f4741dca4b0ec7b805d216fd5dc6faa 100644 (file)
@@ -50,4 +50,4 @@ add_llvm_library(LLVMAnalysis
   ValueTracking.cpp
   )
 
-target_link_libraries (LLVMAnalysis LLVMSupport)
+target_link_libraries(LLVMAnalysis LLVMCore LLVMTarget)
index 007ad228ae56cba785f6f6836a29ff408574820d..b63a8499c705640105fec09b7b80b5d28139addb 100644 (file)
@@ -4,3 +4,5 @@ add_llvm_library(LLVMipa
   FindUsedTypes.cpp
   GlobalsModRef.cpp
   )
+
+target_link_libraries(LLVMipa LLVMAnalysis LLVMCore)
index 7ff478a41a594c1e91e70109601ffdab7f3eb8a2..e5c5fbd45797ac89a974e3fb5c19dd175f2c220c 100644 (file)
@@ -3,3 +3,5 @@ add_llvm_library(LLVMArchive
   ArchiveReader.cpp
   ArchiveWriter.cpp
   )
+
+target_link_libraries(LLVMArchive LLVMBitReader LLVMCore)
index 985ebe20098854afc12c6c603a8e0dc491c748e3..02ea240dde1ef7fcd1276447e55add0f06d765c5 100644 (file)
@@ -4,3 +4,5 @@ add_llvm_library(LLVMAsmParser
   LLParser.cpp
   Parser.cpp
   )
+
+target_link_libraries(LLVMAsmParser LLVMCore)
index 693d4310b834576facf1a38d84a9165d6d4918de..7601d83f0cc95af13757e53c5f70cf8c8d67644a 100644 (file)
@@ -2,3 +2,5 @@ add_llvm_library(LLVMBitReader
   BitReader.cpp
   BitcodeReader.cpp
   )
+
+target_link_libraries(LLVMBitReader LLVMCore)
index ca8b8436c11fd576d3164b2603d7307d10041aff..ef6e157e86d0e2e092e07436883becbb7c9c122d 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 2ef115dbd205658f393e25a5885118b7e8b2a409..068ad2f1c6c5b4434d577ed1dd4525aecb13a08f 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 799988a4c8621be280681f505b7ea9394c9ab75b..ce3259a7f3e11af68188b528b79148bf25c5ea65 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 153dd443cbf2207b56d3b5e12585c7f6835eb04e..afe6665ddf2fb32668346d72832a9e3d9187783c 100644 (file)
@@ -1,4 +1,3 @@
-set(LLVM_LINK_COMPONENTS support system)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvmc
index 0e118ccd904f4628ddcd8c008145d4708edee69a..efedd65e78bb6d14532106b27cccaac62a0267fc 100644 (file)
@@ -2,3 +2,5 @@ add_llvm_library(LLVMExecutionEngine
   ExecutionEngine.cpp
   ExecutionEngineBindings.cpp
   )
+
+target_link_libraries(LLVMExecutionEngine LLVMCore LLVMTarget)
index dff97fa26e8f57338bebef20621f802daa0f8e2f..b517d99eb82334ea65ad3e1239877138b1841ac4 100644 (file)
@@ -3,3 +3,10 @@ add_llvm_library(LLVMInterpreter
   ExternalFunctions.cpp
   Interpreter.cpp
   )
+
+target_link_libraries(LLVMInterpreter
+  LLVMCodeGen
+  LLVMCore
+  LLVMExecutionEngine
+  LLVMTarget
+  )
index 42020d69af02a00a387be6944b35800952c56a32..d81b162a4a05e6aec03b7dae4ee2bb71aad4c7a7 100644 (file)
@@ -11,3 +11,11 @@ add_llvm_library(LLVMJIT
   OProfileJITEventListener.cpp
   TargetSelect.cpp
   )
+
+target_link_libraries(LLVMJIT
+  LLVMCodeGen
+  LLVMCore
+  LLVMExecutionEngine
+  LLVMMC
+  LLVMTarget
+  )
index 0b6d2f4218e3a4bfe8d8621219cfb94e0d4d1d4c..6a8b7676bd6b255abef7d925464d0004db77ac14 100644 (file)
@@ -4,3 +4,10 @@ add_llvm_library(LLVMLinker
   LinkModules.cpp
   Linker.cpp
   )
+
+target_link_libraries(LLVMLinker
+  LLVMArchive
+  LLVMBitReader
+  LLVMCore
+  LLVMTransformUtils
+  )
index 5fa7b70194b242e16001fce706088b645621d5c1..a01b78e5ac32aa05474617ff4b115252c66c9bcd 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 9ba7c0125d7f56cf52ba28fa995911f42ff68b53..1fa6022a46410cdb6d24f01303734214b6b1e7d2 100644 (file)
@@ -5,3 +5,9 @@ add_llvm_library(LLVMARMAsmParser
   ARMAsmParser.cpp
   )
 
+target_link_libraries(LLVMARMAsmParser
+  LLVMARMInfo
+  LLVMMC
+  LLVMMCParser
+  LLVMTarget
+  )
index 18645c0864a32e89d3994ebad8ae58a6f6a6ec9f..da4dd8e6067d982f109ded386e1a0c13cd8109e7 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 6b4dee5965d25c71844ebd8c29542ca2ba31f5a5..b38e9536dc97947192eb1febfdceebd2e1261dda 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 43ebdac528ca1caae6952dcfcce6522f1632bc0d..242b52f6399d53d96fbad0a3d5c4a62305bf558e 100644 (file)
@@ -13,3 +13,5 @@ add_llvm_library(LLVMTarget
   TargetRegisterInfo.cpp
   TargetSubtarget.cpp
   )
+
+target_link_libraries(LLVMTarget LLVMCore LLVMMC)
index 40dbdd72faa1961a16a93b18abac45d87cd47185..897db3a957bbdd0f1d24a62ddac2c87524436505 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 033973eeeff936ed2be77d4d706f44b8cbd19bd9..71ee884cc36c321b922f4dac501c787d5f10520a 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 e9399f5c83224b423d5e0b789773a6a5caa2663d..f4e03316446f9f6eb7c14d60ad61aded1075f5b3 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 97589c00515bd9b643ab6632d625dbd0bc5441e1..91411f3e9fbfd90ca1017e3946018c2c7d3e1b62 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 65483e8fed636afbeed8e1abf394a4e46c384b52..b07d0947eda8bc0073ff5970ba255a9fd7e95e7e 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 5b1ff3e23bb0fb3fb58036e7339dd3c410e9e47b..4330377850a7962e359a37d388186783e8c90b82 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 128bf489787cfbfa54b0b6657f28d4a67810c5f5..f5ad9c69611556a362097a8854432760959169d0 100644 (file)
@@ -3,3 +3,9 @@ add_llvm_library(LLVMInstrumentation
   OptimalEdgeProfiling.cpp
   ProfilingUtils.cpp
   )
+
+target_link_libraries(LLVMInstrumentation
+  LLVMAnalysis
+  LLVMCore
+  LLVMTransformUtils
+  )
index b7598eace536b4f0d805bd91dade64cbb225074b..05825e799394d557b9354ae8b0d9db4755db348a 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 61cbeb2bd35b917981b2e43eba6a41ab01b59b90..f10a72710e105631450f0219e44cdfe4271a5a3c 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 7ed10e9729dea114282bf3c54c89585027775882..c4274ddf9f8a41132885daf8601863b6690ebac5 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 e06feb100312413d3d1dba472ec2b22092154986..731c7bf6f98ec1aa456d50c06b1fd855383c8a0b 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 683f29862d5c21ca639ef4e8a46242601372c0ba..798578e7bb77fd9a79afdf4c6bb482d0ad1a9ceb 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 ce70d46e4a5e4f5f252e284e160ab3e85bdf4696..8fd34aca3fd825570ba7ab40987e00211d472206 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 c8b0b725d83ccc6beecb7354f7593e7ca9f09c57..65ad36a470bb48aeb81cf44a50e2cc0fb1d9d5b4 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 eef4a13e29dcc22aa7b04c11965ba062a62cffd2..05f5fd7118202b08711252c47bf7f6aec0befaca 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 732bc3296f2c2796ba44023ad2d0eedb03c704f5..2be4243147b35182ec669d147573ce45de7956b6 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 663cae5ed2d4ee5fb568b3452a42d87cfcff2b86..8887a64a63d67274070d88148449510eeae71955 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 f6d65c947a58cfc44a536eda7ead02230eb78496..42e2ba82b32384a0104afad5d5221d0a100bb5ac 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 d62a6b5ec895e036fe5186cfeb2736905e8529c7..fb767726a7ed31e181301c66302801f05a845b00 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 a4e3266e3532818c46e536283c82fec178fd220c..e3b728c69d642822b1d6a7151f7764c9768d1422 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 2ae4a1dba386da212cec352e031d98a0fb8e50e2..8fba66b9755ed1955413a630f6375ee57dc8c5fa 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 11933f7f959ea41a385a8300e03d805aff9e7a9b..e837a48b05b8af57fcd59f3d0c4e5a29f2483f8d 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 805caf403a19e668bc9c2bb648a2cf38bc17ce32..ea987dbc16767e09a57eb951c41fae268da82bd9 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 45cf1b67f94d5479f108fa032899cd8eec570ca5..c77115570299bac948bdbcc39a6f10e71d9ef513 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 442112bc88ed5dc0a3f2fae1884d118d8f323003..e1d95ddeef4f36531467040673cc0c6191c13b07 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 3116d2e4ff79eae914c574e6dca664248cce5f0f..ab3fa37c46f58ea0d7b10ed8c7f4c2e2a4acb82f 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 0570d0e04af799d63c79b509b2f0c2bcbe97085e..5eff9d80f9ae82cc97877941caa31b6c26881ce3 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
+  )