From 6d857ca4d71548f5cdb57b106cc1a12fc2c93e9d Mon Sep 17 00:00:00 2001 From: Oscar Fuentes Date: Fri, 18 Feb 2011 22:06:14 +0000 Subject: [PATCH] Move library stuff out of the toplevel CMakeLists.txt file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125968 91177308-0d34-0410-b5e6-96231b3b80d8 --- CMakeLists.txt | 82 +----------------------------- cmake/modules/AddLLVM.cmake | 4 +- cmake/modules/CMakeLists.txt | 3 ++ cmake/modules/LLVMConfig.cmake | 1 + lib/Analysis/CMakeLists.txt | 2 + lib/Bitcode/CMakeLists.txt | 2 + lib/CMakeLists.txt | 14 +++++ lib/CodeGen/CMakeLists.txt | 3 ++ lib/ExecutionEngine/CMakeLists.txt | 4 ++ lib/MC/CMakeLists.txt | 3 ++ lib/Target/CMakeLists.txt | 50 ++++++++++++++++++ lib/Transforms/CMakeLists.txt | 6 +++ tools/llvm-config/CMakeLists.txt | 3 ++ 13 files changed, 95 insertions(+), 82 deletions(-) create mode 100644 lib/Bitcode/CMakeLists.txt create mode 100644 lib/CMakeLists.txt create mode 100644 lib/Transforms/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 32c958658e9..0a5d5f39d85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -195,11 +195,9 @@ if( MINGW ) llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2") endif() +# Put this before tblgen. Else we have a circular dependence. add_subdirectory(lib/Support) -# Everything else depends on Support: -set(LLVM_COMMON_DEPENDS ${LLVM_COMMON_DEPENDS} ${LLVM_LIBS} ) - set(LLVM_TABLEGEN "tblgen" CACHE STRING "Native TableGen executable. Saves building one when cross-compiling.") # Effective tblgen executable to be used: @@ -214,25 +212,7 @@ endif( CMAKE_CROSSCOMPILING ) add_subdirectory(include/llvm) -add_subdirectory(lib/VMCore) -add_subdirectory(lib/CodeGen) -add_subdirectory(lib/CodeGen/SelectionDAG) -add_subdirectory(lib/CodeGen/AsmPrinter) -add_subdirectory(lib/Bitcode/Reader) -add_subdirectory(lib/Bitcode/Writer) -add_subdirectory(lib/Transforms/Utils) -add_subdirectory(lib/Transforms/Instrumentation) -add_subdirectory(lib/Transforms/InstCombine) -add_subdirectory(lib/Transforms/Scalar) -add_subdirectory(lib/Transforms/IPO) -add_subdirectory(lib/Transforms/Hello) -add_subdirectory(lib/Linker) -add_subdirectory(lib/Analysis) -add_subdirectory(lib/Analysis/IPA) -add_subdirectory(lib/MC) -add_subdirectory(lib/MC/MCParser) -add_subdirectory(lib/MC/MCDisassembler) -add_subdirectory(lib/Object) +add_subdirectory(lib) add_subdirectory(utils/FileCheck) add_subdirectory(utils/FileUpdate) @@ -240,64 +220,6 @@ add_subdirectory(utils/count) add_subdirectory(utils/not) add_subdirectory(utils/llvm-lit) -set(LLVM_ENUM_ASM_PRINTERS "") -set(LLVM_ENUM_ASM_PARSERS "") -set(LLVM_ENUM_DISASSEMBLERS "") -foreach(t ${LLVM_TARGETS_TO_BUILD}) - message(STATUS "Targeting ${t}") - add_subdirectory(lib/Target/${t}) - add_subdirectory(lib/Target/${t}/TargetInfo) - set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} ) - file(GLOB asmp_file "${td}/*AsmPrinter.cpp") - if( asmp_file ) - set(LLVM_ENUM_ASM_PRINTERS - "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n") - endif() - if( EXISTS ${td}/InstPrinter/CMakeLists.txt ) - add_subdirectory(lib/Target/${t}/InstPrinter) - endif() - if( EXISTS ${td}/AsmParser/CMakeLists.txt ) - add_subdirectory(lib/Target/${t}/AsmParser) - set(LLVM_ENUM_ASM_PARSERS - "${LLVM_ENUM_ASM_PARSERS}LLVM_ASM_PARSER(${t})\n") - endif() - if( EXISTS ${td}/Disassembler/CMakeLists.txt ) - add_subdirectory(lib/Target/${t}/Disassembler) - set(LLVM_ENUM_DISASSEMBLERS - "${LLVM_ENUM_DISASSEMBLERS}LLVM_DISASSEMBLER(${t})\n") - endif() - if( EXISTS ${td}/Utils/CMakeLists.txt ) - add_subdirectory(${td}/Utils) - endif() - set(CURRENT_LLVM_TARGET) -endforeach(t) - -# Produce llvm/Config/AsmPrinters.def -configure_file( - ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmPrinters.def.in - ${LLVM_BINARY_DIR}/include/llvm/Config/AsmPrinters.def - ) - -# Produce llvm/Config/AsmParsers.def -configure_file( - ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmParsers.def.in - ${LLVM_BINARY_DIR}/include/llvm/Config/AsmParsers.def - ) - -# Produce llvm/Config/Disassemblers.def -configure_file( - ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Disassemblers.def.in - ${LLVM_BINARY_DIR}/include/llvm/Config/Disassemblers.def - ) - -add_subdirectory(lib/ExecutionEngine) -add_subdirectory(lib/ExecutionEngine/Interpreter) -add_subdirectory(lib/ExecutionEngine/JIT) -add_subdirectory(lib/ExecutionEngine/MCJIT) -add_subdirectory(lib/Target) -add_subdirectory(lib/AsmParser) -add_subdirectory(lib/Archive) - add_subdirectory(projects) option(LLVM_BUILD_TOOLS diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index fdf1df0c67d..9d275a00a24 100755 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -4,8 +4,8 @@ include(LLVMConfig) macro(add_llvm_library name) llvm_process_sources( ALL_FILES ${ARGN} ) add_library( ${name} ${ALL_FILES} ) - set( llvm_libs ${llvm_libs} ${name} PARENT_SCOPE) - set( llvm_lib_targets ${llvm_lib_targets} ${name} PARENT_SCOPE ) + set_property( GLOBAL APPEND PROPERTY LLVM_LIBS ${name} ) + set_property( GLOBAL APPEND PROPERTY LLVM_LIB_TARGETS ${name} ) if( LLVM_COMMON_DEPENDS ) add_dependencies( ${name} ${LLVM_COMMON_DEPENDS} ) endif( LLVM_COMMON_DEPENDS ) diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index 9365743b79f..9a5566effb0 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -1,5 +1,8 @@ set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/share/llvm/cmake") +get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) +get_property(llvm_lib_targets GLOBAL PROPERTY LLVM_LIB_TARGETS) + configure_file( LLVM.cmake ${llvm_cmake_builddir}/LLVM.cmake diff --git a/cmake/modules/LLVMConfig.cmake b/cmake/modules/LLVMConfig.cmake index 7a4a271b1c6..349544edc33 100755 --- a/cmake/modules/LLVMConfig.cmake +++ b/cmake/modules/LLVMConfig.cmake @@ -59,6 +59,7 @@ endfunction(llvm_map_components_to_libraries) function(explicit_map_components_to_libraries out_libs) set( link_components ${ARGN} ) + get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) string(TOUPPER "${llvm_libs}" capitalized_libs) # Translate symbolic component names to real libraries: foreach(c ${link_components}) diff --git a/lib/Analysis/CMakeLists.txt b/lib/Analysis/CMakeLists.txt index 1f43b4481d1..1a738fae837 100644 --- a/lib/Analysis/CMakeLists.txt +++ b/lib/Analysis/CMakeLists.txt @@ -56,3 +56,5 @@ add_llvm_library(LLVMAnalysis TypeBasedAliasAnalysis.cpp ValueTracking.cpp ) + +add_subdirectory(IPA) diff --git a/lib/Bitcode/CMakeLists.txt b/lib/Bitcode/CMakeLists.txt new file mode 100644 index 00000000000..ff7e290cad1 --- /dev/null +++ b/lib/Bitcode/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(Reader) +add_subdirectory(Writer) diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 00000000000..e2838c373a3 --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,14 @@ +# `Support' library is added on the top-level CMakeLists.txt + +add_subdirectory(VMCore) +add_subdirectory(CodeGen) +add_subdirectory(Bitcode) +add_subdirectory(Transforms) +add_subdirectory(Linker) +add_subdirectory(Analysis) +add_subdirectory(MC) +add_subdirectory(Object) +add_subdirectory(ExecutionEngine) +add_subdirectory(Target) +add_subdirectory(AsmParser) +add_subdirectory(Archive) diff --git a/lib/CodeGen/CMakeLists.txt b/lib/CodeGen/CMakeLists.txt index 9f48f332049..d7d0e1b3812 100644 --- a/lib/CodeGen/CMakeLists.txt +++ b/lib/CodeGen/CMakeLists.txt @@ -94,3 +94,6 @@ add_llvm_library(LLVMCodeGen VirtRegMap.cpp VirtRegRewriter.cpp ) + +add_subdirectory(SelectionDAG) +add_subdirectory(AsmPrinter) diff --git a/lib/ExecutionEngine/CMakeLists.txt b/lib/ExecutionEngine/CMakeLists.txt index 0e118ccd904..b5632d2bc5c 100644 --- a/lib/ExecutionEngine/CMakeLists.txt +++ b/lib/ExecutionEngine/CMakeLists.txt @@ -2,3 +2,7 @@ add_llvm_library(LLVMExecutionEngine ExecutionEngine.cpp ExecutionEngineBindings.cpp ) + +add_subdirectory(Interpreter) +add_subdirectory(JIT) +add_subdirectory(MCJIT) diff --git a/lib/MC/CMakeLists.txt b/lib/MC/CMakeLists.txt index c17e1505b09..f1811a1716f 100644 --- a/lib/MC/CMakeLists.txt +++ b/lib/MC/CMakeLists.txt @@ -34,3 +34,6 @@ add_llvm_library(LLVMMC WinCOFFObjectWriter.cpp TargetAsmBackend.cpp ) + +add_subdirectory(MCParser) +add_subdirectory(MCDisassembler) diff --git a/lib/Target/CMakeLists.txt b/lib/Target/CMakeLists.txt index f7a98664a36..fe9a1264955 100644 --- a/lib/Target/CMakeLists.txt +++ b/lib/Target/CMakeLists.txt @@ -15,3 +15,53 @@ add_llvm_library(LLVMTarget TargetRegisterInfo.cpp TargetSubtarget.cpp ) + +set(LLVM_ENUM_ASM_PRINTERS "") +set(LLVM_ENUM_ASM_PARSERS "") +set(LLVM_ENUM_DISASSEMBLERS "") +foreach(t ${LLVM_TARGETS_TO_BUILD}) + message(STATUS "Targeting ${t}") + add_subdirectory(${t}) + add_subdirectory(${t}/TargetInfo) + set( td ${LLVM_MAIN_SRC_DIR}/lib/Target/${t} ) + file(GLOB asmp_file "${td}/*AsmPrinter.cpp") + if( asmp_file ) + set(LLVM_ENUM_ASM_PRINTERS + "${LLVM_ENUM_ASM_PRINTERS}LLVM_ASM_PRINTER(${t})\n") + endif() + if( EXISTS ${td}/InstPrinter/CMakeLists.txt ) + add_subdirectory(${t}/InstPrinter) + endif() + if( EXISTS ${td}/AsmParser/CMakeLists.txt ) + add_subdirectory(${t}/AsmParser) + set(LLVM_ENUM_ASM_PARSERS + "${LLVM_ENUM_ASM_PARSERS}LLVM_ASM_PARSER(${t})\n") + endif() + if( EXISTS ${td}/Disassembler/CMakeLists.txt ) + add_subdirectory(${t}/Disassembler) + set(LLVM_ENUM_DISASSEMBLERS + "${LLVM_ENUM_DISASSEMBLERS}LLVM_DISASSEMBLER(${t})\n") + endif() + if( EXISTS ${td}/Utils/CMakeLists.txt ) + add_subdirectory(${td}/Utils) + endif() + set(CURRENT_LLVM_TARGET) +endforeach(t) + +# Produce llvm/Config/AsmPrinters.def +configure_file( + ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmPrinters.def.in + ${LLVM_BINARY_DIR}/include/llvm/Config/AsmPrinters.def + ) + +# Produce llvm/Config/AsmParsers.def +configure_file( + ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/AsmParsers.def.in + ${LLVM_BINARY_DIR}/include/llvm/Config/AsmParsers.def + ) + +# Produce llvm/Config/Disassemblers.def +configure_file( + ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Disassemblers.def.in + ${LLVM_BINARY_DIR}/include/llvm/Config/Disassemblers.def + ) diff --git a/lib/Transforms/CMakeLists.txt b/lib/Transforms/CMakeLists.txt new file mode 100644 index 00000000000..10e0cc6b569 --- /dev/null +++ b/lib/Transforms/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(Utils) +add_subdirectory(Instrumentation) +add_subdirectory(InstCombine) +add_subdirectory(Scalar) +add_subdirectory(IPO) +add_subdirectory(Hello) diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt index b9a833f7bbd..d33ff0dad84 100644 --- a/tools/llvm-config/CMakeLists.txt +++ b/tools/llvm-config/CMakeLists.txt @@ -70,6 +70,8 @@ if( NOT NM_PATH ) message(FATAL_ERROR "`nm' not found") endif() +get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) + add_custom_command(OUTPUT ${LIBDEPS_TMP} COMMAND ${PERL_EXECUTABLE} ${LLVM_MAIN_SRC_DIR}/utils/GenLibDeps.pl -flat ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR} ${NM_PATH} > ${LIBDEPS_TMP} DEPENDS ${llvm_libs} @@ -122,6 +124,7 @@ add_custom_command(OUTPUT ${LLVM_CONFIG} add_custom_target(llvm-config.target ALL DEPENDS ${LLVM_CONFIG}) +get_property(llvm_lib_targets GLOBAL PROPERTY LLVM_LIB_TARGETS) add_dependencies(llvm-config.target ${llvm_lib_targets}) # Make sure that llvm-config builds before the llvm tools, so we have