diff options
Diffstat (limited to 'cmake/modules/CMakeLists.txt')
-rw-r--r-- | cmake/modules/CMakeLists.txt | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt index 169418c6b9..4992be0e2f 100644 --- a/cmake/modules/CMakeLists.txt +++ b/cmake/modules/CMakeLists.txt @@ -1,6 +1,5 @@ set(LLVM_INSTALL_PACKAGE_DIR share/llvm/cmake) set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") -set(LLVM_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}) get_property(llvm_libs GLOBAL PROPERTY LLVM_LIBS) @@ -10,6 +9,24 @@ foreach(lib ${llvm_libs}) "${all_llvm_lib_deps}\nset_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib} ${llvm_lib_deps})") endforeach(lib) +# Generate LLVMConfig.cmake for the build tree. +set(LLVM_CONFIG_CODE " +# LLVM_BUILD_* values available only from LLVM build tree. +set(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\") +set(LLVM_BUILD_ENABLE_ASSERTIONS \"${LLVM_ENABLE_ASSERTIONS}\") +set(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\") +set(LLVM_BUILD_MAIN_INCLUDE_DIR \"${LLVM_MAIN_INCLUDE_DIR}\") +set(LLVM_BUILD_MAIN_SRC_DIR \"${LLVM_MAIN_SRC_DIR}\") +set(LLVM_BUILD_TOOLS_BINARY_DIR \"${LLVM_TOOLS_BINARY_DIR}\") +") +set(LLVM_CONFIG_INCLUDE_DIRS + "${LLVM_MAIN_INCLUDE_DIR}" + "${LLVM_INCLUDE_DIR}" + ) +set(LLVM_CONFIG_LIBRARY_DIRS + "${LLVM_LIBRARY_DIR}" + ) +set(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") configure_file( LLVMConfig.cmake.in ${llvm_cmake_builddir}/LLVMConfig.cmake @@ -25,6 +42,26 @@ file(COPY . PATTERN CMakeFiles EXCLUDE ) +# Generate LLVMConfig.cmake for the install tree. +set(LLVM_CONFIG_CODE " +# Compute the installation prefix from this LLVMConfig.cmake file location. +get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") +# Construct the proper number of get_filename_component(... PATH) +# calls to compute the installation prefix. +string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}") +foreach(p ${_count}) + set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} +get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") +endforeach(p) +set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") +set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib") +set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") +configure_file( + LLVMConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake + @ONLY) + +# Generate LLVMConfigVersion.cmake for build and install tree. configure_file( LLVMConfigVersion.cmake.in ${llvm_cmake_builddir}/LLVMConfigVersion.cmake @@ -32,7 +69,7 @@ configure_file( if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) install(FILES - ${llvm_cmake_builddir}/LLVMConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake ${llvm_cmake_builddir}/LLVMConfigVersion.cmake LLVM-Config.cmake DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}) |