From 3a210e2d302758101ac06946e86027b327c7d0f3 Mon Sep 17 00:00:00 2001 From: "Michael J. Spencer" Date: Mon, 13 Sep 2010 23:59:48 +0000 Subject: Revert "CMake: Get rid of LLVMLibDeps.cmake and export the libraries normally." 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 --- CMakeLists.txt | 6 - cmake/modules/AddLLVM.cmake | 87 +------------ cmake/modules/CMakeLists.txt | 22 ++-- cmake/modules/LLVMConfig.cmake | 165 +++++++++++++++++++++++++ cmake/modules/LLVMConfig.cmake.in | 11 -- cmake/modules/LLVMLibDeps.cmake | 71 +++++++++++ examples/BrainF/CMakeLists.txt | 5 +- examples/ExceptionDemo/CMakeLists.txt | 4 +- examples/Fibonacci/CMakeLists.txt | 4 +- examples/HowToUseJIT/CMakeLists.txt | 4 +- examples/Kaleidoscope/Chapter3/CMakeLists.txt | 4 +- examples/Kaleidoscope/Chapter4/CMakeLists.txt | 5 +- examples/Kaleidoscope/Chapter5/CMakeLists.txt | 5 +- examples/Kaleidoscope/Chapter6/CMakeLists.txt | 5 +- examples/Kaleidoscope/Chapter7/CMakeLists.txt | 5 +- examples/ModuleMaker/CMakeLists.txt | 4 +- examples/ParallelJIT/CMakeLists.txt | 4 +- lib/Analysis/CMakeLists.txt | 2 +- lib/Analysis/IPA/CMakeLists.txt | 2 - lib/Archive/CMakeLists.txt | 2 - lib/AsmParser/CMakeLists.txt | 2 - lib/Bitcode/Reader/CMakeLists.txt | 2 - lib/CodeGen/AsmPrinter/CMakeLists.txt | 9 +- lib/CodeGen/CMakeLists.txt | 9 +- lib/CodeGen/SelectionDAG/CMakeLists.txt | 8 +- lib/CompilerDriver/CMakeLists.txt | 1 + lib/ExecutionEngine/CMakeLists.txt | 2 - lib/ExecutionEngine/Interpreter/CMakeLists.txt | 7 -- lib/ExecutionEngine/JIT/CMakeLists.txt | 8 -- lib/Linker/CMakeLists.txt | 7 -- lib/MC/MCDisassembler/CMakeLists.txt | 3 +- lib/Target/ARM/AsmParser/CMakeLists.txt | 6 - lib/Target/ARM/AsmPrinter/CMakeLists.txt | 2 - lib/Target/ARM/CMakeLists.txt | 11 +- lib/Target/CMakeLists.txt | 2 - lib/Target/X86/AsmParser/CMakeLists.txt | 7 -- lib/Target/X86/AsmPrinter/CMakeLists.txt | 2 - lib/Target/X86/CMakeLists.txt | 14 +-- lib/Target/X86/Disassembler/CMakeLists.txt | 2 - lib/Transforms/IPO/CMakeLists.txt | 9 +- lib/Transforms/InstCombine/CMakeLists.txt | 9 +- lib/Transforms/Instrumentation/CMakeLists.txt | 6 - lib/Transforms/Scalar/CMakeLists.txt | 8 +- lib/Transforms/Utils/CMakeLists.txt | 7 +- tools/CMakeLists.txt | 13 +- tools/bugpoint/CMakeLists.txt | 13 +- tools/llc/CMakeLists.txt | 5 +- tools/lli/CMakeLists.txt | 5 +- tools/llvm-ar/CMakeLists.txt | 3 +- tools/llvm-as/CMakeLists.txt | 3 +- tools/llvm-bcanalyzer/CMakeLists.txt | 3 +- tools/llvm-config/CMakeLists.txt | 25 ++++ tools/llvm-diff/CMakeLists.txt | 4 +- tools/llvm-dis/CMakeLists.txt | 3 +- tools/llvm-extract/CMakeLists.txt | 9 +- tools/llvm-ld/CMakeLists.txt | 10 +- tools/llvm-link/CMakeLists.txt | 9 +- tools/llvm-mc/CMakeLists.txt | 5 +- tools/llvm-nm/CMakeLists.txt | 4 +- tools/llvm-prof/CMakeLists.txt | 4 +- tools/llvm-ranlib/CMakeLists.txt | 3 +- tools/opt/CMakeLists.txt | 11 +- 62 files changed, 349 insertions(+), 343 deletions(-) create mode 100755 cmake/modules/LLVMConfig.cmake delete mode 100644 cmake/modules/LLVMConfig.cmake.in create mode 100644 cmake/modules/LLVMLibDeps.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 6fbaa5d454..fe4dd833ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -272,7 +272,6 @@ 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.") @@ -373,11 +372,6 @@ 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 52864d2e95..22a456e460 100755 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -1,21 +1,5 @@ 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} ) @@ -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_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 @@ -58,7 +38,6 @@ ${name} ignored.") endif() install(TARGETS ${name} - EXPORT LLVM 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 ) + 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_LIBS) - target_link_libraries(${name} ${LLVM_COMMON_LIBS}) - endif() 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) - -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 4e79371fee..416d7f4785 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -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( - LLVMConfig.cmake.in - ${LLVM_BINARY_DIR}/cmake/modules/LLVMConfig.cmake - @ONLY - ) + LLVM.cmake + ${llvm_cmake_builddir}/LLVM.cmake + @ONLY) 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 index 0000000000..e5497084be --- /dev/null +++ b/cmake/modules/LLVMConfig.cmake @@ -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 index ea3f683724..0000000000 --- a/cmake/modules/LLVMConfig.cmake.in +++ /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 index 0000000000..2f093689b1 --- /dev/null +++ b/cmake/modules/LLVMLibDeps.cmake @@ -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) diff --git a/examples/BrainF/CMakeLists.txt b/examples/BrainF/CMakeLists.txt index 4859634ed1..7bec105cdc 100644 --- a/examples/BrainF/CMakeLists.txt +++ b/examples/BrainF/CMakeLists.txt @@ -1,7 +1,6 @@ +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 293c66b229..d661915568 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 7b8c3ea904..693761241f 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 672af144d6..428b53ffb9 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 059d7f6d5b..1af8db00a1 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 7aa18b8898..0d1ac533f0 100644 --- a/examples/Kaleidoscope/Chapter4/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter4/CMakeLists.txt @@ -1,6 +1,5 @@ +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 33a0651f8c..2d75ad3592 100644 --- a/examples/Kaleidoscope/Chapter5/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter5/CMakeLists.txt @@ -1,6 +1,5 @@ +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 002e0d4670..2e15a5f7df 100644 --- a/examples/Kaleidoscope/Chapter6/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter6/CMakeLists.txt @@ -1,6 +1,5 @@ +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 3c4ac17d93..9b8227c693 100644 --- a/examples/Kaleidoscope/Chapter7/CMakeLists.txt +++ b/examples/Kaleidoscope/Chapter7/CMakeLists.txt @@ -1,6 +1,5 @@ +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 735942d775..81e911560b 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 91ac5ef467..fbdc6e5fc1 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 e221c6e25f..6a2ab681d1 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 LLVMCore LLVMTarget) +target_link_libraries (LLVMAnalysis LLVMSupport) diff --git a/lib/Analysis/IPA/CMakeLists.txt b/lib/Analysis/IPA/CMakeLists.txt index b63a8499c7..007ad228ae 100644 --- a/lib/Analysis/IPA/CMakeLists.txt +++ b/lib/Analysis/IPA/CMakeLists.txt @@ -4,5 +4,3 @@ 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 e5c5fbd457..7ff478a41a 100644 --- a/lib/Archive/CMakeLists.txt +++ b/lib/Archive/CMakeLists.txt @@ -3,5 +3,3 @@ 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 02ea240dde..985ebe2009 100644 --- a/lib/AsmParser/CMakeLists.txt +++ b/lib/AsmParser/CMakeLists.txt @@ -4,5 +4,3 @@ 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 7601d83f0c..693d4310b8 100644 --- a/lib/Bitcode/Reader/CMakeLists.txt +++ b/lib/Bitcode/Reader/CMakeLists.txt @@ -2,5 +2,3 @@ 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 ef6e157e86..ca8b8436c1 100644 --- a/lib/CodeGen/AsmPrinter/CMakeLists.txt +++ b/lib/CodeGen/AsmPrinter/CMakeLists.txt @@ -8,11 +8,4 @@ add_llvm_library(LLVMAsmPrinter OcamlGCPrinter.cpp ) -target_link_libraries (LLVMAsmPrinter - LLVMAnalysis - LLVMCodeGen - LLVMCore - LLVMMC - LLVMMCParser - LLVMTarget - ) +target_link_libraries (LLVMAsmPrinter LLVMMCParser) diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt index 068ad2f1c6..2ef115dbd2 100644 --- a/lib/CodeGen/CMakeLists.txt +++ b/lib/CodeGen/CMakeLists.txt @@ -83,11 +83,4 @@ add_llvm_library(LLVMCodeGen VirtRegRewriter.cpp ) -target_link_libraries (LLVMCodeGen - LLVMAnalysis - LLVMCore - LLVMMC - LLVMScalarOpts - LLVMTarget - LLVMTransformUtils - ) +target_link_libraries (LLVMCodeGen LLVMCore LLVMScalarOpts) diff --git a/lib/CodeGen/SelectionDAG/CMakeLists.txt b/lib/CodeGen/SelectionDAG/CMakeLists.txt index ce3259a7f3..799988a4c8 100644 --- a/lib/CodeGen/SelectionDAG/CMakeLists.txt +++ b/lib/CodeGen/SelectionDAG/CMakeLists.txt @@ -22,10 +22,4 @@ add_llvm_library(LLVMSelectionDAG TargetSelectionDAGInfo.cpp ) -target_link_libraries(LLVMSelectionDAG - LLVMAnalysis - LLVMCodeGen - LLVMCore - LLVMMC - LLVMTarget - ) +target_link_libraries (LLVMSelectionDAG LLVMAnalysis LLVMAsmPrinter LLVMCodeGen) diff --git a/lib/CompilerDriver/CMakeLists.txt b/lib/CompilerDriver/CMakeLists.txt index afe6665ddf..153dd443cb 100644 --- a/lib/CompilerDriver/CMakeLists.txt +++ b/lib/CompilerDriver/CMakeLists.txt @@ -1,3 +1,4 @@ +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 efedd65e78..0e118ccd90 100644 --- a/lib/ExecutionEngine/CMakeLists.txt +++ b/lib/ExecutionEngine/CMakeLists.txt @@ -2,5 +2,3 @@ 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 b517d99eb8..dff97fa26e 100644 --- a/lib/ExecutionEngine/Interpreter/CMakeLists.txt +++ b/lib/ExecutionEngine/Interpreter/CMakeLists.txt @@ -3,10 +3,3 @@ 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 d81b162a4a..42020d69af 100644 --- a/lib/ExecutionEngine/JIT/CMakeLists.txt +++ b/lib/ExecutionEngine/JIT/CMakeLists.txt @@ -11,11 +11,3 @@ 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 6a8b7676bd..0b6d2f4218 100644 --- a/lib/Linker/CMakeLists.txt +++ b/lib/Linker/CMakeLists.txt @@ -4,10 +4,3 @@ 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 a01b78e5ac..5fa7b70194 100644 --- a/lib/MC/MCDisassembler/CMakeLists.txt +++ b/lib/MC/MCDisassembler/CMakeLists.txt @@ -1,8 +1,7 @@ + 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 1fa6022a46..9ba7c0125d 100644 --- a/lib/Target/ARM/AsmParser/CMakeLists.txt +++ b/lib/Target/ARM/AsmParser/CMakeLists.txt @@ -5,9 +5,3 @@ 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 da4dd8e606..18645c0864 100644 --- a/lib/Target/ARM/AsmPrinter/CMakeLists.txt +++ b/lib/Target/ARM/AsmPrinter/CMakeLists.txt @@ -3,6 +3,4 @@ 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 7b0ee2b7e2..c381067b86 100644 --- a/lib/Target/ARM/CMakeLists.txt +++ b/lib/Target/ARM/CMakeLists.txt @@ -46,13 +46,4 @@ add_llvm_target(ARMCodeGen Thumb2SizeReduction.cpp ) -target_link_libraries (LLVMARMCodeGen - LLVMARMInfo - LLVMAnalysis - LLVMAsmPrinter - LLVMCodeGen - LLVMCore - LLVMMC - LLVMSelectionDAG - LLVMTarget - ) +target_link_libraries (LLVMARMCodeGen LLVMARMAsmPrinter LLVMSelectionDAG) diff --git a/lib/Target/CMakeLists.txt b/lib/Target/CMakeLists.txt index 242b52f639..43ebdac528 100644 --- a/lib/Target/CMakeLists.txt +++ b/lib/Target/CMakeLists.txt @@ -13,5 +13,3 @@ 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 897db3a957..40dbdd72fa 100644 --- a/lib/Target/X86/AsmParser/CMakeLists.txt +++ b/lib/Target/X86/AsmParser/CMakeLists.txt @@ -4,11 +4,4 @@ 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 71ee884cc3..033973eeef 100644 --- a/lib/Target/X86/AsmPrinter/CMakeLists.txt +++ b/lib/Target/X86/AsmPrinter/CMakeLists.txt @@ -5,6 +5,4 @@ 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 f4e0331644..e9399f5c83 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,14 +49,4 @@ 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 91411f3e9f..97589c0051 100644 --- a/lib/Target/X86/Disassembler/CMakeLists.txt +++ b/lib/Target/X86/Disassembler/CMakeLists.txt @@ -11,6 +11,4 @@ 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 b07d0947ed..65483e8fed 100644 --- a/lib/Transforms/IPO/CMakeLists.txt +++ b/lib/Transforms/IPO/CMakeLists.txt @@ -24,11 +24,4 @@ add_llvm_library(LLVMipo StructRetPromotion.cpp ) -target_link_libraries(LLVMipo - LLVMAnalysis - LLVMCore - LLVMScalarOpts - LLVMTarget - LLVMTransformUtils - LLVMipa - ) +target_link_libraries (LLVMipo LLVMScalarOpts LLVMInstCombine) diff --git a/lib/Transforms/InstCombine/CMakeLists.txt b/lib/Transforms/InstCombine/CMakeLists.txt index 4330377850..5b1ff3e23b 100644 --- a/lib/Transforms/InstCombine/CMakeLists.txt +++ b/lib/Transforms/InstCombine/CMakeLists.txt @@ -9,14 +9,9 @@ add_llvm_library(LLVMInstCombine InstCombineMulDivRem.cpp InstCombinePHI.cpp InstCombineSelect.cpp - InstCombineShifts.cpp + InstCombineShifts.cpp InstCombineSimplifyDemanded.cpp InstCombineVectorOps.cpp ) -target_link_libraries(LLVMInstCombine - LLVMAnalysis - LLVMCore - LLVMTarget - LLVMTransformUtils - ) +target_link_libraries (LLVMInstCombine LLVMTransformUtils) diff --git a/lib/Transforms/Instrumentation/CMakeLists.txt b/lib/Transforms/Instrumentation/CMakeLists.txt index f5ad9c6961..128bf48978 100644 --- a/lib/Transforms/Instrumentation/CMakeLists.txt +++ b/lib/Transforms/Instrumentation/CMakeLists.txt @@ -3,9 +3,3 @@ 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 05825e7993..b7598eace5 100644 --- a/lib/Transforms/Scalar/CMakeLists.txt +++ b/lib/Transforms/Scalar/CMakeLists.txt @@ -32,10 +32,4 @@ add_llvm_library(LLVMScalarOpts TailRecursionElimination.cpp ) -target_link_libraries (LLVMScalarOpts - LLVMAnalysis - LLVMCore - LLVMInstCombine - LLVMTarget - LLVMTransformUtils - ) +target_link_libraries (LLVMScalarOpts LLVMTransformUtils) diff --git a/lib/Transforms/Utils/CMakeLists.txt b/lib/Transforms/Utils/CMakeLists.txt index f10a72710e..61cbeb2bd3 100644 --- a/lib/Transforms/Utils/CMakeLists.txt +++ b/lib/Transforms/Utils/CMakeLists.txt @@ -25,9 +25,4 @@ add_llvm_library(LLVMTransformUtils ValueMapper.cpp ) -target_link_libraries(LLVMTransformUtils - LLVMAnalysis - LLVMCore - LLVMTarget - LLVMipa - ) +target_link_libraries (LLVMTransformUtils LLVMSupport) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index c4274ddf9f..7ed10e9729 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -2,6 +2,15 @@ # 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) @@ -29,4 +38,6 @@ add_subdirectory(llvmc) 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) diff --git a/tools/bugpoint/CMakeLists.txt b/tools/bugpoint/CMakeLists.txt index 731c7bf6f9..e06feb1003 100644 --- a/tools/bugpoint/CMakeLists.txt +++ b/tools/bugpoint/CMakeLists.txt @@ -1,3 +1,6 @@ +set(LLVM_LINK_COMPONENTS asmparser instrumentation scalaropts ipo + linker bitreader bitwriter) + add_llvm_tool(bugpoint BugDriver.cpp CrashDebugger.cpp @@ -9,13 +12,3 @@ 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 798578e7bb..683f29862d 100644 --- a/tools/llc/CMakeLists.txt +++ b/tools/llc/CMakeLists.txt @@ -1,6 +1,5 @@ +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 8fd34aca3f..ce70d46e4a 100644 --- a/tools/lli/CMakeLists.txt +++ b/tools/lli/CMakeLists.txt @@ -1,6 +1,5 @@ +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 65ad36a470..c8b0b725d8 100644 --- a/tools/llvm-ar/CMakeLists.txt +++ b/tools/llvm-ar/CMakeLists.txt @@ -1,9 +1,8 @@ +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 05f5fd7118..eef4a13e29 100644 --- a/tools/llvm-as/CMakeLists.txt +++ b/tools/llvm-as/CMakeLists.txt @@ -1,7 +1,6 @@ +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 2be4243147..732bc3296f 100644 --- a/tools/llvm-bcanalyzer/CMakeLists.txt +++ b/tools/llvm-bcanalyzer/CMakeLists.txt @@ -1,7 +1,6 @@ +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 8887a64a63..663cae5ed2 100644 --- a/tools/llvm-config/CMakeLists.txt +++ b/tools/llvm-config/CMakeLists.txt @@ -110,6 +110,10 @@ 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} @@ -118,4 +122,25 @@ 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 42e2ba82b3..f6d65c947a 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 fb767726a7..d62a6b5ec8 100644 --- a/tools/llvm-dis/CMakeLists.txt +++ b/tools/llvm-dis/CMakeLists.txt @@ -1,7 +1,6 @@ +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 e3b728c69d..a4e3266e35 100644 --- a/tools/llvm-extract/CMakeLists.txt +++ b/tools/llvm-extract/CMakeLists.txt @@ -1,10 +1,5 @@ +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 8fba66b975..2ae4a1dba3 100644 --- a/tools/llvm-ld/CMakeLists.txt +++ b/tools/llvm-ld/CMakeLists.txt @@ -1,12 +1,6 @@ +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 e837a48b05..11933f7f95 100644 --- a/tools/llvm-link/CMakeLists.txt +++ b/tools/llvm-link/CMakeLists.txt @@ -1,10 +1,5 @@ +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 ea987dbc16..805caf403a 100644 --- a/tools/llvm-mc/CMakeLists.txt +++ b/tools/llvm-mc/CMakeLists.txt @@ -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_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 c771155702..45cf1b67f9 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 e1d95ddeef..442112bc88 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 ab3fa37c46..3116d2e4ff 100644 --- a/tools/llvm-ranlib/CMakeLists.txt +++ b/tools/llvm-ranlib/CMakeLists.txt @@ -1,7 +1,6 @@ +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 5eff9d80f9..0570d0e04a 100644 --- a/tools/opt/CMakeLists.txt +++ b/tools/opt/CMakeLists.txt @@ -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 ) - -target_link_libraries(opt - LLVMBitReader - LLVMAsmParser - LLVMBitWriter - LLVMInstrumentation - LLVMScalarOpts - LLVMipo - ) -- cgit v1.2.3-18-g5258