forked from OSchip/llvm-project
[Clang] Make Clang copy its CMake modules into the build dir
LLVM has a documented mechanism for passing configuration information to an out of tree project using CMake. See https://llvm.org/docs/CMake.html#embedding-llvm-in-your-project. Similar logic applies to "standalone" builds of other sub-projects within LLVM that depend on each other. For example, a standalone build of Flang will use this mechanism to acquire Clang's configuration. Currently, the relevant CMake modules for Clang will only be copied into the installation directory. This means that in order to configure a standalone build of Flang, one has to first build and then install Clang. This is not required for LLVM nor for MLIR - other sub-projects that Flang depends on (i.e. the CMake modules for LLVM and MLIR are available in the build dir, so installation is not needed). This change removes the need for installing Clang in order to access its configuration. It makes sure that the required CMake modules are copied into the build directory. This will make Clang behave consistently with LLVM and MLIR in this respect. It will also simplify building Flang as standalone sub-project. Differential Revision: https://reviews.llvm.org/D116731
This commit is contained in:
parent
1bb0caf561
commit
dfd9879d6f
|
@ -29,6 +29,14 @@ configure_file(
|
|||
set(CLANG_CONFIG_CMAKE_DIR)
|
||||
set(CLANG_CONFIG_LLVM_CMAKE_DIR)
|
||||
|
||||
# For compatibility with projects that include(ClangConfig)
|
||||
# via CMAKE_MODULE_PATH, place API modules next to it.
|
||||
file(COPY .
|
||||
DESTINATION ${clang_cmake_builddir}
|
||||
FILES_MATCHING PATTERN *.cmake
|
||||
PATTERN CMakeFiles EXCLUDE
|
||||
)
|
||||
|
||||
# Generate ClangConfig.cmake for the install tree.
|
||||
find_prefix_from_config(CLANG_CONFIG_CODE CLANG_INSTALL_PREFIX "${CLANG_INSTALL_PACKAGE_DIR}")
|
||||
set(CLANG_CONFIG_CMAKE_DIR "\${CLANG_INSTALL_PREFIX}/${CLANG_INSTALL_PACKAGE_DIR}")
|
||||
|
|
Loading…
Reference in New Issue