summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-09-10 21:14:25 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-09-10 21:14:25 +0000
commit4e9c939312ff73bd0c6a6485fd5f97012f5910fa (patch)
tree5ac7e42fde2303030a9af1183b7842986459bc45
parentbb811a244567aa8a1522203f15588f4d001b7353 (diff)
CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113632 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt6
-rwxr-xr-xcmake/modules/AddLLVM.cmake87
-rw-r--r--cmake/modules/CMakeLists.txt22
-rwxr-xr-xcmake/modules/LLVMConfig.cmake165
-rw-r--r--cmake/modules/LLVMConfig.cmake.in11
-rw-r--r--cmake/modules/LLVMLibDeps.cmake71
-rw-r--r--examples/BrainF/CMakeLists.txt5
-rw-r--r--examples/ExceptionDemo/CMakeLists.txt4
-rw-r--r--examples/Fibonacci/CMakeLists.txt4
-rw-r--r--examples/HowToUseJIT/CMakeLists.txt4
-rw-r--r--examples/Kaleidoscope/Chapter3/CMakeLists.txt4
-rw-r--r--examples/Kaleidoscope/Chapter4/CMakeLists.txt5
-rw-r--r--examples/Kaleidoscope/Chapter5/CMakeLists.txt5
-rw-r--r--examples/Kaleidoscope/Chapter6/CMakeLists.txt5
-rw-r--r--examples/Kaleidoscope/Chapter7/CMakeLists.txt5
-rw-r--r--examples/ModuleMaker/CMakeLists.txt4
-rw-r--r--examples/ParallelJIT/CMakeLists.txt4
-rw-r--r--lib/Analysis/CMakeLists.txt2
-rw-r--r--lib/Analysis/IPA/CMakeLists.txt2
-rw-r--r--lib/Archive/CMakeLists.txt2
-rw-r--r--lib/AsmParser/CMakeLists.txt2
-rw-r--r--lib/Bitcode/Reader/CMakeLists.txt2
-rw-r--r--lib/CodeGen/AsmPrinter/CMakeLists.txt9
-rw-r--r--lib/CodeGen/CMakeLists.txt9
-rw-r--r--lib/CodeGen/SelectionDAG/CMakeLists.txt8
-rw-r--r--lib/CompilerDriver/CMakeLists.txt1
-rw-r--r--lib/ExecutionEngine/CMakeLists.txt2
-rw-r--r--lib/ExecutionEngine/Interpreter/CMakeLists.txt7
-rw-r--r--lib/ExecutionEngine/JIT/CMakeLists.txt8
-rw-r--r--lib/Linker/CMakeLists.txt7
-rw-r--r--lib/MC/MCDisassembler/CMakeLists.txt3
-rw-r--r--lib/Target/ARM/AsmParser/CMakeLists.txt6
-rw-r--r--lib/Target/ARM/AsmPrinter/CMakeLists.txt2
-rw-r--r--lib/Target/ARM/CMakeLists.txt11
-rw-r--r--lib/Target/CMakeLists.txt2
-rw-r--r--lib/Target/X86/AsmParser/CMakeLists.txt7
-rw-r--r--lib/Target/X86/AsmPrinter/CMakeLists.txt2
-rw-r--r--lib/Target/X86/CMakeLists.txt14
-rw-r--r--lib/Target/X86/Disassembler/CMakeLists.txt2
-rw-r--r--lib/Transforms/IPO/CMakeLists.txt9
-rw-r--r--lib/Transforms/InstCombine/CMakeLists.txt9
-rw-r--r--lib/Transforms/Instrumentation/CMakeLists.txt6
-rw-r--r--lib/Transforms/Scalar/CMakeLists.txt8
-rw-r--r--lib/Transforms/Utils/CMakeLists.txt7
-rw-r--r--tools/CMakeLists.txt13
-rw-r--r--tools/bugpoint/CMakeLists.txt13
-rw-r--r--tools/llc/CMakeLists.txt5
-rw-r--r--tools/lli/CMakeLists.txt5
-rw-r--r--tools/llvm-ar/CMakeLists.txt3
-rw-r--r--tools/llvm-as/CMakeLists.txt3
-rw-r--r--tools/llvm-bcanalyzer/CMakeLists.txt3
-rw-r--r--tools/llvm-config/CMakeLists.txt25
-rw-r--r--tools/llvm-diff/CMakeLists.txt4
-rw-r--r--tools/llvm-dis/CMakeLists.txt3
-rw-r--r--tools/llvm-extract/CMakeLists.txt9
-rw-r--r--tools/llvm-ld/CMakeLists.txt10
-rw-r--r--tools/llvm-link/CMakeLists.txt9
-rw-r--r--tools/llvm-mc/CMakeLists.txt5
-rw-r--r--tools/llvm-nm/CMakeLists.txt4
-rw-r--r--tools/llvm-prof/CMakeLists.txt4
-rw-r--r--tools/llvm-ranlib/CMakeLists.txt3
-rw-r--r--tools/opt/CMakeLists.txt11
62 files changed, 343 insertions, 349 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a6099d17c56..8a0d9e3e2e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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
diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
index 0ecd153c6be..6291ad1d2ee 100755
--- a/cmake/modules/AddLLVM.cmake
+++ b/cmake/modules/AddLLVM.cmake
@@ -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()
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
index 416d7f47856..4e79371feec 100644
--- a/cmake/modules/CMakeLists.txt
+++ b/cmake/modules/CMakeLists.txt
@@ -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
index e5497084be8..00000000000
--- a/cmake/modules/LLVMConfig.cmake
+++ /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
index 00000000000..ea3f683724d
--- /dev/null
+++ b/cmake/modules/LLVMConfig.cmake.in
@@ -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
index e639b04e980..00000000000
--- a/cmake/modules/LLVMLibDeps.cmake
+++ /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)
diff --git a/examples/BrainF/CMakeLists.txt b/examples/BrainF/CMakeLists.txt
index 7bec105cdc8..4859634ed13 100644
--- a/examples/BrainF/CMakeLists.txt
+++ b/examples/BrainF/CMakeLists.txt
@@ -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)
diff --git a/examples/ExceptionDemo/CMakeLists.txt b/examples/ExceptionDemo/CMakeLists.txt
index d6619155684..293c66b2298 100644
--- a/examples/ExceptionDemo/CMakeLists.txt
+++ b/examples/ExceptionDemo/CMakeLists.txt
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS jit nativecodegen)
-
add_llvm_example(ExceptionDemo
ExceptionDemo.cpp
)
+
+add_llvm_link_components(ExceptionDemo jit nativecodegen)
diff --git a/examples/Fibonacci/CMakeLists.txt b/examples/Fibonacci/CMakeLists.txt
index 693761241fc..7b8c3ea9040 100644
--- a/examples/Fibonacci/CMakeLists.txt
+++ b/examples/Fibonacci/CMakeLists.txt
@@ -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)
diff --git a/examples/HowToUseJIT/CMakeLists.txt b/examples/HowToUseJIT/CMakeLists.txt
index 428b53ffb9b..672af144d69 100644
--- a/examples/HowToUseJIT/CMakeLists.txt
+++ b/examples/HowToUseJIT/CMakeLists.txt
@@ -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)
diff --git a/examples/Kaleidoscope/Chapter3/CMakeLists.txt b/examples/Kaleidoscope/Chapter3/CMakeLists.txt
index 1af8db00a17..059d7f6d5b0 100644
--- a/examples/Kaleidoscope/Chapter3/CMakeLists.txt
+++ b/examples/Kaleidoscope/Chapter3/CMakeLists.txt
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS core)
-
add_llvm_example(Kaleidoscope-Ch3
toy.cpp
)
+
+target_link_libraries(Kaleidoscope-Ch3 LLVMCore)
diff --git a/examples/Kaleidoscope/Chapter4/CMakeLists.txt b/examples/Kaleidoscope/Chapter4/CMakeLists.txt
index 0d1ac533f02..7aa18b88988 100644
--- a/examples/Kaleidoscope/Chapter4/CMakeLists.txt
+++ b/examples/Kaleidoscope/Chapter4/CMakeLists.txt
@@ -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)
diff --git a/examples/Kaleidoscope/Chapter5/CMakeLists.txt b/examples/Kaleidoscope/Chapter5/CMakeLists.txt
index 2d75ad35923..33a0651f8c0 100644
--- a/examples/Kaleidoscope/Chapter5/CMakeLists.txt
+++ b/examples/Kaleidoscope/Chapter5/CMakeLists.txt
@@ -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)
diff --git a/examples/Kaleidoscope/Chapter6/CMakeLists.txt b/examples/Kaleidoscope/Chapter6/CMakeLists.txt
index 2e15a5f7dfc..002e0d4670b 100644
--- a/examples/Kaleidoscope/Chapter6/CMakeLists.txt
+++ b/examples/Kaleidoscope/Chapter6/CMakeLists.txt
@@ -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)
diff --git a/examples/Kaleidoscope/Chapter7/CMakeLists.txt b/examples/Kaleidoscope/Chapter7/CMakeLists.txt
index 9b8227c6934..3c4ac17d93e 100644
--- a/examples/Kaleidoscope/Chapter7/CMakeLists.txt
+++ b/examples/Kaleidoscope/Chapter7/CMakeLists.txt
@@ -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)
diff --git a/examples/ModuleMaker/CMakeLists.txt b/examples/ModuleMaker/CMakeLists.txt
index 81e911560bd..735942d775d 100644
--- a/examples/ModuleMaker/CMakeLists.txt
+++ b/examples/ModuleMaker/CMakeLists.txt
@@ -1,5 +1,5 @@
-set(LLVM_LINK_COMPONENTS bitwriter)
-
add_llvm_example(ModuleMaker
ModuleMaker.cpp
)
+
+target_link_libraries(ModuleMaker LLVMBitWriter LLVMCore)
diff --git a/examples/ParallelJIT/CMakeLists.txt b/examples/ParallelJIT/CMakeLists.txt
index fbdc6e5fc10..91ac5ef4675 100644
--- a/examples/ParallelJIT/CMakeLists.txt
+++ b/examples/ParallelJIT/CMakeLists.txt
@@ -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)
diff --git a/lib/Analysis/CMakeLists.txt b/lib/Analysis/CMakeLists.txt
index 6a2ab681d1a..e221c6e25f4 100644
--- a/lib/Analysis/CMakeLists.txt
+++ b/lib/Analysis/CMakeLists.txt
@@ -50,4 +50,4 @@ add_llvm_library(LLVMAnalysis
ValueTracking.cpp
)
-target_link_libraries (LLVMAnalysis LLVMSupport)
+target_link_libraries(LLVMAnalysis LLVMCore LLVMTarget)
diff --git a/lib/Analysis/IPA/CMakeLists.txt b/lib/Analysis/IPA/CMakeLists.txt
index 007ad228ae5..b63a8499c70 100644
--- a/lib/Analysis/IPA/CMakeLists.txt
+++ b/lib/Analysis/IPA/CMakeLists.txt
@@ -4,3 +4,5 @@ add_llvm_library(LLVMipa
FindUsedTypes.cpp
GlobalsModRef.cpp
)
+
+target_link_libraries(LLVMipa LLVMAnalysis LLVMCore)
diff --git a/lib/Archive/CMakeLists.txt b/lib/Archive/CMakeLists.txt
index 7ff478a41a5..e5c5fbd4579 100644
--- a/lib/Archive/CMakeLists.txt
+++ b/lib/Archive/CMakeLists.txt
@@ -3,3 +3,5 @@ add_llvm_library(LLVMArchive
ArchiveReader.cpp
ArchiveWriter.cpp
)
+
+target_link_libraries(LLVMArchive LLVMBitReader LLVMCore)
diff --git a/lib/AsmParser/CMakeLists.txt b/lib/AsmParser/CMakeLists.txt
index 985ebe20098..02ea240dde1 100644
--- a/lib/AsmParser/CMakeLists.txt
+++ b/lib/AsmParser/CMakeLists.txt
@@ -4,3 +4,5 @@ add_llvm_library(LLVMAsmParser
LLParser.cpp
Parser.cpp
)
+
+target_link_libraries(LLVMAsmParser LLVMCore)
diff --git a/lib/Bitcode/Reader/CMakeLists.txt b/lib/Bitcode/Reader/CMakeLists.txt
index 693d4310b83..7601d83f0cc 100644
--- a/lib/Bitcode/Reader/CMakeLists.txt
+++ b/lib/Bitcode/Reader/CMakeLists.txt
@@ -2,3 +2,5 @@ add_llvm_library(LLVMBitReader
BitReader.cpp
BitcodeReader.cpp
)
+
+target_link_libraries(LLVMBitReader LLVMCore)
diff --git a/lib/CodeGen/AsmPrinter/CMakeLists.txt b/lib/CodeGen/AsmPrinter/CMakeLists.txt
index ca8b8436c11..ef6e157e86d 100644
--- a/lib/CodeGen/AsmPrinter/CMakeLists.txt
+++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt
index 2ef115dbd20..068ad2f1c6c 100644
--- a/lib/CodeGen/CMakeLists.txt
+++ b/lib/CodeGen/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/CodeGen/SelectionDAG/CMakeLists.txt b/lib/CodeGen/SelectionDAG/CMakeLists.txt
index 799988a4c86..ce3259a7f3e 100644
--- a/lib/CodeGen/SelectionDAG/CMakeLists.txt
+++ b/lib/CodeGen/SelectionDAG/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/CompilerDriver/CMakeLists.txt b/lib/CompilerDriver/CMakeLists.txt
index 153dd443cbf..afe6665ddf2 100644
--- a/lib/CompilerDriver/CMakeLists.txt
+++ b/lib/CompilerDriver/CMakeLists.txt
@@ -1,4 +1,3 @@
-set(LLVM_LINK_COMPONENTS support system)
set(LLVM_REQUIRES_EH 1)
add_llvm_tool(llvmc
diff --git a/lib/ExecutionEngine/CMakeLists.txt b/lib/ExecutionEngine/CMakeLists.txt
index 0e118ccd904..efedd65e78b 100644
--- a/lib/ExecutionEngine/CMakeLists.txt
+++ b/lib/ExecutionEngine/CMakeLists.txt
@@ -2,3 +2,5 @@ add_llvm_library(LLVMExecutionEngine
ExecutionEngine.cpp
ExecutionEngineBindings.cpp
)
+
+target_link_libraries(LLVMExecutionEngine LLVMCore LLVMTarget)
diff --git a/lib/ExecutionEngine/Interpreter/CMakeLists.txt b/lib/ExecutionEngine/Interpreter/CMakeLists.txt
index dff97fa26e8..b517d99eb82 100644
--- a/lib/ExecutionEngine/Interpreter/CMakeLists.txt
+++ b/lib/ExecutionEngine/Interpreter/CMakeLists.txt
@@ -3,3 +3,10 @@ add_llvm_library(LLVMInterpreter
ExternalFunctions.cpp
Interpreter.cpp
)
+
+target_link_libraries(LLVMInterpreter
+ LLVMCodeGen
+ LLVMCore
+ LLVMExecutionEngine
+ LLVMTarget
+ )
diff --git a/lib/ExecutionEngine/JIT/CMakeLists.txt b/lib/ExecutionEngine/JIT/CMakeLists.txt
index 42020d69af0..d81b162a4a0 100644
--- a/lib/ExecutionEngine/JIT/CMakeLists.txt
+++ b/lib/ExecutionEngine/JIT/CMakeLists.txt
@@ -11,3 +11,11 @@ add_llvm_library(LLVMJIT
OProfileJITEventListener.cpp
TargetSelect.cpp
)
+
+target_link_libraries(LLVMJIT
+ LLVMCodeGen
+ LLVMCore
+ LLVMExecutionEngine
+ LLVMMC
+ LLVMTarget
+ )
diff --git a/lib/Linker/CMakeLists.txt b/lib/Linker/CMakeLists.txt
index 0b6d2f4218e..6a8b7676bd6 100644
--- a/lib/Linker/CMakeLists.txt
+++ b/lib/Linker/CMakeLists.txt
@@ -4,3 +4,10 @@ add_llvm_library(LLVMLinker
LinkModules.cpp
Linker.cpp
)
+
+target_link_libraries(LLVMLinker
+ LLVMArchive
+ LLVMBitReader
+ LLVMCore
+ LLVMTransformUtils
+ )
diff --git a/lib/MC/MCDisassembler/CMakeLists.txt b/lib/MC/MCDisassembler/CMakeLists.txt
index 5fa7b70194b..a01b78e5ac3 100644
--- a/lib/MC/MCDisassembler/CMakeLists.txt
+++ b/lib/MC/MCDisassembler/CMakeLists.txt
@@ -1,7 +1,8 @@
-
add_llvm_library(LLVMMCDisassembler
EDDisassembler.cpp
EDOperand.cpp
EDInst.cpp
EDToken.cpp
)
+
+add_llvm_link_components(LLVMMCDisassembler all)
diff --git a/lib/Target/ARM/AsmParser/CMakeLists.txt b/lib/Target/ARM/AsmParser/CMakeLists.txt
index 9ba7c0125d7..1fa6022a464 100644
--- a/lib/Target/ARM/AsmParser/CMakeLists.txt
+++ b/lib/Target/ARM/AsmParser/CMakeLists.txt
@@ -5,3 +5,9 @@ add_llvm_library(LLVMARMAsmParser
ARMAsmParser.cpp
)
+target_link_libraries(LLVMARMAsmParser
+ LLVMARMInfo
+ LLVMMC
+ LLVMMCParser
+ LLVMTarget
+ )
diff --git a/lib/Target/ARM/AsmPrinter/CMakeLists.txt b/lib/Target/ARM/AsmPrinter/CMakeLists.txt
index 18645c0864a..da4dd8e6067 100644
--- a/lib/Target/ARM/AsmPrinter/CMakeLists.txt
+++ b/lib/Target/ARM/AsmPrinter/CMakeLists.txt
@@ -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)
diff --git a/lib/Target/ARM/CMakeLists.txt b/lib/Target/ARM/CMakeLists.txt
index 6b4dee5965d..b38e9536dc9 100644
--- a/lib/Target/ARM/CMakeLists.txt
+++ b/lib/Target/ARM/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/Target/CMakeLists.txt b/lib/Target/CMakeLists.txt
index 43ebdac528c..242b52f6399 100644
--- a/lib/Target/CMakeLists.txt
+++ b/lib/Target/CMakeLists.txt
@@ -13,3 +13,5 @@ add_llvm_library(LLVMTarget
TargetRegisterInfo.cpp
TargetSubtarget.cpp
)
+
+target_link_libraries(LLVMTarget LLVMCore LLVMMC)
diff --git a/lib/Target/X86/AsmParser/CMakeLists.txt b/lib/Target/X86/AsmParser/CMakeLists.txt
index 40dbdd72faa..897db3a957b 100644
--- a/lib/Target/X86/AsmParser/CMakeLists.txt
+++ b/lib/Target/X86/AsmParser/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/Target/X86/AsmPrinter/CMakeLists.txt b/lib/Target/X86/AsmPrinter/CMakeLists.txt
index 033973eeeff..71ee884cc36 100644
--- a/lib/Target/X86/AsmPrinter/CMakeLists.txt
+++ b/lib/Target/X86/AsmPrinter/CMakeLists.txt
@@ -5,4 +5,6 @@ add_llvm_library(LLVMX86AsmPrinter
X86IntelInstPrinter.cpp
X86InstComments.cpp
)
+
add_dependencies(LLVMX86AsmPrinter X86CodeGenTable_gen)
+target_link_libraries(LLVMX86AsmPrinter LLVMMC)
diff --git a/lib/Target/X86/CMakeLists.txt b/lib/Target/X86/CMakeLists.txt
index e9399f5c832..f4e03316446 100644
--- a/lib/Target/X86/CMakeLists.txt
+++ b/lib/Target/X86/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/Target/X86/Disassembler/CMakeLists.txt b/lib/Target/X86/Disassembler/CMakeLists.txt
index 97589c00515..91411f3e9fb 100644
--- a/lib/Target/X86/Disassembler/CMakeLists.txt
+++ b/lib/Target/X86/Disassembler/CMakeLists.txt
@@ -11,4 +11,6 @@ set_property(
PROPERTY COMPILE_FLAGS "/Od"
)
endif()
+
add_dependencies(LLVMX86Disassembler X86CodeGenTable_gen)
+target_link_libraries(LLVMX86Disassembler LLVMMC LLVMX86Info)
diff --git a/lib/Transforms/IPO/CMakeLists.txt b/lib/Transforms/IPO/CMakeLists.txt
index 65483e8fed6..b07d0947eda 100644
--- a/lib/Transforms/IPO/CMakeLists.txt
+++ b/lib/Transforms/IPO/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/Transforms/InstCombine/CMakeLists.txt b/lib/Transforms/InstCombine/CMakeLists.txt
index 5b1ff3e23bb..4330377850a 100644
--- a/lib/Transforms/InstCombine/CMakeLists.txt
+++ b/lib/Transforms/InstCombine/CMakeLists.txt
@@ -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
+ )
diff --git a/lib/Transforms/Instrumentation/CMakeLists.txt b/lib/Transforms/Instrumentation/CMakeLists.txt
index 128bf489787..f5ad9c69611 100644
--- a/lib/Transforms/Instrumentation/CMakeLists.txt
+++ b/lib/Transforms/Instrumentation/CMakeLists.txt
@@ -3,3 +3,9 @@ add_llvm_library(LLVMInstrumentation
OptimalEdgeProfiling.cpp
ProfilingUtils.cpp
)
+
+target_link_libraries(LLVMInstrumentation
+ LLVMAnalysis
+ LLVMCore
+ LLVMTransformUtils
+ )
diff --git a/lib/Transforms/Scalar/CMakeLists.txt b/lib/Transforms/Scalar/CMakeLists.txt
index b7598eace53..05825e79939 100644
--- a/lib/Transforms/Scalar/CMakeLists.txt
+++ b/lib/Transforms/Scalar/CMakeLists.txt
@@ -32,4 +32,10 @@ add_llvm_library(LLVMScalarOpts
TailRecursionElimination.cpp
)
-target_link_libraries (LLVMScalarOpts LLVMTransformUtils)
+target_link_libraries (LLVMScalarOpts
+ LLVMAnalysis
+ LLVMCore
+ LLVMInstCombine
+ LLVMTarget
+ LLVMTransformUtils
+ )
diff --git a/lib/Transforms/Utils/CMakeLists.txt b/lib/Transforms/Utils/CMakeLists.txt
index 61cbeb2bd35..f10a72710e1 100644
--- a/lib/Transforms/Utils/CMakeLists.txt
+++ b/lib/Transforms/Utils/CMakeLists.txt
@@ -25,4 +25,9 @@ add_llvm_library(LLVMTransformUtils
ValueMapper.cpp
)
-target_link_libraries (LLVMTransformUtils LLVMSupport)
+target_link_libraries(LLVMTransformUtils
+ LLVMAnalysis
+ LLVMCore
+ LLVMTarget
+ LLVMipa
+ )
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 7ed10e9729d..c4274ddf9f8 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -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()
diff --git a/tools/bugpoint/CMakeLists.txt b/tools/bugpoint/CMakeLists.txt
index e06feb10031..731c7bf6f98 100644
--- a/tools/bugpoint/CMakeLists.txt
+++ b/tools/bugpoint/CMakeLists.txt
@@ -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
+ )
diff --git a/tools/llc/CMakeLists.txt b/tools/llc/CMakeLists.txt
index 683f29862d5..798578e7bb7 100644
--- a/tools/llc/CMakeLists.txt
+++ b/tools/llc/CMakeLists.txt
@@ -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)
diff --git a/tools/lli/CMakeLists.txt b/tools/lli/CMakeLists.txt
index ce70d46e4a5..8fd34aca3fd 100644
--- a/tools/lli/CMakeLists.txt
+++ b/tools/lli/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-ar/CMakeLists.txt b/tools/llvm-ar/CMakeLists.txt
index c8b0b725d83..65ad36a470b 100644
--- a/tools/llvm-ar/CMakeLists.txt
+++ b/tools/llvm-ar/CMakeLists.txt
@@ -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.
diff --git a/tools/llvm-as/CMakeLists.txt b/tools/llvm-as/CMakeLists.txt
index eef4a13e29d..05f5fd71182 100644
--- a/tools/llvm-as/CMakeLists.txt
+++ b/tools/llvm-as/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-bcanalyzer/CMakeLists.txt b/tools/llvm-bcanalyzer/CMakeLists.txt
index 732bc3296f2..2be4243147b 100644
--- a/tools/llvm-bcanalyzer/CMakeLists.txt
+++ b/tools/llvm-bcanalyzer/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
index 663cae5ed2d..8887a64a63d 100644
--- a/tools/llvm-config/CMakeLists.txt
+++ b/tools/llvm-config/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-diff/CMakeLists.txt b/tools/llvm-diff/CMakeLists.txt
index f6d65c947a5..42e2ba82b32 100644
--- a/tools/llvm-diff/CMakeLists.txt
+++ b/tools/llvm-diff/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-dis/CMakeLists.txt b/tools/llvm-dis/CMakeLists.txt
index d62a6b5ec89..fb767726a7e 100644
--- a/tools/llvm-dis/CMakeLists.txt
+++ b/tools/llvm-dis/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-extract/CMakeLists.txt b/tools/llvm-extract/CMakeLists.txt
index a4e3266e353..e3b728c69d6 100644
--- a/tools/llvm-extract/CMakeLists.txt
+++ b/tools/llvm-extract/CMakeLists.txt
@@ -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
+ )
diff --git a/tools/llvm-ld/CMakeLists.txt b/tools/llvm-ld/CMakeLists.txt
index 2ae4a1dba38..8fba66b9755 100644
--- a/tools/llvm-ld/CMakeLists.txt
+++ b/tools/llvm-ld/CMakeLists.txt
@@ -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
+ )
diff --git a/tools/llvm-link/CMakeLists.txt b/tools/llvm-link/CMakeLists.txt
index 11933f7f959..e837a48b05b 100644
--- a/tools/llvm-link/CMakeLists.txt
+++ b/tools/llvm-link/CMakeLists.txt
@@ -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
+ )
diff --git a/tools/llvm-mc/CMakeLists.txt b/tools/llvm-mc/CMakeLists.txt
index 805caf403a1..ea987dbc167 100644
--- a/tools/llvm-mc/CMakeLists.txt
+++ b/tools/llvm-mc/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-nm/CMakeLists.txt b/tools/llvm-nm/CMakeLists.txt
index 45cf1b67f94..c7711557029 100644
--- a/tools/llvm-nm/CMakeLists.txt
+++ b/tools/llvm-nm/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-prof/CMakeLists.txt b/tools/llvm-prof/CMakeLists.txt
index 442112bc88e..e1d95ddeef4 100644
--- a/tools/llvm-prof/CMakeLists.txt
+++ b/tools/llvm-prof/CMakeLists.txt
@@ -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)
diff --git a/tools/llvm-ranlib/CMakeLists.txt b/tools/llvm-ranlib/CMakeLists.txt
index 3116d2e4ff7..ab3fa37c46f 100644
--- a/tools/llvm-ranlib/CMakeLists.txt
+++ b/tools/llvm-ranlib/CMakeLists.txt
@@ -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)
diff --git a/tools/opt/CMakeLists.txt b/tools/opt/CMakeLists.txt
index 0570d0e04af..5eff9d80f9a 100644
--- a/tools/opt/CMakeLists.txt
+++ b/tools/opt/CMakeLists.txt
@@ -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
+ )