1*9880d681SAndroid Build Coastguard Workerset(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) 2*9880d681SAndroid Build Coastguard Workerset(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Workerget_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS) 5*9880d681SAndroid Build Coastguard Workerexport(TARGETS ${LLVM_EXPORTS} 6*9880d681SAndroid Build Coastguard Worker FILE ${llvm_cmake_builddir}/LLVMExports.cmake) 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Workerget_property(LLVM_AVAILABLE_LIBS GLOBAL PROPERTY LLVM_LIBS) 9*9880d681SAndroid Build Coastguard Worker 10*9880d681SAndroid Build Coastguard Workerforeach(lib ${LLVM_AVAILABLE_LIBS}) 11*9880d681SAndroid Build Coastguard Worker get_property(llvm_lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib}) 12*9880d681SAndroid Build Coastguard Worker set(all_llvm_lib_deps 13*9880d681SAndroid Build Coastguard Worker "${all_llvm_lib_deps}\nset_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib} ${llvm_lib_deps})") 14*9880d681SAndroid Build Coastguard Workerendforeach(lib) 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Worker# Generate LLVMConfig.cmake for the build tree. 17*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_CODE " 18*9880d681SAndroid Build Coastguard Worker# LLVM_BUILD_* values available only from LLVM build tree. 19*9880d681SAndroid Build Coastguard Workerset(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\") 20*9880d681SAndroid Build Coastguard Workerset(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\") 21*9880d681SAndroid Build Coastguard Workerset(LLVM_BUILD_MAIN_INCLUDE_DIR \"${LLVM_MAIN_INCLUDE_DIR}\") 22*9880d681SAndroid Build Coastguard Workerset(LLVM_BUILD_MAIN_SRC_DIR \"${LLVM_MAIN_SRC_DIR}\") 23*9880d681SAndroid Build Coastguard Worker") 24*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_INCLUDE_DIRS 25*9880d681SAndroid Build Coastguard Worker "${LLVM_MAIN_INCLUDE_DIR}" 26*9880d681SAndroid Build Coastguard Worker "${LLVM_INCLUDE_DIR}" 27*9880d681SAndroid Build Coastguard Worker ) 28*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_LIBRARY_DIRS 29*9880d681SAndroid Build Coastguard Worker "${LLVM_LIBRARY_DIR}" 30*9880d681SAndroid Build Coastguard Worker ) 31*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") 32*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_BINARY_DIR "${LLVM_BINARY_DIR}") 33*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") 34*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_EXPORTS_FILE "${llvm_cmake_builddir}/LLVMExports.cmake") 35*9880d681SAndroid Build Coastguard Workerconfigure_file( 36*9880d681SAndroid Build Coastguard Worker LLVMConfig.cmake.in 37*9880d681SAndroid Build Coastguard Worker ${llvm_cmake_builddir}/LLVMConfig.cmake 38*9880d681SAndroid Build Coastguard Worker @ONLY) 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Worker# For compatibility with projects that include(LLVMConfig) 41*9880d681SAndroid Build Coastguard Worker# via CMAKE_MODULE_PATH, place API modules next to it. 42*9880d681SAndroid Build Coastguard Worker# This should be removed in the future. 43*9880d681SAndroid Build Coastguard Workerfile(COPY . 44*9880d681SAndroid Build Coastguard Worker DESTINATION ${llvm_cmake_builddir} 45*9880d681SAndroid Build Coastguard Worker FILES_MATCHING PATTERN *.cmake 46*9880d681SAndroid Build Coastguard Worker PATTERN .svn EXCLUDE 47*9880d681SAndroid Build Coastguard Worker PATTERN CMakeFiles EXCLUDE 48*9880d681SAndroid Build Coastguard Worker ) 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker# Generate LLVMConfig.cmake for the install tree. 51*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_CODE " 52*9880d681SAndroid Build Coastguard Worker# Compute the installation prefix from this LLVMConfig.cmake file location. 53*9880d681SAndroid Build Coastguard Workerget_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)") 54*9880d681SAndroid Build Coastguard Worker# Construct the proper number of get_filename_component(... PATH) 55*9880d681SAndroid Build Coastguard Worker# calls to compute the installation prefix. 56*9880d681SAndroid Build Coastguard Workerstring(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}") 57*9880d681SAndroid Build Coastguard Workerforeach(p ${_count}) 58*9880d681SAndroid Build Coastguard Worker set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE} 59*9880d681SAndroid Build Coastguard Workerget_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)") 60*9880d681SAndroid Build Coastguard Workerendforeach(p) 61*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include") 62*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") 63*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") 64*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") 65*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") 66*9880d681SAndroid Build Coastguard Workerset(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") 67*9880d681SAndroid Build Coastguard Workerconfigure_file( 68*9880d681SAndroid Build Coastguard Worker LLVMConfig.cmake.in 69*9880d681SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake 70*9880d681SAndroid Build Coastguard Worker @ONLY) 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Worker# Generate LLVMConfigVersion.cmake for build and install tree. 73*9880d681SAndroid Build Coastguard Workerconfigure_file( 74*9880d681SAndroid Build Coastguard Worker LLVMConfigVersion.cmake.in 75*9880d681SAndroid Build Coastguard Worker ${llvm_cmake_builddir}/LLVMConfigVersion.cmake 76*9880d681SAndroid Build Coastguard Worker @ONLY) 77*9880d681SAndroid Build Coastguard Worker 78*9880d681SAndroid Build Coastguard Workerif (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) 79*9880d681SAndroid Build Coastguard Worker install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}) 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker install(FILES 82*9880d681SAndroid Build Coastguard Worker ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake 83*9880d681SAndroid Build Coastguard Worker ${llvm_cmake_builddir}/LLVMConfigVersion.cmake 84*9880d681SAndroid Build Coastguard Worker LLVM-Config.cmake 85*9880d681SAndroid Build Coastguard Worker DESTINATION ${LLVM_INSTALL_PACKAGE_DIR}) 86*9880d681SAndroid Build Coastguard Worker 87*9880d681SAndroid Build Coastguard Worker install(DIRECTORY . 88*9880d681SAndroid Build Coastguard Worker DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} 89*9880d681SAndroid Build Coastguard Worker FILES_MATCHING PATTERN *.cmake 90*9880d681SAndroid Build Coastguard Worker PATTERN .svn EXCLUDE 91*9880d681SAndroid Build Coastguard Worker PATTERN LLVMConfig.cmake EXCLUDE 92*9880d681SAndroid Build Coastguard Worker PATTERN LLVMConfigVersion.cmake EXCLUDE 93*9880d681SAndroid Build Coastguard Worker PATTERN LLVM-Config.cmake EXCLUDE 94*9880d681SAndroid Build Coastguard Worker PATTERN GetHostTriple.cmake EXCLUDE 95*9880d681SAndroid Build Coastguard Worker PATTERN CheckAtomic.cmake EXCLUDE) 96*9880d681SAndroid Build Coastguard Workerendif() 97