qt6-qtshadertools/qtshadertools-unbundle-glslang.patch
Jan Grulich f72d06cdbe Unbundle glslang
Resolves: RHEL-76115
2025-01-24 10:34:53 +01:00

92 lines
2.7 KiB
Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e68166a..97c942e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,6 +15,15 @@ project(QtShaderTools
find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core)
find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Gui)
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_glslang QUIET "glslang")
+pkg_check_modules(PC_spirv_tools QUIET "SPIRV-Tools")
+find_library(GLSLANG_RESOURCE_LIMITS_LIBRARY
+ NAMES libglslang-default-resource-limits.a
+ PATHS /usr/lib /usr/lib64
+ NO_DEFAULT_PATH
+)
qt_internal_project_setup()
if(INTEGRITY)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index cb0e25d..6a22710 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -3,6 +3,6 @@
# Generated from src.pro.
-add_subdirectory(glslang)
+# add_subdirectory(glslang)
add_subdirectory(SPIRV-Cross)
add_subdirectory(shadertools)
diff --git a/src/shadertools/CMakeLists.txt b/src/shadertools/CMakeLists.txt
index 04371a5..4a652bb 100644
--- a/src/shadertools/CMakeLists.txt
+++ b/src/shadertools/CMakeLists.txt
@@ -20,15 +20,15 @@ qt_internal_add_module(ShaderTools
DEFINES
QT_BUILD_SHADERTOOLS_LIB
INCLUDE_DIRECTORIES
+ ${PC_glslang_INCLUDE_DIRS}
../3rdparty/SPIRV-Cross
- ../3rdparty/glslang
LIBRARIES
Qt::GuiPrivate
# special case begin
Qt::BundledSpirv_Cross
- Qt::BundledGlslang_Glslang
- Qt::BundledGlslang_Spirv
- Qt::BundledGlslang_Osdependent
+ ${PC_glslang_LINK_LIBRARIES}
+ ${PC_spirv_tools_LINK_LIBRARIES}
+ ${GLSLANG_RESOURCE_LIMITS_LIBRARY}
# special case end
PUBLIC_LIBRARIES
Qt::Core
diff --git a/src/shadertools/qspirvcompiler.cpp b/src/shadertools/qspirvcompiler.cpp
index 4e97d48..b6fefb8 100644
--- a/src/shadertools/qspirvcompiler.cpp
+++ b/src/shadertools/qspirvcompiler.cpp
@@ -10,7 +10,7 @@ QT_WARNING_PUSH
QT_WARNING_DISABLE_GCC("-Wsuggest-override")
#include <glslang/Public/ShaderLang.h>
#include <glslang/Public/ResourceLimits.h>
-#include <SPIRV/GlslangToSpv.h>
+#include <glslang/SPIRV/GlslangToSpv.h>
QT_WARNING_POP
//#define TOKENIZER_DEBUG
@@ -47,8 +47,6 @@ bool QSpirvCompilerPrivate::readFile(const QString &fn)
return true;
}
-using namespace QtShaderTools;
-
class Includer : public glslang::TShader::Includer
{
public:
diff --git a/src/shadertools/qspirvshaderremap.cpp b/src/shadertools/qspirvshaderremap.cpp
index e45161d..d8d4bfe 100644
--- a/src/shadertools/qspirvshaderremap.cpp
+++ b/src/shadertools/qspirvshaderremap.cpp
@@ -3,7 +3,7 @@
#include "qspirvshaderremap_p.h"
-#include <SPIRV/SPVRemapper.h>
+#include <glslang/SPIRV/SPVRemapper.h>
QT_BEGIN_NAMESPACE