diff options
| author | ov-l <186710607+ov-l@users.noreply.github.com> | 2024-12-03 18:50:11 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-03 17:50:11 +0000 |
| commit | 5d8cf475b352ab517c565ccee59461640da63a2a (patch) | |
| tree | 8e9a311cc712df112ffe290821751b0276e10f97 /CMakeLists.txt | |
| parent | 6c655ca927a440d1f03339295235fce2a764c26b (diff) | |
Add SlangConfig.cmake with slang build targets (#5674)
* Modify package config
* Apply formatting.
* Make sure build works for Emscripten
* Add documentation on install target.
---------
Co-authored-by: obhi-d <obi.de.online@gmail.com>
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index dc281211e..5a53ba731 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -338,3 +338,43 @@ install(DIRECTORY "${slang_SOURCE_DIR}/docs/" DESTINATION share/doc/slang) install(DIRECTORY "${slang_SOURCE_DIR}/include" DESTINATION .) include(CPack) + +# Write basic package config version file using standard CMakePackageConfigHelpers utility +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${PROJECT_NAME}ConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) + +# Write SlangConfig.cmake which should allow find_pacakage(SLANG) to work correctly +# SlangConfig.cmake will define slang::slang target that can be linked with using +# target_link_libraries. It will also define SLANG_EXECUTABLE export variable that +# should point to slangc if SLANG_ENABLE_SLANGC is ON. +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/cmake/SlangConfig.cmake.in" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION cmake +) + +# Conditionally handle the case for Emscripten where slang does not create linkable +# targets. In this case do not export the targets. Otherwise, just export the +# slang target, as this is the library that is required to use the compiler. This possibly +# should later be expanded to include slang-rhi targets if some program intends to use them, +# but possibly wait for a future request before expanding this export set. +if(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten") + install(TARGETS slang EXPORT SlangExportTarget) + install( + EXPORT SlangExportTarget + FILE ${PROJECT_NAME}Targets.cmake + NAMESPACE ${PROJECT_NAME}:: + DESTINATION cmake + ) +endif() + +install( + FILES + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + DESTINATION cmake +) |
