opt/glslang/0001-CMake-Allow-linking-against-system-installed-SPIRV-T.patch
2020-10-24 01:56:02 +11:00

65 lines
2.3 KiB
Diff

From 1504af077935a0bfd1b1b59f77d8b1cd89f913b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Verschelde?= <rverschelde@gmail.com>
Date: Mon, 10 Dec 2018 13:05:15 +0100
Subject: [PATCH] CMake: Allow linking against system-installed SPIRV-Tools
Fixes #1585.
---
CMakeLists.txt | 7 ++++++-
SPIRV/CMakeLists.txt | 21 +++++++++++++--------
2 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ada2b8fb..22243f49 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -320,7 +320,12 @@ if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
add_subdirectory(External)
endif()
-if(NOT TARGET SPIRV-Tools-opt)
+find_package(PkgConfig)
+if(PkgConfig_FOUND)
+ pkg_check_modules(SPIRV-Tools SPIRV-Tools)
+endif()
+# Former would be system-installed, later is from External
+if(NOT SPIRV-Tools_FOUND AND NOT TARGET SPIRV-Tools-opt)
set(ENABLE_OPT OFF)
endif()
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
index d699dadd..28beb47b 100644
--- a/SPIRV/CMakeLists.txt
+++ b/SPIRV/CMakeLists.txt
@@ -91,14 +91,19 @@ if(WIN32 AND BUILD_SHARED_LIBS)
endif()
if(ENABLE_OPT)
- target_include_directories(SPIRV
- PRIVATE ${spirv-tools_SOURCE_DIR}/include
- PRIVATE ${spirv-tools_SOURCE_DIR}/source
- )
- target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt)
- target_include_directories(SPIRV PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
+ if(SPIRV-Tools_FOUND)
+ target_include_directories(SPIRV PUBLIC ${SPIRV-Tools_INCLUDEDIR})
+ target_link_libraries(SPIRV glslang ${SPIRV-Tools_LIBRARIES})
+ else()
+ target_include_directories(SPIRV
+ PRIVATE ${spirv-tools_SOURCE_DIR}/include
+ PRIVATE ${spirv-tools_SOURCE_DIR}/source
+ )
+ target_link_libraries(SPIRV PRIVATE MachineIndependent SPIRV-Tools-opt)
+ target_include_directories(SPIRV PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/External>)
+ endif()
else()
target_link_libraries(SPIRV PRIVATE MachineIndependent)
endif(ENABLE_OPT)
--
2.28.0