brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · 4c0f9ab Raw
79 lines · plain
1include(GNUInstallPackageDir)2include(ExtendPath)3include(FindPrefixFromConfig)4 5# Generate a list of CMake library targets so that other CMake projects can6# link against them. LLVM calls its version of this file LLVMExports.cmake, but7# the usual CMake convention seems to be ${Project}Targets.cmake.8set(FLANG_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/flang" CACHE STRING9  "Path for CMake subdirectory for Flang (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/flang')")10# CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below.11set(flang_cmake_builddir "${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/cmake/flang")12 13# Keep this in sync with llvm/cmake/CMakeLists.txt!14set(LLVM_INSTALL_PACKAGE_DIR "${CMAKE_INSTALL_PACKAGEDIR}/llvm" CACHE STRING15  "Path for CMake subdirectory for LLVM (defaults to '${CMAKE_INSTALL_PACKAGEDIR}/llvm')")16# CMAKE_INSTALL_PACKAGEDIR might be absolute, so don't reuse below.17string(REPLACE "${CMAKE_CFG_INTDIR}" "." llvm_cmake_builddir "${LLVM_LIBRARY_DIR}")18set(llvm_cmake_builddir "${llvm_cmake_builddir}/cmake/llvm")19 20get_property(FLANG_EXPORTS GLOBAL PROPERTY FLANG_EXPORTS)21export(TARGETS ${FLANG_EXPORTS} FILE ${flang_cmake_builddir}/FlangTargets.cmake)22 23# Generate FlangConfig.cmake for the build tree.24set(FLANG_CONFIG_CMAKE_DIR "${flang_cmake_builddir}")25set(FLANG_CONFIG_LLVM_CMAKE_DIR "${llvm_cmake_builddir}")26set(FLANG_CONFIG_INCLUDE_EXPORTS "include(\"${flang_cmake_builddir}/FlangTargets.cmake\")")27set(FLANG_CONFIG_INCLUDE_DIRS28  "${FLANG_SOURCE_DIR}/include"29  "${FLANG_BINARY_DIR}/include"30  )31configure_file(32  ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfig.cmake.in33  ${flang_cmake_builddir}/FlangConfig.cmake34  @ONLY)35configure_file(36  ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfigVersion.cmake.in37  ${flang_cmake_builddir}/FlangConfigVersion.cmake38  @ONLY)39set(FLANG_CONFIG_CMAKE_DIR)40set(FLANG_CONFIG_LLVM_CMAKE_DIR)41 42# Generate FlangConfig.cmake for the install tree.43find_prefix_from_config(FLANG_CONFIG_CODE FLANG_INSTALL_PREFIX "${FLANG_INSTALL_PACKAGE_DIR}")44 45extend_path(FLANG_CONFIG_CMAKE_DIR "\${FLANG_INSTALL_PREFIX}" "${FLANG_INSTALL_PACKAGE_DIR}")46extend_path(FLANG_CONFIG_LLVM_CMAKE_DIR "\${FLANG_INSTALL_PREFIX}" "${LLVM_INSTALL_PACKAGE_DIR}")47get_config_exports_includes(Flang FLANG_CONFIG_INCLUDE_EXPORTS)48extend_path(FLANG_CONFIG_INCLUDE_DIRS "\${FLANG_INSTALL_PREFIX}" "${CMAKE_INSTALL_INCLUDEDIR}")49 50configure_file(51  ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfig.cmake.in52  ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfig.cmake53  @ONLY)54configure_file(55  ${CMAKE_CURRENT_SOURCE_DIR}/FlangConfigVersion.cmake.in56  ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfigVersion.cmake57  @ONLY)58 59set(FLANG_CONFIG_CODE)60set(FLANG_CONFIG_CMAKE_DIR)61set(FLANG_CONFIG_EXPORTS_FILE)62 63if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)64  install_distribution_exports(Flang)65 66  install(FILES67    ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfig.cmake68    ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/FlangConfigVersion.cmake69    DESTINATION ${FLANG_INSTALL_PACKAGE_DIR}70    COMPONENT flang-cmake-exports)71 72  if(NOT LLVM_ENABLE_IDE)73    # Add a dummy target so this can be used with LLVM_DISTRIBUTION_COMPONENTS74    add_custom_target(flang-cmake-exports)75    add_llvm_install_targets(install-flang-cmake-exports76                             COMPONENT flang-cmake-exports)77  endif()78endif()79