summaryrefslogtreecommitdiff
path: root/0001-pkg-config-compatibility.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-pkg-config-compatibility.patch')
-rw-r--r--0001-pkg-config-compatibility.patch200
1 files changed, 200 insertions, 0 deletions
diff --git a/0001-pkg-config-compatibility.patch b/0001-pkg-config-compatibility.patch
new file mode 100644
index 0000000..888bf77
--- /dev/null
+++ b/0001-pkg-config-compatibility.patch
@@ -0,0 +1,200 @@
+diff -up glslang-sdk-1.3.275.0/CMakeLists.txt.dma glslang-sdk-1.3.275.0/CMakeLists.txt
+--- glslang-sdk-1.3.275.0/CMakeLists.txt.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/CMakeLists.txt 2023-09-05 13:21:45.113297799 +1000
+@@ -106,6 +106,13 @@ endif()
+
+ option(ENABLE_PCH "Enables Precompiled header" ON)
+
++# using pkg-config to configure include paths and link libraries
++include(FindPkgConfig)
++pkg_check_modules(SPIRV_TOOLS REQUIRED SPIRV-Tools>=2019.2.1)
++if(BUILD_SHARED_LIBS)
++ pkg_check_modules(SPIRV_TOOLS_SHARED REQUIRED SPIRV-Tools-shared>=2019.2.1)
++endif(BUILD_SHARED_LIBS)
++
+ if(ENABLE_HLSL)
+ add_compile_definitions(ENABLE_HLSL)
+ endif()
+@@ -264,27 +271,7 @@ if(BUILD_EXTERNAL AND IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/External)
+ add_subdirectory(External)
+ endif()
+
+-option(ALLOW_EXTERNAL_SPIRV_TOOLS "Allows to build against installed SPIRV-Tools-opt. This is unsupported if the commit isn't the one in known_good.json")
+-if(NOT TARGET SPIRV-Tools-opt)
+- if(ALLOW_EXTERNAL_SPIRV_TOOLS)
+- # Look for external SPIR-V Tools build, if not building in-tree
+- message(STATUS "Trying to find local SPIR-V tools")
+- find_package(SPIRV-Tools-opt)
+- if(NOT TARGET SPIRV-Tools-opt)
+- if(ENABLE_OPT)
+- message(WARNING "ENABLE_OPT set but SPIR-V tools not found! Disabling SPIR-V optimization.")
+- endif()
+- set(ENABLE_OPT OFF)
+- endif()
+- else()
+- if(ENABLE_OPT)
+- message(SEND_ERROR "ENABLE_OPT set but SPIR-V tools not found. Please run update_glslang_sources.py, "
+- "set the ALLOW_EXTERNAL_SPIRV_TOOLS option to use a local install of SPIRV-Tools, or set ENABLE_OPT=0.")
+- endif()
+- endif()
+-endif()
+-
+-if(ENABLE_OPT)
++if(${SPIRV_TOOLS_FOUND} EQUAL 1)
+ message(STATUS "optimizer enabled")
+ add_definitions(-DENABLE_OPT=1)
+ else()
+@@ -349,9 +336,6 @@ if (GLSLANG_ENABLE_INSTALL)
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/glslang-config.cmake.in" [=[
+ @PACKAGE_INIT@
+ include(CMakeFindDependencyMacro)
+- if(@ENABLE_OPT@)
+- find_dependency(SPIRV-Tools-opt)
+- endif()
+ @INSTALL_CONFIG_UNIX@
+ include("@PACKAGE_PATH_EXPORT_TARGETS@")
+ ]=])
+diff -up glslang-sdk-1.3.275.0/External/CMakeLists.txt.dma glslang-sdk-1.3.275.0/External/CMakeLists.txt
+--- glslang-sdk-1.3.275.0/External/CMakeLists.txt.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/External/CMakeLists.txt 2023-09-05 13:21:45.113297799 +1000
+@@ -68,10 +68,4 @@ if(GLSLANG_TESTS)
+ endif()
+ endif()
+
+-if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt)
+- if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
+- set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
+- add_subdirectory(spirv-tools)
+- endif()
+-endif()
+
+
+diff -up glslang-sdk-1.3.275.0/glslang/CMakeLists.txt.dma glslang-sdk-1.3.275.0/glslang/CMakeLists.txt
+--- glslang-sdk-1.3.275.0/glslang/CMakeLists.txt.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/glslang/CMakeLists.txt 2023-09-05 13:21:45.114297825 +1000
+@@ -232,6 +232,8 @@ if(GLSLANG_ENABLE_INSTALL)
+ if(NOT BUILD_SHARED_LIBS)
+ install(TARGETS MachineIndependent EXPORT glslang-targets)
+ install(TARGETS GenericCodeGen EXPORT glslang-targets)
++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/glslang.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc @ONLY)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/glslang.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ endif()
+
+ set(PUBLIC_HEADERS
+
+diff -up glslang-sdk-1.3.275.0/glslang/glslang.pc.cmake.in.dma glslang-sdk-1.3.275.0/glslang/glslang.pc.cmake.in
+--- glslang-sdk-1.3.275.0/glslang/glslang.pc.cmake.in.dma 2023-09-05 13:21:45.115297852 +1000
++++ glslang-sdk-1.3.275.0/glslang/glslang.pc.cmake.in 2023-09-05 13:21:45.115297852 +1000
+@@ -0,0 +1,11 @@
++ prefix=@CMAKE_INSTALL_PREFIX@
++ exec_prefix=@CMAKE_INSTALL_PREFIX@
++ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
++ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++ Name: @PROJECT_NAME@
++ Description: OpenGL and OpenGL ES shader front end and validator
++ Requires:
++ Version: @VERSION@
++ Libs: -L${libdir} -lglslang -lOSDependent -lHLSL -lOGLCompiler -lSPVRemapper
++ Cflags: -I${includedir}
+\ No newline at end of file
+diff -up glslang-sdk-1.3.275.0/SPIRV/CMakeLists.txt.dma glslang-sdk-1.3.275.0/SPIRV/CMakeLists.txt
+--- glslang-sdk-1.3.275.0/SPIRV/CMakeLists.txt.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/SPIRV/CMakeLists.txt 2023-09-05 13:21:45.116297879 +1000
+@@ -89,6 +89,10 @@ target_include_directories(SPIRV PUBLIC
+
+ glslang_add_build_info_dependency(SPIRV)
+
++
++set(SPIRV_NAME spirv)
++set(SPIRV_VERSION 1.5.5)
++
+ if (ENABLE_SPVREMAPPER)
+ add_library(SPVRemapper ${LIB_TYPE} ${SPVREMAP_SOURCES} ${SPVREMAP_HEADERS})
+ set_target_properties(SPVRemapper PROPERTIES
+@@ -105,10 +109,17 @@ if(WIN32 AND BUILD_SHARED_LIBS)
+ endif()
+ endif()
+
++target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS})
++target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_CFLAGS_OTHER})
++target_link_libraries(SPIRV ${SPIRV_TOOLS_LIBRARIES})
++if(BUILD_SHARED_LIBS)
++ target_include_directories(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS})
++ target_compile_options(SPIRV PUBLIC ${SPIRV_TOOLS_SHARED_CFLAGS_OTHER})
++ target_link_libraries(SPIRV ${SPIRV_TOOLS_SHARED_LIBRARIES})
++endif(BUILD_SHARED_LIBS)
++
+ if(ENABLE_OPT)
+- target_link_libraries(SPIRV PRIVATE MachineIndependent PUBLIC SPIRV-Tools-opt)
+- target_include_directories(SPIRV PUBLIC
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
++ target_link_libraries(SPIRV glslang)
+ else()
+ target_link_libraries(SPIRV PRIVATE MachineIndependent)
+ endif()
+@@ -125,5 +125,9 @@ if(GLSLANG_ENABLE_INSTALL)
+
+ install(TARGETS SPIRV EXPORT glslang-targets)
+
++ # spirv.pc Configuration
++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/spirv.pc.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/spirv.pc @ONLY)
++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/spirv.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++
+ install(FILES ${PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glslang/SPIRV/)
+ endif()
+diff -up glslang-sdk-1.3.275.0/SPIRV/spirv.pc.cmake.in.dma glslang-sdk-1.3.275.0/SPIRV/spirv.pc.cmake.in
+--- glslang-sdk-1.3.275.0/SPIRV/spirv.pc.cmake.in.dma 2023-09-05 13:21:45.116297879 +1000
++++ glslang-sdk-1.3.275.0/SPIRV/spirv.pc.cmake.in 2023-09-05 13:21:45.116297879 +1000
+@@ -0,0 +1,11 @@
++ prefix=@CMAKE_INSTALL_PREFIX@
++ exec_prefix=@CMAKE_INSTALL_PREFIX@
++ libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
++ includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++ Name: @SPIRV_NAME@
++ Description: SPIR-V is a binary intermediate language for representing graphical-shader stages and compute kernels for multiple Khronos APIs, including OpenCL, OpenGL, and Vulkan
++ Requires:
++ Version: @SPIRV_VERSION@
++ Libs: -L${libdir} -lSPIRV
++ Cflags: -I${includedir}
+\ No newline at end of file
+diff -up glslang-sdk-1.3.275.0/SPIRV/SpvTools.cpp.dma glslang-sdk-1.3.275.0/SPIRV/SpvTools.cpp
+--- glslang-sdk-1.3.275.0/SPIRV/SpvTools.cpp.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/SPIRV/SpvTools.cpp 2023-09-05 13:21:45.117297906 +1000
+@@ -43,7 +43,7 @@
+ #include <iostream>
+
+ #include "SpvTools.h"
+-#include "spirv-tools/optimizer.hpp"
++#include <spirv-tools/optimizer.hpp>
+
+ namespace glslang {
+
+diff -up glslang-sdk-1.3.275.0/StandAlone/CMakeLists.txt.dma glslang-sdk-1.3.275.0/StandAlone/CMakeLists.txt
+--- glslang-sdk-1.3.275.0/StandAlone/CMakeLists.txt.dma 2023-08-09 04:49:36.000000000 +1000
++++ glslang-sdk-1.3.275.0/StandAlone/CMakeLists.txt 2023-09-05 13:22:23.806333232 +1000
+@@ -63,6 +63,14 @@ set(LIBRARIES
+ SPIRV
+ glslang-default-resource-limits)
+
++if(BUILD_SHARED_LIBS)
++ set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_SHARED_LIBRARIES})
++ target_include_directories(glslang-standalone PUBLIC ${SPIRV_TOOLS_SHARED_INCLUDE_DIRS})
++else()
++ set(LIBRARIES ${LIBRARIES} ${SPIRV_TOOLS_LIBRARIES})
++ target_include_directories(glslang-standalone PUBLIC ${SPIRV_TOOLS_INCLUDE_DIRS})
++endif(BUILD_SHARED_LIBS)
++
+ if(WIN32)
+ set(LIBRARIES ${LIBRARIES} psapi)
+ elseif(UNIX)
+@@ -72,8 +80,6 @@ elseif(UNIX)
+ endif()
+
+ target_link_libraries(glslang-standalone ${LIBRARIES})
+-target_include_directories(glslang-standalone PUBLIC
+- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../External>)
+
+ if(ENABLE_SPVREMAPPER)
+ set(REMAPPER_SOURCES spirv-remap.cpp)