From ab6d1499e14166bd853ad29f85ad536b516760a6 Mon Sep 17 00:00:00 2001 From: James Rumble Date: Tue, 6 Aug 2019 14:47:51 +0100 Subject: [PATCH] Export glslang targets on installation This allows the targets to be used in other cmake projects. See the following for more details: https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages https://foonathan.net/blog/2016/07/07/cmake-dependency-handling.html --- OGLCompilersDLL/CMakeLists.txt | 3 ++- SPIRV/CMakeLists.txt | 11 +++++++---- StandAlone/CMakeLists.txt | 10 +++++++--- glslang/CMakeLists.txt | 5 +++-- glslang/OSDependent/Unix/CMakeLists.txt | 3 ++- glslang/OSDependent/Windows/CMakeLists.txt | 3 ++- gtests/CMakeLists.txt | 3 ++- hlsl/CMakeLists.txt | 5 +++-- 8 files changed, 28 insertions(+), 15 deletions(-) diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt index 5bb3f0ee..d257828d 100644 --- a/OGLCompilersDLL/CMakeLists.txt +++ b/OGLCompilersDLL/CMakeLists.txt @@ -9,6 +9,7 @@ if(WIN32) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OGLCompiler + install(TARGETS OGLCompiler EXPORT OGLCompilerTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OGLCompilerTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 594ab1ef..3ddf6f17 100644 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -80,22 +80,25 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) if (ENABLE_SPVREMAPPER) - install(TARGETS SPVRemapper + install(TARGETS SPVRemapper EXPORT SPVRemapperTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - install(TARGETS SPIRV + install(TARGETS SPIRV EXPORT SPIRVTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else() if (ENABLE_SPVREMAPPER) - install(TARGETS SPVRemapper + install(TARGETS SPVRemapper EXPORT SPVRemapperTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() - install(TARGETS SPIRV + install(TARGETS SPIRV EXPORT SPIRVTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() + + install(EXPORT SPVRemapperTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) + install(EXPORT SPIRVTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SPIRV/) endif(ENABLE_GLSLANG_INSTALL) diff --git a/StandAlone/CMakeLists.txt b/StandAlone/CMakeLists.txt index 5cea53d9..03d64013 100644 --- a/StandAlone/CMakeLists.txt +++ b/StandAlone/CMakeLists.txt @@ -40,14 +40,18 @@ if(WIN32) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangValidator + install(TARGETS glslangValidator EXPORT glslangValidatorTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - install(TARGETS spirv-remap + install(TARGETS spirv-remap EXPORT spirv-remapTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + + install(EXPORT glslangValidatorTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) + install(EXPORT spirv-remapTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) if(BUILD_SHARED_LIBS) - install(TARGETS glslang-default-resource-limits + install(TARGETS glslang-default-resource-limits EXPORT glslang-default-resource-limitsTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT glslang-default-resource-limitsTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif() endif(ENABLE_GLSLANG_INSTALL) diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 60169fb7..9019d81d 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -106,14 +106,15 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) - install(TARGETS glslang + install(TARGETS glslang EXPORT glslangTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else() - install(TARGETS glslang + install(TARGETS glslang EXPORT glslangTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() + install(EXPORT glslangTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) if(ENABLE_GLSLANG_INSTALL) diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt index e652f456..4a434ef5 100644 --- a/glslang/OSDependent/Unix/CMakeLists.txt +++ b/glslang/OSDependent/Unix/CMakeLists.txt @@ -20,6 +20,7 @@ else() endif() if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent + install(TARGETS OSDependent EXPORT OSDependentTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OSDependentTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt index f257418a..321fd4f3 100644 --- a/glslang/OSDependent/Windows/CMakeLists.txt +++ b/glslang/OSDependent/Windows/CMakeLists.txt @@ -15,6 +15,7 @@ if(WIN32) endif(WIN32) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS OSDependent + install(TARGETS OSDependent EXPORT OSDependentTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + install(EXPORT OSDependentTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index f678cb6e..6e574433 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -31,8 +31,9 @@ if(BUILD_TESTING) set_property(TARGET glslangtests PROPERTY FOLDER tests) glslang_set_link_args(glslangtests) if(ENABLE_GLSLANG_INSTALL) - install(TARGETS glslangtests + install(TARGETS glslangtests EXPORT glslangtestsTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + install(EXPORT glslangtestsTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL) set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt index 7436dde6..70cd28ef 100644 --- a/hlsl/CMakeLists.txt +++ b/hlsl/CMakeLists.txt @@ -33,12 +33,13 @@ endif(WIN32) if(ENABLE_GLSLANG_INSTALL) if(BUILD_SHARED_LIBS) - install(TARGETS HLSL + install(TARGETS HLSL EXPORT HLSLTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) else() - install(TARGETS HLSL + install(TARGETS HLSL EXPORT HLSLTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() + install(EXPORT HLSLTargets DESTINATION ${LIB_INSTALL_DIR}/cmake) endif(ENABLE_GLSLANG_INSTALL)