NAKAMURA Takumi | 3097cdc | 2014-02-09 16:35:29 +0000 | [diff] [blame] | 1 | set(LLVM_INSTALL_PACKAGE_DIR share/llvm/cmake) |
| 2 | set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") |
Oscar Fuentes | a389c58 | 2010-08-09 03:26:43 +0000 | [diff] [blame] | 3 | |
NAKAMURA Takumi | 8faf660 | 2014-02-09 16:36:16 +0000 | [diff] [blame] | 4 | get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS) |
| 5 | export(TARGETS ${LLVM_EXPORTS} |
| 6 | FILE ${llvm_cmake_builddir}/LLVMExports.cmake) |
| 7 | |
NAKAMURA Takumi | 12fedb0 | 2014-02-21 14:17:07 +0000 | [diff] [blame^] | 8 | get_property(LLVM_AVAILABLE_LIBS GLOBAL PROPERTY LLVM_LIBS) |
Oscar Fuentes | 5ed9626 | 2011-02-18 22:06:14 +0000 | [diff] [blame] | 9 | |
NAKAMURA Takumi | 12fedb0 | 2014-02-21 14:17:07 +0000 | [diff] [blame^] | 10 | foreach(lib ${LLVM_AVAILABLE_LIBS}) |
Daniel Dunbar | faaa76d | 2011-11-29 01:31:52 +0000 | [diff] [blame] | 11 | get_property(llvm_lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib}) |
Chandler Carruth | 68b2311 | 2011-07-29 23:52:01 +0000 | [diff] [blame] | 12 | set(all_llvm_lib_deps |
Daniel Dunbar | faaa76d | 2011-11-29 01:31:52 +0000 | [diff] [blame] | 13 | "${all_llvm_lib_deps}\nset_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib} ${llvm_lib_deps})") |
Chandler Carruth | 68b2311 | 2011-07-29 23:52:01 +0000 | [diff] [blame] | 14 | endforeach(lib) |
| 15 | |
NAKAMURA Takumi | 43d6384 | 2014-02-09 16:35:51 +0000 | [diff] [blame] | 16 | # Generate LLVMConfig.cmake for the build tree. |
| 17 | set(LLVM_CONFIG_CODE " |
| 18 | # LLVM_BUILD_* values available only from LLVM build tree. |
| 19 | set(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\") |
| 20 | set(LLVM_BUILD_ENABLE_ASSERTIONS \"${LLVM_ENABLE_ASSERTIONS}\") |
| 21 | set(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\") |
| 22 | set(LLVM_BUILD_MAIN_INCLUDE_DIR \"${LLVM_MAIN_INCLUDE_DIR}\") |
| 23 | set(LLVM_BUILD_MAIN_SRC_DIR \"${LLVM_MAIN_SRC_DIR}\") |
| 24 | set(LLVM_BUILD_TOOLS_BINARY_DIR \"${LLVM_TOOLS_BINARY_DIR}\") |
| 25 | ") |
| 26 | set(LLVM_CONFIG_INCLUDE_DIRS |
| 27 | "${LLVM_MAIN_INCLUDE_DIR}" |
| 28 | "${LLVM_INCLUDE_DIR}" |
| 29 | ) |
| 30 | set(LLVM_CONFIG_LIBRARY_DIRS |
| 31 | "${LLVM_LIBRARY_DIR}" |
| 32 | ) |
| 33 | set(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") |
NAKAMURA Takumi | 363e85a | 2014-02-09 16:36:28 +0000 | [diff] [blame] | 34 | set(LLVM_CONFIG_EXPORTS_FILE "${llvm_cmake_builddir}/LLVMExports.cmake") |
Oscar Fuentes | a389c58 | 2010-08-09 03:26:43 +0000 | [diff] [blame] | 35 | configure_file( |
Oscar Fuentes | dbe99ba | 2011-04-10 16:17:49 +0000 | [diff] [blame] | 36 | LLVMConfig.cmake.in |
| 37 | ${llvm_cmake_builddir}/LLVMConfig.cmake |
| 38 | @ONLY) |
| 39 | |
NAKAMURA Takumi | 81b580b | 2014-02-09 16:35:40 +0000 | [diff] [blame] | 40 | # For compatibility with projects that include(LLVMConfig) |
| 41 | # via CMAKE_MODULE_PATH, place API modules next to it. |
| 42 | # This should be removed in the future. |
| 43 | file(COPY . |
| 44 | DESTINATION ${llvm_cmake_builddir} |
| 45 | FILES_MATCHING PATTERN *.cmake |
| 46 | PATTERN .svn EXCLUDE |
| 47 | PATTERN CMakeFiles EXCLUDE |
| 48 | ) |
| 49 | |
NAKAMURA Takumi | 43d6384 | 2014-02-09 16:35:51 +0000 | [diff] [blame] | 50 | # Generate LLVMConfig.cmake for the install tree. |
| 51 | set(LLVM_CONFIG_CODE " |
| 52 | # Compute the installation prefix from this LLVMConfig.cmake file location. |
| 53 | get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") |
| 54 | # Construct the proper number of get_filename_component(... PATH) |
| 55 | # calls to compute the installation prefix. |
| 56 | string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}") |
| 57 | foreach(p ${_count}) |
| 58 | set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} |
| 59 | get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") |
| 60 | endforeach(p) |
| 61 | set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") |
| 62 | set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib") |
| 63 | set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") |
NAKAMURA Takumi | 363e85a | 2014-02-09 16:36:28 +0000 | [diff] [blame] | 64 | set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") |
NAKAMURA Takumi | 43d6384 | 2014-02-09 16:35:51 +0000 | [diff] [blame] | 65 | configure_file( |
| 66 | LLVMConfig.cmake.in |
| 67 | ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake |
| 68 | @ONLY) |
| 69 | |
| 70 | # Generate LLVMConfigVersion.cmake for build and install tree. |
Oscar Fuentes | dbe99ba | 2011-04-10 16:17:49 +0000 | [diff] [blame] | 71 | configure_file( |
| 72 | LLVMConfigVersion.cmake.in |
| 73 | ${llvm_cmake_builddir}/LLVMConfigVersion.cmake |
Michael J. Spencer | 93c9b2e | 2010-09-13 23:59:48 +0000 | [diff] [blame] | 74 | @ONLY) |
Oscar Fuentes | a389c58 | 2010-08-09 03:26:43 +0000 | [diff] [blame] | 75 | |
Hans Wennborg | 1654627 | 2013-08-24 00:20:36 +0000 | [diff] [blame] | 76 | if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) |
Reid Kleckner | 47e84fb | 2014-02-10 20:44:57 +0000 | [diff] [blame] | 77 | install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}) |
| 78 | |
Hans Wennborg | 1654627 | 2013-08-24 00:20:36 +0000 | [diff] [blame] | 79 | install(FILES |
NAKAMURA Takumi | 43d6384 | 2014-02-09 16:35:51 +0000 | [diff] [blame] | 80 | ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake |
Hans Wennborg | 1654627 | 2013-08-24 00:20:36 +0000 | [diff] [blame] | 81 | ${llvm_cmake_builddir}/LLVMConfigVersion.cmake |
| 82 | LLVM-Config.cmake |
NAKAMURA Takumi | 3097cdc | 2014-02-09 16:35:29 +0000 | [diff] [blame] | 83 | DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}) |
Oscar Fuentes | f4202ba | 2011-02-03 20:57:36 +0000 | [diff] [blame] | 84 | |
Hans Wennborg | 1654627 | 2013-08-24 00:20:36 +0000 | [diff] [blame] | 85 | install(DIRECTORY . |
NAKAMURA Takumi | 3097cdc | 2014-02-09 16:35:29 +0000 | [diff] [blame] | 86 | DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} |
Hans Wennborg | 1654627 | 2013-08-24 00:20:36 +0000 | [diff] [blame] | 87 | FILES_MATCHING PATTERN *.cmake |
| 88 | PATTERN .svn EXCLUDE |
| 89 | PATTERN LLVMConfig.cmake EXCLUDE |
| 90 | PATTERN LLVMConfigVersion.cmake EXCLUDE |
| 91 | PATTERN LLVM-Config.cmake EXCLUDE |
| 92 | PATTERN GetHostTriple.cmake EXCLUDE |
| 93 | PATTERN VersionFromVCS.cmake EXCLUDE |
| 94 | PATTERN CheckAtomic.cmake EXCLUDE) |
| 95 | endif() |