aboutsummaryrefslogtreecommitdiff
path: root/cfront/cmake/modules/CMakeLists.txt
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-10-20 01:30:20 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-10-20 01:30:20 +0800
commit3e8d7d1270ace353cce0080a80021dcc7532f2be (patch)
treea8bf9d52c4ce609c5d4d1e9c7249d148e4cb6271 /cfront/cmake/modules/CMakeLists.txt
parenta59ba0e3eda5381623a4929486b2f673a883d8d8 (diff)
downloadrcc-project-3e8d7d1270ace353cce0080a80021dcc7532f2be.tar.gz
rcc-project-3e8d7d1270ace353cce0080a80021dcc7532f2be.tar.xz
[CMake] Establish RCC and CFront builds and package exports
Diffstat (limited to 'cfront/cmake/modules/CMakeLists.txt')
-rw-r--r--cfront/cmake/modules/CMakeLists.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/cfront/cmake/modules/CMakeLists.txt b/cfront/cmake/modules/CMakeLists.txt
new file mode 100644
index 0000000..634ba34
--- /dev/null
+++ b/cfront/cmake/modules/CMakeLists.txt
@@ -0,0 +1,35 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+include(CMakePackageConfigHelpers)
+
+set(cfrontPackageDir "${CFRONT_BINARY_DIR}/lib/cmake/CFront")
+set(cfrontInstallPackageDir "${CMAKE_INSTALL_LIBDIR}/cmake/CFront")
+set(CFRONT_PACKAGE_MODULE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
+if(CFRONT_STANDALONE_BUILD)
+ set(CFRONT_PACKAGE_RCC_CMAKE_DIR "${RCC_DIR}")
+else()
+ set(CFRONT_PACKAGE_RCC_CMAKE_DIR "${RCC_BINARY_DIR}/lib/cmake/RCC")
+endif()
+configure_package_config_file(CFrontConfig.cmake.in
+ "${cfrontPackageDir}/CFrontConfig.cmake"
+ INSTALL_DESTINATION "${cfrontPackageDir}"
+ NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+export(EXPORT CFrontTargets FILE "${cfrontPackageDir}/CFrontTargets.cmake")
+
+set(CFRONT_PACKAGE_MODULE_DIR "\${CMAKE_CURRENT_LIST_DIR}")
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
+ set(CFRONT_PACKAGE_RCC_CMAKE_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/RCC")
+else()
+ set(CFRONT_PACKAGE_RCC_CMAKE_DIR "\${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_LIBDIR}/cmake/RCC")
+endif()
+configure_package_config_file(CFrontConfig.cmake.in CFrontConfig.install.cmake
+ INSTALL_DESTINATION "${cfrontInstallPackageDir}"
+ NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
+configure_file(CFrontConfigVersion.cmake.in
+ "${cfrontPackageDir}/CFrontConfigVersion.cmake" @ONLY)
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/CFrontConfig.install.cmake"
+ DESTINATION "${cfrontInstallPackageDir}" RENAME CFrontConfig.cmake)
+install(FILES "${cfrontPackageDir}/CFrontConfigVersion.cmake" AddCFront.cmake
+ DESTINATION "${cfrontInstallPackageDir}")
+install(EXPORT CFrontTargets FILE CFrontTargets.cmake
+ DESTINATION "${cfrontInstallPackageDir}")