| set(LLVM_INSTALL_PACKAGE_DIR lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm) | 
 | set(llvm_cmake_builddir "${LLVM_BINARY_DIR}/${LLVM_INSTALL_PACKAGE_DIR}") | 
 |  | 
 | # First for users who use an installed LLVM, create the LLVMExports.cmake file. | 
 | set(LLVM_EXPORTS_FILE ${llvm_cmake_builddir}/LLVMExports.cmake) | 
 | get_property(LLVM_EXPORTS GLOBAL PROPERTY LLVM_EXPORTS) | 
 | export(TARGETS ${LLVM_EXPORTS} FILE ${LLVM_EXPORTS_FILE}) | 
 |  | 
 | # Then for users who want to link against the LLVM build tree, provide the | 
 | # normal targets and the build tree only targets. | 
 | set(LLVM_BUILDTREEONLY_EXPORTS_FILE ${llvm_cmake_builddir}/LLVMBuildTreeOnlyTargets.cmake) | 
 | get_property(LLVM_EXPORTS_BUILDTREE_ONLY GLOBAL PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY) | 
 | export(TARGETS ${LLVM_EXPORTS_BUILDTREE_ONLY} FILE ${LLVM_BUILDTREEONLY_EXPORTS_FILE}) | 
 |  | 
 | get_property(LLVM_AVAILABLE_LIBS GLOBAL PROPERTY LLVM_LIBS) | 
 |  | 
 | foreach(lib ${LLVM_AVAILABLE_LIBS}) | 
 |   get_property(llvm_lib_deps GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib}) | 
 |   set(all_llvm_lib_deps | 
 |     "${all_llvm_lib_deps}\nset_property(GLOBAL PROPERTY LLVMBUILD_LIB_DEPS_${lib} ${llvm_lib_deps})") | 
 | endforeach(lib) | 
 |  | 
 | # CMake requires that all targets expressed as dependencies exist, so we can't | 
 | # have intrinsics_gen in LLVM_COMMON_DEPENDS when it is written out, otherwise | 
 | # projects building out of tree will have CMake errors. This only gets hit when | 
 | # LLVM_ENABLE_MODULES=On. Eventually we should come up with a better solution to | 
 | # this, but there is no easy solution. | 
 | if(intrinsics_gen IN_LIST LLVM_COMMON_DEPENDS) | 
 |   list(REMOVE_ITEM LLVM_COMMON_DEPENDS intrinsics_gen) | 
 | endif() | 
 | if(omp_gen IN_LIST LLVM_COMMON_DEPENDS) | 
 |   list(REMOVE_ITEM LLVM_COMMON_DEPENDS omp_gen) | 
 | endif() | 
 |  | 
 | # 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_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_CONFIG_INCLUDE_DIRS | 
 |   "${LLVM_MAIN_INCLUDE_DIR}" | 
 |   "${LLVM_INCLUDE_DIR}" | 
 |   ) | 
 | set(LLVM_CONFIG_INCLUDE_DIR | 
 |   "${LLVM_INCLUDE_DIR}" | 
 |   ) | 
 | set(LLVM_CONFIG_MAIN_INCLUDE_DIR | 
 |   "${LLVM_MAIN_INCLUDE_DIR}" | 
 |   ) | 
 | set(LLVM_CONFIG_LIBRARY_DIRS | 
 |   "${LLVM_LIBRARY_DIR}" | 
 |   ) | 
 | set(LLVM_CONFIG_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") | 
 | set(LLVM_CONFIG_BINARY_DIR "${LLVM_BINARY_DIR}") | 
 | set(LLVM_CONFIG_TOOLS_BINARY_DIR "${LLVM_TOOLS_BINARY_DIR}") | 
 |  | 
 | # Generate a default location for lit | 
 | if (LLVM_BUILD_UTILS) | 
 |   if (CMAKE_HOST_WIN32 AND NOT CYGWIN) | 
 |     set(LLVM_CONFIG_DEFAULT_EXTERNAL_LIT "${LLVM_CONFIG_TOOLS_BINARY_DIR}/llvm-lit.py") | 
 |   else() | 
 |     set(LLVM_CONFIG_DEFAULT_EXTERNAL_LIT "${LLVM_CONFIG_TOOLS_BINARY_DIR}/llvm-lit") | 
 |   endif() | 
 | endif() | 
 |  | 
 | if (LLVM_LINK_LLVM_DYLIB) | 
 |   set(LLVM_CONFIG_LINK_LLVM_DYLIB | 
 |       "set(LLVM_LINK_LLVM_DYLIB ${LLVM_LINK_LLVM_DYLIB})") | 
 | endif() | 
 |  | 
 | # We need to use the full path to the LLVM Exports file to make sure we get the | 
 | # one from the build tree. This is due to our cmake files being split between | 
 | # this source dir and the binary dir in the build tree configuration and the | 
 | # LLVM_CONFIG_CMAKE_DIR being the source directory. In contrast in the install | 
 | # tree, both the generated LLVMExports.cmake file and the rest of the cmake | 
 | # source files are put in the same cmake directory. | 
 | set(LLVM_CONFIG_EXPORTS_FILE "${LLVM_EXPORTS_FILE}") | 
 | set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS};${LLVM_EXPORTS_BUILDTREE_ONLY}") | 
 | set(llvm_config_include_buildtree_only_exports | 
 | "include(\"${LLVM_BUILDTREEONLY_EXPORTS_FILE}\")") | 
 | configure_file( | 
 |   LLVMConfig.cmake.in | 
 |   ${llvm_cmake_builddir}/LLVMConfig.cmake | 
 |   @ONLY) | 
 | set(llvm_config_include_buildtree_only_exports) | 
 |  | 
 | # For compatibility with projects that include(LLVMConfig) | 
 | # via CMAKE_MODULE_PATH, place API modules next to it. | 
 | # This should be removed in the future. | 
 | file(COPY . | 
 |   DESTINATION ${llvm_cmake_builddir} | 
 |   FILES_MATCHING PATTERN *.cmake | 
 |   PATTERN .svn EXCLUDE | 
 |   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_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") | 
 | set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}") | 
 | set(LLVM_CONFIG_LIBRARY_DIRS "\${LLVM_INSTALL_PREFIX}/lib\${LLVM_LIBDIR_SUFFIX}") | 
 | set(LLVM_CONFIG_CMAKE_DIR "\${LLVM_INSTALL_PREFIX}/${LLVM_INSTALL_PACKAGE_DIR}") | 
 | set(LLVM_CONFIG_BINARY_DIR "\${LLVM_INSTALL_PREFIX}") | 
 | set(LLVM_CONFIG_TOOLS_BINARY_DIR "\${LLVM_INSTALL_PREFIX}/bin") | 
 |  | 
 | # Generate a default location for lit | 
 | if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) | 
 |   set(LLVM_CONFIG_DEFAULT_EXTERNAL_LIT "${LLVM_CONFIG_TOOLS_BINARY_DIR}/llvm-lit") | 
 | endif() | 
 |  | 
 | set(LLVM_CONFIG_EXPORTS_FILE "\${LLVM_CMAKE_DIR}/LLVMExports.cmake") | 
 | set(LLVM_CONFIG_EXPORTS "${LLVM_EXPORTS}") | 
 | 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 | 
 |   @ONLY) | 
 |  | 
 | if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) | 
 |   get_property(llvm_has_exports GLOBAL PROPERTY LLVM_HAS_EXPORTS) | 
 |   if(llvm_has_exports) | 
 |     install(EXPORT LLVMExports DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} | 
 |             COMPONENT cmake-exports) | 
 |   endif() | 
 |  | 
 |   install(FILES | 
 |     ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/LLVMConfig.cmake | 
 |     ${llvm_cmake_builddir}/LLVMConfigVersion.cmake | 
 |     LLVM-Config.cmake | 
 |     DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} | 
 |     COMPONENT cmake-exports) | 
 |  | 
 |   install(DIRECTORY . | 
 |     DESTINATION ${LLVM_INSTALL_PACKAGE_DIR} | 
 |     COMPONENT cmake-exports | 
 |     FILES_MATCHING PATTERN *.cmake | 
 |     PATTERN .svn EXCLUDE | 
 |     PATTERN LLVMConfig.cmake EXCLUDE | 
 |     PATTERN LLVMConfigExtensions.cmake EXCLUDE | 
 |     PATTERN LLVMConfigVersion.cmake EXCLUDE | 
 |     PATTERN LLVM-Config.cmake EXCLUDE | 
 |     PATTERN GetHostTriple.cmake EXCLUDE) | 
 |  | 
 |   if (NOT LLVM_ENABLE_IDE) | 
 |     # Add a dummy target so this can be used with LLVM_DISTRIBUTION_COMPONENTS | 
 |     add_custom_target(cmake-exports) | 
 |     add_llvm_install_targets(install-cmake-exports | 
 |                              COMPONENT cmake-exports) | 
 |   endif() | 
 | endif() |