Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally."
authorMichael J. Spencer <bigcheesegs@gmail.com>
Mon, 13 Sep 2010 23:59:48 +0000 (23:59 +0000)
committerMichael J. Spencer <bigcheesegs@gmail.com>
Mon, 13 Sep 2010 23:59:48 +0000 (23:59 +0000)
This reverts commit r113632

Conflicts:

cmake/modules/AddLLVM.cmake

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113819 91177308-0d34-0410-b5e6-96231b3b80d8

62 files changed:
CMakeLists.txt
cmake/modules/AddLLVM.cmake
cmake/modules/CMakeLists.txt
cmake/modules/LLVMConfig.cmake [new file with mode: 0755]
cmake/modules/LLVMConfig.cmake.in [deleted file]
cmake/modules/LLVMLibDeps.cmake [new file with mode: 0644]
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 6fbaa5d45496a1560e00365703647e5febf4f2f5..fe4dd833ed6eb70cada286dcc7777beb390bae77 100644 (file)
@@ -272,7 +272,6 @@ add_subdirectory(lib/System)
 
 # Everything else depends on Support and System:
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} ${LLVM_LIBS} )
 
 # 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.")
 
 set(LLVM_TABLEGEN "tblgen" CACHE
   STRING "Native TableGen executable. Saves building one when cross-compiling.")
@@ -373,11 +372,6 @@ add_subdirectory(examples)
 
 add_subdirectory(cmake/modules)
 
 
 add_subdirectory(cmake/modules)
 
-install(EXPORT LLVM
-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/
-  FILE LLVMTargets.cmake
-  )
-
 install(DIRECTORY include/
   DESTINATION include
   FILES_MATCHING
 install(DIRECTORY include/
   DESTINATION include
   FILES_MATCHING
index 52864d2e95d97f24193078879eb9aaea0b9af37d..22a456e460c591fdb3e93d4c589fd56e03f56f62 100755 (executable)
@@ -1,21 +1,5 @@
 include(LLVMProcessSources)
 include(LLVMProcessSources)
-
-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)
+include(LLVMConfig)
 
 macro(add_llvm_library name)
   llvm_process_sources( ALL_FILES ${ARGN} )
 
 macro(add_llvm_library name)
   llvm_process_sources( ALL_FILES ${ARGN} )
@@ -25,11 +9,7 @@ macro(add_llvm_library name)
   if( LLVM_COMMON_DEPENDS )
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
   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}
   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
     LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
     ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
   # The LLVM Target library shall be built before its sublibraries
@@ -58,7 +38,6 @@ ${name} ignored.")
     endif()
 
     install(TARGETS ${name}
     endif()
 
     install(TARGETS ${name}
-      EXPORT LLVM
       LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
       ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
   endif()
       LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
       ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
   endif()
@@ -78,12 +57,12 @@ macro(add_llvm_executable name)
       target_link_libraries( ${name} ${lib} )
     endforeach(lib)
   endif( LLVM_USED_LIBS )
       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 )
   if( LLVM_COMMON_DEPENDS )
     add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} )
   endif( LLVM_COMMON_DEPENDS )
   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()
   if( NOT MINGW )
     get_system_libs(llvm_system_libs)
     if( llvm_system_libs )
   if( NOT MINGW )
     get_system_libs(llvm_system_libs)
     if( llvm_system_libs )
@@ -130,61 +109,3 @@ macro(add_llvm_target target_name)
   endif (TABLEGEN_OUTPUT)
   set(CURRENT_LLVM_TARGET LLVM${target_name} PARENT_SCOPE)
 endmacro(add_llvm_target)
   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 4e79371feec8333e559fb7c2a344ff1d11719ef2..416d7f4785641de0c7f86412ae24a596a9dfd1a8 100644 (file)
@@ -1,18 +1,12 @@
-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)
+set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/share/llvm/cmake")
 
 configure_file(
 
 configure_file(
-  LLVMConfig.cmake.in
-  ${LLVM_BINARY_DIR}/cmake/modules/LLVMConfig.cmake
-  @ONLY
-  )
+  LLVM.cmake
+  ${llvm_cmake_builddir}/LLVM.cmake
+  @ONLY)
 
 install(FILES
 
 install(FILES
-  ${LLVM_BINARY_DIR}/cmake/modules/LLVMConfig.cmake
-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm/
-  )
+  ${llvm_cmake_builddir}/LLVM.cmake
+  LLVMConfig.cmake
+  LLVMLibDeps.cmake
+  DESTINATION share/llvm/cmake)
diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake
new file mode 100755 (executable)
index 0000000..e549708
--- /dev/null
@@ -0,0 +1,165 @@
+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
deleted file mode 100644 (file)
index ea3f683..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-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
new file mode 100644 (file)
index 0000000..2f09368
--- /dev/null
@@ -0,0 +1,71 @@
+set(MSVC_LIB_DEPS_LLVMARMAsmParser LLVMARMInfo LLVMMC LLVMMCParser LLVMSupport LLVMTarget)
+set(MSVC_LIB_DEPS_LLVMARMAsmPrinter LLVMMC LLVMSupport)
+set(MSVC_LIB_DEPS_LLVMARMCodeGen LLVMARMAsmPrinter 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 4859634ed138afc2059da57c98db92ce0c6974ec..7bec105cdc8a677d4cce4bc78d4ae52be8a7f4ba 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS jit bitwriter nativecodegen interpreter)
+
 add_llvm_example(BrainF
   BrainF.cpp
   BrainFDriver.cpp
   )
 add_llvm_example(BrainF
   BrainF.cpp
   BrainFDriver.cpp
   )
-
-add_llvm_link_components(BrainF jit nativecodegen interpreter)
-target_link_libraries(BrainF LLVMBitWriter)
index 293c66b2298d6cf3f3e2094176124098ecafdb52..d6619155684341eec5e3f9daa3d2342d9aa56e84 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS jit nativecodegen)
+
 add_llvm_example(ExceptionDemo
   ExceptionDemo.cpp
   )
 add_llvm_example(ExceptionDemo
   ExceptionDemo.cpp
   )
-
-add_llvm_link_components(ExceptionDemo jit nativecodegen)
index 7b8c3ea90406be7c9101caa9074a80522462a7f1..693761241fc18e18d0a6fd4dca3d1721e360bac3 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
+
 add_llvm_example(Fibonacci
   fibonacci.cpp
   )
 add_llvm_example(Fibonacci
   fibonacci.cpp
   )
-
-add_llvm_link_components(Fibonacci jit interpreter nativecodegen)
index 672af144d691d10508f6df934e2958bbb7f5e494..428b53ffb9be92bddb4063881014d6e2de2eab61 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
+
 add_llvm_example(HowToUseJIT
   HowToUseJIT.cpp
   )
 add_llvm_example(HowToUseJIT
   HowToUseJIT.cpp
   )
-
-add_llvm_link_components(HowToUseJIT jit interpreter nativecodegen)
index 059d7f6d5b009f947bd4978366e2246d48d3546f..1af8db00a172284efd65b19c77163b8ed71dfc9d 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS core)
+
 add_llvm_example(Kaleidoscope-Ch3
   toy.cpp
   )
 add_llvm_example(Kaleidoscope-Ch3
   toy.cpp
   )
-
-target_link_libraries(Kaleidoscope-Ch3 LLVMCore)
index 7aa18b8898871728e3280b3391061ad65193c600..0d1ac533f02d49a19758fadc0687da4630d8cabf 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS core jit interpreter native)
+
 add_llvm_example(Kaleidoscope-Ch4
   toy.cpp
   )
 add_llvm_example(Kaleidoscope-Ch4
   toy.cpp
   )
-
-add_llvm_link_components(Kaleidoscope-Ch4 jit interpreter native)
-target_link_libraries(Kaleidoscope-Ch4 LLVMCore)
index 33a0651f8c0a9d9c15707a4635ca9dc07e0c04df..2d75ad35923fa50f7063ee75161f5cb4ec5a4a67 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS core jit interpreter native)
+
 add_llvm_example(Kaleidoscope-Ch5
   toy.cpp
   )
 add_llvm_example(Kaleidoscope-Ch5
   toy.cpp
   )
-
-add_llvm_link_components(Kaleidoscope-Ch5 jit interpreter native)
-target_link_libraries(Kaleidoscope-Ch5 LLVMCore)
index 002e0d4670beb8f75d3220cb5d32258a4db2314c..2e15a5f7dfc60b10639fc26ef71be543c3fd53af 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS core jit interpreter native)
+
 add_llvm_example(Kaleidoscope-Ch6
   toy.cpp
   )
 add_llvm_example(Kaleidoscope-Ch6
   toy.cpp
   )
-
-add_llvm_link_components(Kaleidoscope-Ch6 jit interpreter native)
-target_link_libraries(Kaleidoscope-Ch6 LLVMCore)
index 3c4ac17d93ee5c61775cabdde348af444b2879c9..9b8227c693409144d99c20f68c7b9a5ac0353bc1 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS core jit interpreter native)
+
 add_llvm_example(Kaleidoscope-Ch7
   toy.cpp
   )
 add_llvm_example(Kaleidoscope-Ch7
   toy.cpp
   )
-
-add_llvm_link_components(Kaleidoscope-Ch7 jit interpreter native)
-target_link_libraries(Kaleidoscope-Ch7 LLVMCore)
index 735942d775d6ef6af19719e4da3efc688d8a8e7f..81e911560bdcf2c9c863029d5c265d79dce55590 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS bitwriter)
+
 add_llvm_example(ModuleMaker
   ModuleMaker.cpp
   )
 add_llvm_example(ModuleMaker
   ModuleMaker.cpp
   )
-
-target_link_libraries(ModuleMaker LLVMBitWriter LLVMCore)
index 91ac5ef4675128d85f2b8d348cf8303ffb821d4a..fbdc6e5fc10b4ecc2516737566bba566e06181b0 100644 (file)
@@ -1,9 +1,9 @@
+set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen)
+
 add_llvm_example(ParallelJIT
   ParallelJIT.cpp
   )
 
 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)
 if(HAVE_LIBPTHREAD)
   target_link_libraries(ParallelJIT pthread)
 endif(HAVE_LIBPTHREAD)
index e221c6e25f4741dca4b0ec7b805d216fd5dc6faa..6a2ab681d1acf46f5a99202ba54fd31914aded9c 100644 (file)
@@ -50,4 +50,4 @@ add_llvm_library(LLVMAnalysis
   ValueTracking.cpp
   )
 
   ValueTracking.cpp
   )
 
-target_link_libraries(LLVMAnalysis LLVMCore LLVMTarget)
+target_link_libraries (LLVMAnalysis LLVMSupport)
index b63a8499c705640105fec09b7b80b5d28139addb..007ad228ae56cba785f6f6836a29ff408574820d 100644 (file)
@@ -4,5 +4,3 @@ add_llvm_library(LLVMipa
   FindUsedTypes.cpp
   GlobalsModRef.cpp
   )
   FindUsedTypes.cpp
   GlobalsModRef.cpp
   )
-
-target_link_libraries(LLVMipa LLVMAnalysis LLVMCore)
index e5c5fbd45797ac89a974e3fb5c19dd175f2c220c..7ff478a41a594c1e91e70109601ffdab7f3eb8a2 100644 (file)
@@ -3,5 +3,3 @@ add_llvm_library(LLVMArchive
   ArchiveReader.cpp
   ArchiveWriter.cpp
   )
   ArchiveReader.cpp
   ArchiveWriter.cpp
   )
-
-target_link_libraries(LLVMArchive LLVMBitReader LLVMCore)
index 02ea240dde1ef7fcd1276447e55add0f06d765c5..985ebe20098854afc12c6c603a8e0dc491c748e3 100644 (file)
@@ -4,5 +4,3 @@ add_llvm_library(LLVMAsmParser
   LLParser.cpp
   Parser.cpp
   )
   LLParser.cpp
   Parser.cpp
   )
-
-target_link_libraries(LLVMAsmParser LLVMCore)
index 7601d83f0cc95af13757e53c5f70cf8c8d67644a..693d4310b834576facf1a38d84a9165d6d4918de 100644 (file)
@@ -2,5 +2,3 @@ add_llvm_library(LLVMBitReader
   BitReader.cpp
   BitcodeReader.cpp
   )
   BitReader.cpp
   BitcodeReader.cpp
   )
-
-target_link_libraries(LLVMBitReader LLVMCore)
index ef6e157e86d0e2e092e07436883becbb7c9c122d..ca8b8436c11fd576d3164b2603d7307d10041aff 100644 (file)
@@ -8,11 +8,4 @@ add_llvm_library(LLVMAsmPrinter
   OcamlGCPrinter.cpp
   )
 
   OcamlGCPrinter.cpp
   )
 
-target_link_libraries (LLVMAsmPrinter
-  LLVMAnalysis
-  LLVMCodeGen
-  LLVMCore
-  LLVMMC
-  LLVMMCParser
-  LLVMTarget
-  )
+target_link_libraries (LLVMAsmPrinter LLVMMCParser)
index 068ad2f1c6c5b4434d577ed1dd4525aecb13a08f..2ef115dbd205658f393e25a5885118b7e8b2a409 100644 (file)
@@ -83,11 +83,4 @@ add_llvm_library(LLVMCodeGen
   VirtRegRewriter.cpp
   )
 
   VirtRegRewriter.cpp
   )
 
-target_link_libraries (LLVMCodeGen
-  LLVMAnalysis
-  LLVMCore
-  LLVMMC
-  LLVMScalarOpts
-  LLVMTarget
-  LLVMTransformUtils
-  )
+target_link_libraries (LLVMCodeGen LLVMCore LLVMScalarOpts)
index ce3259a7f3e11af68188b528b79148bf25c5ea65..799988a4c8621be280681f505b7ea9394c9ab75b 100644 (file)
@@ -22,10 +22,4 @@ add_llvm_library(LLVMSelectionDAG
   TargetSelectionDAGInfo.cpp
   )
 
   TargetSelectionDAGInfo.cpp
   )
 
-target_link_libraries(LLVMSelectionDAG
-  LLVMAnalysis
-  LLVMCodeGen
-  LLVMCore
-  LLVMMC
-  LLVMTarget
-  )
+target_link_libraries (LLVMSelectionDAG LLVMAnalysis LLVMAsmPrinter LLVMCodeGen)
index afe6665ddf2fb32668346d72832a9e3d9187783c..153dd443cbf2207b56d3b5e12585c7f6835eb04e 100644 (file)
@@ -1,3 +1,4 @@
+set(LLVM_LINK_COMPONENTS support system)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvmc
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvmc
index efedd65e78bb6d14532106b27cccaac62a0267fc..0e118ccd904f4628ddcd8c008145d4708edee69a 100644 (file)
@@ -2,5 +2,3 @@ add_llvm_library(LLVMExecutionEngine
   ExecutionEngine.cpp
   ExecutionEngineBindings.cpp
   )
   ExecutionEngine.cpp
   ExecutionEngineBindings.cpp
   )
-
-target_link_libraries(LLVMExecutionEngine LLVMCore LLVMTarget)
index b517d99eb82334ea65ad3e1239877138b1841ac4..dff97fa26e8f57338bebef20621f802daa0f8e2f 100644 (file)
@@ -3,10 +3,3 @@ add_llvm_library(LLVMInterpreter
   ExternalFunctions.cpp
   Interpreter.cpp
   )
   ExternalFunctions.cpp
   Interpreter.cpp
   )
-
-target_link_libraries(LLVMInterpreter
-  LLVMCodeGen
-  LLVMCore
-  LLVMExecutionEngine
-  LLVMTarget
-  )
index d81b162a4a05e6aec03b7dae4ee2bb71aad4c7a7..42020d69af02a00a387be6944b35800952c56a32 100644 (file)
@@ -11,11 +11,3 @@ add_llvm_library(LLVMJIT
   OProfileJITEventListener.cpp
   TargetSelect.cpp
   )
   OProfileJITEventListener.cpp
   TargetSelect.cpp
   )
-
-target_link_libraries(LLVMJIT
-  LLVMCodeGen
-  LLVMCore
-  LLVMExecutionEngine
-  LLVMMC
-  LLVMTarget
-  )
index 6a8b7676bd6b255abef7d925464d0004db77ac14..0b6d2f4218e3a4bfe8d8621219cfb94e0d4d1d4c 100644 (file)
@@ -4,10 +4,3 @@ add_llvm_library(LLVMLinker
   LinkModules.cpp
   Linker.cpp
   )
   LinkModules.cpp
   Linker.cpp
   )
-
-target_link_libraries(LLVMLinker
-  LLVMArchive
-  LLVMBitReader
-  LLVMCore
-  LLVMTransformUtils
-  )
index a01b78e5ac32aa05474617ff4b115252c66c9bcd..5fa7b70194b242e16001fce706088b645621d5c1 100644 (file)
@@ -1,8 +1,7 @@
+
 add_llvm_library(LLVMMCDisassembler
   EDDisassembler.cpp
   EDOperand.cpp
   EDInst.cpp
   EDToken.cpp
   )
 add_llvm_library(LLVMMCDisassembler
   EDDisassembler.cpp
   EDOperand.cpp
   EDInst.cpp
   EDToken.cpp
   )
-
-add_llvm_link_components(LLVMMCDisassembler all)
index 1fa6022a46410cdb6d24f01303734214b6b1e7d2..9ba7c0125d7f56cf52ba28fa995911f42ff68b53 100644 (file)
@@ -5,9 +5,3 @@ add_llvm_library(LLVMARMAsmParser
   ARMAsmParser.cpp
   )
 
   ARMAsmParser.cpp
   )
 
-target_link_libraries(LLVMARMAsmParser
-  LLVMARMInfo
-  LLVMMC
-  LLVMMCParser
-  LLVMTarget
-  )
index da4dd8e6067d982f109ded386e1a0c13cd8109e7..18645c0864a32e89d3994ebad8ae58a6f6a6ec9f 100644 (file)
@@ -3,6 +3,4 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/
 add_llvm_library(LLVMARMAsmPrinter
   ARMInstPrinter.cpp
   )
 add_llvm_library(LLVMARMAsmPrinter
   ARMInstPrinter.cpp
   )
-
 add_dependencies(LLVMARMAsmPrinter ARMCodeGenTable_gen)
 add_dependencies(LLVMARMAsmPrinter ARMCodeGenTable_gen)
-target_link_libraries(LLVMARMAsmPrinter LLVMMC)
index 7b0ee2b7e20ce235c05becd8070d34b2b62784f5..c381067b863900baad28f6e2be579d2f3d3844d8 100644 (file)
@@ -46,13 +46,4 @@ add_llvm_target(ARMCodeGen
   Thumb2SizeReduction.cpp
   )
 
   Thumb2SizeReduction.cpp
   )
 
-target_link_libraries (LLVMARMCodeGen
-  LLVMARMInfo
-  LLVMAnalysis
-  LLVMAsmPrinter
-  LLVMCodeGen
-  LLVMCore
-  LLVMMC
-  LLVMSelectionDAG
-  LLVMTarget
-  )
+target_link_libraries (LLVMARMCodeGen LLVMARMAsmPrinter LLVMSelectionDAG)
index 242b52f6399d53d96fbad0a3d5c4a62305bf558e..43ebdac528ca1caae6952dcfcce6522f1632bc0d 100644 (file)
@@ -13,5 +13,3 @@ add_llvm_library(LLVMTarget
   TargetRegisterInfo.cpp
   TargetSubtarget.cpp
   )
   TargetRegisterInfo.cpp
   TargetSubtarget.cpp
   )
-
-target_link_libraries(LLVMTarget LLVMCore LLVMMC)
index 897db3a957bbdd0f1d24a62ddac2c87524436505..40dbdd72faa1961a16a93b18abac45d87cd47185 100644 (file)
@@ -4,11 +4,4 @@ add_llvm_library(LLVMX86AsmParser
   X86AsmLexer.cpp
   X86AsmParser.cpp
   )
   X86AsmLexer.cpp
   X86AsmParser.cpp
   )
-
 add_dependencies(LLVMX86AsmParser X86CodeGenTable_gen)
 add_dependencies(LLVMX86AsmParser X86CodeGenTable_gen)
-target_link_libraries(LLVMX86AsmParser
-  LLVMMC
-  LLVMMCParser
-  LLVMTarget
-  LLVMX86Info
-  )
index 71ee884cc36c321b922f4dac501c787d5f10520a..033973eeeff936ed2be77d4d706f44b8cbd19bd9 100644 (file)
@@ -5,6 +5,4 @@ add_llvm_library(LLVMX86AsmPrinter
   X86IntelInstPrinter.cpp
   X86InstComments.cpp
   )
   X86IntelInstPrinter.cpp
   X86InstComments.cpp
   )
-
 add_dependencies(LLVMX86AsmPrinter X86CodeGenTable_gen)
 add_dependencies(LLVMX86AsmPrinter X86CodeGenTable_gen)
-target_link_libraries(LLVMX86AsmPrinter LLVMMC)
index f4e03316446f9f6eb7c14d60ad61aded1075f5b3..e9399f5c83224b423d5e0b789773a6a5caa2663d 100644 (file)
@@ -29,7 +29,7 @@ set(sources
   X86InstrInfo.cpp
   X86JITInfo.cpp
   X86MCAsmInfo.cpp
   X86InstrInfo.cpp
   X86JITInfo.cpp
   X86MCAsmInfo.cpp
-  X86MCCodeEmitter.cpp
+  X86MCCodeEmitter.cpp 
   X86MCInstLower.cpp
   X86RegisterInfo.cpp
   X86SelectionDAGInfo.cpp
   X86MCInstLower.cpp
   X86RegisterInfo.cpp
   X86SelectionDAGInfo.cpp
@@ -49,14 +49,4 @@ if( CMAKE_CL_64 )
 endif()
 
 add_llvm_target(X86CodeGen ${sources})
 endif()
 
 add_llvm_target(X86CodeGen ${sources})
-target_link_libraries(LLVMX86CodeGen
-  LLVMAnalysis
-  LLVMAsmPrinter
-  LLVMCodeGen
-  LLVMCore
-  LLVMMC
-  LLVMSelectionDAG
-  LLVMTarget
-  LLVMX86AsmPrinter
-  LLVMX86Info
-  )
+
index 91411f3e9fbfd90ca1017e3946018c2c7d3e1b62..97589c00515bd9b643ab6632d625dbd0bc5441e1 100644 (file)
@@ -11,6 +11,4 @@ set_property(
   PROPERTY COMPILE_FLAGS "/Od"
   )
 endif()
   PROPERTY COMPILE_FLAGS "/Od"
   )
 endif()
-
 add_dependencies(LLVMX86Disassembler X86CodeGenTable_gen)
 add_dependencies(LLVMX86Disassembler X86CodeGenTable_gen)
-target_link_libraries(LLVMX86Disassembler LLVMMC LLVMX86Info)
index b07d0947eda8bc0073ff5970ba255a9fd7e95e7e..65483e8fed636afbeed8e1abf394a4e46c384b52 100644 (file)
@@ -24,11 +24,4 @@ add_llvm_library(LLVMipo
   StructRetPromotion.cpp
   )
 
   StructRetPromotion.cpp
   )
 
-target_link_libraries(LLVMipo
-  LLVMAnalysis
-  LLVMCore
-  LLVMScalarOpts
-  LLVMTarget
-  LLVMTransformUtils
-  LLVMipa
-  )
+target_link_libraries (LLVMipo LLVMScalarOpts LLVMInstCombine)
index 4330377850a7962e359a37d388186783e8c90b82..5b1ff3e23bb0fb3fb58036e7339dd3c410e9e47b 100644 (file)
@@ -9,14 +9,9 @@ add_llvm_library(LLVMInstCombine
   InstCombineMulDivRem.cpp
   InstCombinePHI.cpp
   InstCombineSelect.cpp
   InstCombineMulDivRem.cpp
   InstCombinePHI.cpp
   InstCombineSelect.cpp
-  InstCombineShifts.cpp
+  InstCombineShifts.cpp 
   InstCombineSimplifyDemanded.cpp
   InstCombineVectorOps.cpp
   )
 
   InstCombineSimplifyDemanded.cpp
   InstCombineVectorOps.cpp
   )
 
-target_link_libraries(LLVMInstCombine
-  LLVMAnalysis
-  LLVMCore
-  LLVMTarget
-  LLVMTransformUtils
-  )
+target_link_libraries (LLVMInstCombine LLVMTransformUtils)
index f5ad9c69611556a362097a8854432760959169d0..128bf489787cfbfa54b0b6657f28d4a67810c5f5 100644 (file)
@@ -3,9 +3,3 @@ add_llvm_library(LLVMInstrumentation
   OptimalEdgeProfiling.cpp
   ProfilingUtils.cpp
   )
   OptimalEdgeProfiling.cpp
   ProfilingUtils.cpp
   )
-
-target_link_libraries(LLVMInstrumentation
-  LLVMAnalysis
-  LLVMCore
-  LLVMTransformUtils
-  )
index 05825e799394d557b9354ae8b0d9db4755db348a..b7598eace536b4f0d805bd91dade64cbb225074b 100644 (file)
@@ -32,10 +32,4 @@ add_llvm_library(LLVMScalarOpts
   TailRecursionElimination.cpp
   )
 
   TailRecursionElimination.cpp
   )
 
-target_link_libraries (LLVMScalarOpts
-  LLVMAnalysis
-  LLVMCore
-  LLVMInstCombine
-  LLVMTarget
-  LLVMTransformUtils
-  )
+target_link_libraries (LLVMScalarOpts LLVMTransformUtils)
index f10a72710e105631450f0219e44cdfe4271a5a3c..61cbeb2bd35b917981b2e43eba6a41ab01b59b90 100644 (file)
@@ -25,9 +25,4 @@ add_llvm_library(LLVMTransformUtils
   ValueMapper.cpp
   )
 
   ValueMapper.cpp
   )
 
-target_link_libraries(LLVMTransformUtils
-  LLVMAnalysis
-  LLVMCore
-  LLVMTarget
-  LLVMipa
-  )
+target_link_libraries (LLVMTransformUtils LLVMSupport)
index c4274ddf9f8a41132885daf8601863b6690ebac5..7ed10e9729dea114282bf3c54c89585027775882 100644 (file)
@@ -2,6 +2,15 @@
 # large and three small executables. This is done to minimize memory load
 # in parallel builds.  Please retain this ordering.
 
 # 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)
 add_subdirectory(opt)
 add_subdirectory(llvm-as)
 add_subdirectory(llvm-dis)
@@ -29,4 +38,6 @@ add_subdirectory(llvmc)
 
 if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt )
   add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/clang )
 
 if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt )
   add_subdirectory( ${CMAKE_CURRENT_SOURCE_DIR}/clang )
-endif()
+endif( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/clang/CMakeLists.txt )
+
+set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
index 731c7bf6f98ec1aa456d50c06b1fd855383c8a0b..e06feb100312413d3d1dba472ec2b22092154986 100644 (file)
@@ -1,3 +1,6 @@
+set(LLVM_LINK_COMPONENTS asmparser instrumentation scalaropts ipo
+  linker bitreader bitwriter)
+
 add_llvm_tool(bugpoint
   BugDriver.cpp
   CrashDebugger.cpp
 add_llvm_tool(bugpoint
   BugDriver.cpp
   CrashDebugger.cpp
@@ -9,13 +12,3 @@ add_llvm_tool(bugpoint
   ToolRunner.cpp
   bugpoint.cpp
   )
   ToolRunner.cpp
   bugpoint.cpp
   )
-
-target_link_libraries(bugpoint
-  LLVMAsmParser
-  LLVMInstrumentation
-  LLVMScalarOpts
-  LLVMipo
-  LLVMLinker
-  LLVMBitReader
-  LLVMBitWriter
-  )
index 798578e7bb77fd9a79afdf4c6bb482d0ad1a9ceb..683f29862d5c21ca639ef4e8a46242601372c0ba 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} bitreader asmparser)
+
 add_llvm_tool(llc
   llc.cpp
   )
 add_llvm_tool(llc
   llc.cpp
   )
-
-add_llvm_link_components(llc all)
-target_link_libraries(llc LLVMBitReader LLVMAsmParser)
index 8fd34aca3fd825570ba7ab40987e00211d472206..ce70d46e4a5e4f5f252e284e160ab3e85bdf4696 100644 (file)
@@ -1,6 +1,5 @@
+set(LLVM_LINK_COMPONENTS jit interpreter nativecodegen bitreader selectiondag)
+
 add_llvm_tool(lli
   lli.cpp
   )
 add_llvm_tool(lli
   lli.cpp
   )
-
-add_llvm_link_components(lli jit interpreter nativecodegen)
-target_link_libraries(lli LLVMBitReader LLVMSelectionDAG)
index 65ad36a470bb48aeb81cf44a50e2cc0fb1d9d5b4..c8b0b725d83ccc6beecb7354f7593e7ca9f09c57 100644 (file)
@@ -1,9 +1,8 @@
+set(LLVM_LINK_COMPONENTS archive)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ar
   llvm-ar.cpp
   )
 
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ar
   llvm-ar.cpp
   )
 
-target_link_libraries(llvm-ar LLVMArchive)
-
 # TODO: Support check-local.
 # TODO: Support check-local.
index 05f5fd7118202b08711252c47bf7f6aec0befaca..eef4a13e29dcc22aa7b04c11965ba062a62cffd2 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS asmparser bitwriter)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-as
   llvm-as.cpp
   )
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-as
   llvm-as.cpp
   )
-
-target_link_libraries(llvm-as LLVMAsmParser LLVMBitWriter)
index 2be4243147b35182ec669d147573ce45de7956b6..732bc3296f2c2796ba44023ad2d0eedb03c704f5 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS bitreader)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-bcanalyzer
   llvm-bcanalyzer.cpp
   )
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-bcanalyzer
   llvm-bcanalyzer.cpp
   )
-
-target_link_libraries(llvm-bcanalyzer LLVMBitReader)
index 8887a64a63d67274070d88148449510eeae71955..663cae5ed2d4ee5fb568b3452a42d87cfcff2b86 100644 (file)
@@ -110,6 +110,10 @@ add_custom_target(llvm-config.target ALL
 
 add_dependencies(llvm-config.target ${llvm_lib_targets})
 
 
 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}
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} llvm-config.target)
 
 install(FILES ${LLVM_CONFIG}
@@ -118,4 +122,25 @@ install(FILES ${LLVM_CONFIG}
   DESTINATION bin)
 
 
   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)
 set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} PARENT_SCOPE)
index 42e2ba82b32384a0104afad5d5221d0a100bb5ac..f6d65c947a58cfc44a536eda7ead02230eb78496 100644 (file)
@@ -1,6 +1,6 @@
+set(LLVM_LINK_COMPONENTS support asmparser bitreader)
+
 add_llvm_tool(llvm-diff
   llvm-diff.cpp
   DifferenceEngine.cpp
   )
 add_llvm_tool(llvm-diff
   llvm-diff.cpp
   DifferenceEngine.cpp
   )
-
-target_link_libraries(llvm-diff LLVMAsmParser LLVMBitReader)
index fb767726a7ed31e181301c66302801f05a845b00..d62a6b5ec895e036fe5186cfeb2736905e8529c7 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS bitreader)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-dis
   llvm-dis.cpp
   )
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-dis
   llvm-dis.cpp
   )
-
-target_link_libraries(llvm-dis LLVMCore LLVMBitReader)
index e3b728c69d642822b1d6a7151f7764c9768d1422..a4e3266e3532818c46e536283c82fec178fd220c 100644 (file)
@@ -1,10 +1,5 @@
+set(LLVM_LINK_COMPONENTS asmparser ipo bitreader bitwriter)
+
 add_llvm_tool(llvm-extract
   llvm-extract.cpp
   )
 add_llvm_tool(llvm-extract
   llvm-extract.cpp
   )
-
-target_link_libraries(llvm-extract
-  LLVMAsmParser
-  LLVMipo
-  LLVMBitReader
-  LLVMBitWriter
-  )
index 8fba66b9755ed1955413a630f6375ee57dc8c5fa..2ae4a1dba386da212cec352e031d98a0fb8e50e2 100644 (file)
@@ -1,12 +1,6 @@
+set(LLVM_LINK_COMPONENTS ipo scalaropts linker archive bitwriter)
+
 add_llvm_tool(llvm-ld
   Optimize.cpp
   llvm-ld.cpp
   )
 add_llvm_tool(llvm-ld
   Optimize.cpp
   llvm-ld.cpp
   )
-
-target_link_libraries(llvm-ld
-  LLVMipo
-  LLVMScalarOpts
-  LLVMLinker
-  LLVMArchive
-  LLVMBitWriter
-  )
index e837a48b05b8af57fcd59f3d0c4e5a29f2483f8d..11933f7f959ea41a385a8300e03d805aff9e7a9b 100644 (file)
@@ -1,10 +1,5 @@
+set(LLVM_LINK_COMPONENTS linker bitreader bitwriter asmparser)
+
 add_llvm_tool(llvm-link
   llvm-link.cpp
   )
 add_llvm_tool(llvm-link
   llvm-link.cpp
   )
-
-target_link_libraries(llvm-link
-  LLVMLinker
-  LLVMBitReader
-  LLVMBitWriter
-  LLVMAsmParser
-  )
index ea987dbc16767e09a57eb951c41fae268da82bd9..805caf403a19e668bc9c2bb648a2cf38bc17ce32 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} support MC MCParser MCDisassembler)
+
 add_llvm_tool(llvm-mc
   llvm-mc.cpp
   Disassembler.cpp
   )
 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 c77115570299bac948bdbcc39a6f10e71d9ef513..45cf1b67f94d5479f108fa032899cd8eec570ca5 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS archive bitreader)
+
 add_llvm_tool(llvm-nm
   llvm-nm.cpp
   )
 add_llvm_tool(llvm-nm
   llvm-nm.cpp
   )
-
-target_link_libraries(llvm-nm LLVMArchive LLVMBitReader)
index e1d95ddeef4f36531467040673cc0c6191c13b07..442112bc88ed5dc0a3f2fae1884d118d8f323003 100644 (file)
@@ -1,5 +1,5 @@
+set(LLVM_LINK_COMPONENTS bitreader analysis)
+
 add_llvm_tool(llvm-prof
   llvm-prof.cpp
   )
 add_llvm_tool(llvm-prof
   llvm-prof.cpp
   )
-
-target_link_libraries(llvm-prof LLVMBitReader LLVMAnalysis)
index ab3fa37c46f58ea0d7b10ed8c7f4c2e2a4acb82f..3116d2e4ff79eae914c574e6dca664248cce5f0f 100644 (file)
@@ -1,7 +1,6 @@
+set(LLVM_LINK_COMPONENTS archive)
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ranlib
   llvm-ranlib.cpp
   )
 set(LLVM_REQUIRES_EH 1)
 
 add_llvm_tool(llvm-ranlib
   llvm-ranlib.cpp
   )
-
-target_link_libraries(llvm-ranlib LLVMArchive)
index 5eff9d80f9ae82cc97877941caa31b6c26881ce3..0570d0e04af799d63c79b509b2f0c2bcbe97085e 100644 (file)
@@ -1,15 +1,8 @@
+set(LLVM_LINK_COMPONENTS bitreader asmparser bitwriter instrumentation scalaropts ipo)
+
 add_llvm_tool(opt
   AnalysisWrappers.cpp
   GraphPrinters.cpp
   PrintSCC.cpp
   opt.cpp
   )
 add_llvm_tool(opt
   AnalysisWrappers.cpp
   GraphPrinters.cpp
   PrintSCC.cpp
   opt.cpp
   )
-
-target_link_libraries(opt
-  LLVMBitReader
-  LLVMAsmParser
-  LLVMBitWriter
-  LLVMInstrumentation
-  LLVMScalarOpts
-  LLVMipo
-  )