From: Jordan Justen <jordan.l.justen@intel.com>
Date: Wed, 27 Jun 2018 20:28:49 -0700
Subject: use debian glslang for renderdoc spirv driver

Update for SPIR-V changes needed for 1.5+dfsg-2. These fix FTBRS in
1.5+dfsg-1.
---
 renderdoc/CMakeLists.txt                           |  9 +++
 renderdoc/data/glsl_shaders.cpp                    |  2 +-
 renderdoc/driver/gl/gl_shader_refl.cpp             |  2 +-
 renderdoc/driver/shaders/spirv/CMakeLists.txt      | 91 +---------------------
 renderdoc/driver/shaders/spirv/glslang_compile.cpp |  4 +-
 renderdoc/driver/shaders/spirv/spirv_compile.cpp   |  2 +-
 6 files changed, 15 insertions(+), 95 deletions(-)

diff --git a/renderdoc/CMakeLists.txt b/renderdoc/CMakeLists.txt
index 887895e..aa2f552 100644
--- a/renderdoc/CMakeLists.txt
+++ b/renderdoc/CMakeLists.txt
@@ -519,6 +519,15 @@ if(ENABLE_GL OR ENABLE_GLES OR ENABLE_VULKAN)
 
     add_subdirectory(driver/shaders/spirv)
     list(APPEND renderdoc_objects $<TARGET_OBJECTS:rdoc_spirv>)
+    list(APPEND RDOC_LIBRARIES
+         PRIVATE -lglslang
+         PRIVATE -lHLSL
+         PRIVATE -lOGLCompiler
+         PRIVATE -lOSDependent
+         PRIVATE -lSPIRV
+         PRIVATE -lSPIRV-Tools-opt
+         PRIVATE -lSPIRV-Tools
+         PRIVATE -lSPIRV-Tools-link)
 endif()
 
 option(USE_INTERCEPTOR_LIB OFF)
diff --git a/renderdoc/data/glsl_shaders.cpp b/renderdoc/data/glsl_shaders.cpp
index dd79c1f..ffbd27c 100644
--- a/renderdoc/data/glsl_shaders.cpp
+++ b/renderdoc/data/glsl_shaders.cpp
@@ -26,7 +26,7 @@
 #include "common/common.h"
 #include "common/formatting.h"
 #include "driver/shaders/spirv/glslang_compile.h"
-#include "glslang/glslang/Public/ShaderLang.h"
+#include "glslang/Public/ShaderLang.h"
 #include "os/os_specific.h"
 
 #define GLSL_HEADERS(HEADER) \
diff --git a/renderdoc/driver/gl/gl_shader_refl.cpp b/renderdoc/driver/gl/gl_shader_refl.cpp
index dfd871f..77dbbc9 100644
--- a/renderdoc/driver/gl/gl_shader_refl.cpp
+++ b/renderdoc/driver/gl/gl_shader_refl.cpp
@@ -26,7 +26,7 @@
 #include <algorithm>
 #include <functional>
 #include "driver/shaders/spirv/glslang_compile.h"
-#include "glslang/glslang/Public/ShaderLang.h"
+#include "glslang/Public/ShaderLang.h"
 #include "gl_driver.h"
 
 template <>
diff --git a/renderdoc/driver/shaders/spirv/CMakeLists.txt b/renderdoc/driver/shaders/spirv/CMakeLists.txt
index e5f2f41..79525b5 100644
--- a/renderdoc/driver/shaders/spirv/CMakeLists.txt
+++ b/renderdoc/driver/shaders/spirv/CMakeLists.txt
@@ -1,91 +1,3 @@
-set(glslang_dir ${RDOC_SOURCE_DIR}/3rdparty/glslang)
-set(glslang_sources
-    ${glslang_dir}/OGLCompilersDLL/InitializeDll.cpp
-    ${glslang_dir}/OGLCompilersDLL/InitializeDll.h
-    ${glslang_dir}/SPIRV/GlslangToSpv.cpp
-    ${glslang_dir}/SPIRV/GlslangToSpv.h
-    ${glslang_dir}/SPIRV/GLSL.std.450.h
-    ${glslang_dir}/SPIRV/GLSL.ext.AMD.h
-    ${glslang_dir}/SPIRV/GLSL.ext.EXT.h
-    ${glslang_dir}/SPIRV/GLSL.ext.KHR.h
-    ${glslang_dir}/SPIRV/GLSL.ext.NV.h
-    ${glslang_dir}/SPIRV/hex_float.h
-    ${glslang_dir}/SPIRV/InReadableOrder.cpp
-    ${glslang_dir}/SPIRV/Logger.cpp
-    ${glslang_dir}/SPIRV/Logger.h
-    ${glslang_dir}/SPIRV/SpvBuilder.cpp
-    ${glslang_dir}/SPIRV/SpvBuilder.h
-    ${glslang_dir}/SPIRV/SpvTools.cpp
-    ${glslang_dir}/SPIRV/SpvTools.h
-    ${glslang_dir}/SPIRV/SpvPostProcess.cpp
-    ${glslang_dir}/SPIRV/spvIR.h
-    ${glslang_dir}/glslang/GenericCodeGen/CodeGen.cpp
-    ${glslang_dir}/glslang/GenericCodeGen/Link.cpp
-    ${glslang_dir}/glslang/Include/arrays.h
-    ${glslang_dir}/glslang/Include/BaseTypes.h
-    ${glslang_dir}/glslang/Include/Common.h
-    ${glslang_dir}/glslang/Include/ConstantUnion.h
-    ${glslang_dir}/glslang/Include/InfoSink.h
-    ${glslang_dir}/glslang/Include/InitializeGlobals.h
-    ${glslang_dir}/glslang/Include/intermediate.h
-    ${glslang_dir}/glslang/Include/PoolAlloc.h
-    ${glslang_dir}/glslang/Include/ResourceLimits.h
-    ${glslang_dir}/glslang/Include/revision.h
-    ${glslang_dir}/glslang/Include/ShHandle.h
-    ${glslang_dir}/glslang/Include/Types.h
-    ${glslang_dir}/glslang/MachineIndependent/Constant.cpp
-    ${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp
-    ${glslang_dir}/glslang/MachineIndependent/glslang_tab.cpp.h
-    ${glslang_dir}/glslang/MachineIndependent/gl_types.h
-    ${glslang_dir}/glslang/MachineIndependent/iomapper.cpp
-    ${glslang_dir}/glslang/MachineIndependent/iomapper.h
-    ${glslang_dir}/glslang/MachineIndependent/gl_types.h
-    ${glslang_dir}/glslang/MachineIndependent/InfoSink.cpp
-    ${glslang_dir}/glslang/MachineIndependent/Initialize.cpp
-    ${glslang_dir}/glslang/MachineIndependent/Initialize.h
-    ${glslang_dir}/glslang/MachineIndependent/Intermediate.cpp
-    ${glslang_dir}/glslang/MachineIndependent/intermOut.cpp
-    ${glslang_dir}/glslang/MachineIndependent/IntermTraverse.cpp
-    ${glslang_dir}/glslang/MachineIndependent/limits.cpp
-    ${glslang_dir}/glslang/MachineIndependent/linkValidate.cpp
-    ${glslang_dir}/glslang/MachineIndependent/LiveTraverser.h
-    ${glslang_dir}/glslang/MachineIndependent/localintermediate.h
-    ${glslang_dir}/glslang/MachineIndependent/parseConst.cpp
-    ${glslang_dir}/glslang/MachineIndependent/ParseContextBase.cpp
-    ${glslang_dir}/glslang/MachineIndependent/ParseHelper.cpp
-    ${glslang_dir}/glslang/MachineIndependent/ParseHelper.h
-    ${glslang_dir}/glslang/MachineIndependent/PoolAlloc.cpp
-    ${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.cpp
-    ${glslang_dir}/glslang/MachineIndependent/propagateNoContraction.h
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpAtom.cpp
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.cpp
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpContext.h
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/Pp.cpp
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpScanner.cpp
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.cpp
-    ${glslang_dir}/glslang/MachineIndependent/preprocessor/PpTokens.h
-    ${glslang_dir}/glslang/MachineIndependent/reflection.cpp
-    ${glslang_dir}/glslang/MachineIndependent/reflection.h
-    ${glslang_dir}/glslang/MachineIndependent/RemoveTree.cpp
-    ${glslang_dir}/glslang/MachineIndependent/RemoveTree.h
-    ${glslang_dir}/glslang/MachineIndependent/ScanContext.h
-    ${glslang_dir}/glslang/MachineIndependent/Scan.cpp
-    ${glslang_dir}/glslang/MachineIndependent/Scan.h
-    ${glslang_dir}/glslang/MachineIndependent/ShaderLang.cpp
-    ${glslang_dir}/glslang/MachineIndependent/SymbolTable.cpp
-    ${glslang_dir}/glslang/MachineIndependent/SymbolTable.h
-    ${glslang_dir}/glslang/MachineIndependent/Versions.cpp
-    ${glslang_dir}/glslang/MachineIndependent/Versions.h
-    ${glslang_dir}/glslang/MachineIndependent/attribute.cpp
-    ${glslang_dir}/glslang/MachineIndependent/attribute.h
-    ${glslang_dir}/glslang/OSDependent/osinclude.h
-    ${glslang_dir}/glslang/Public/ShaderLang.h)
-
-if(UNIX)
-    list(APPEND glslang_sources
-        ${glslang_dir}/glslang/OSDependent/Unix/ossource.cpp)
-endif()
-
 set(sources
     glslang_compile.cpp
     glslang_compile.h
@@ -108,8 +20,7 @@ set(sources
     spirv_processor.h
     spirv_disassemble.cpp
     spirv_stringise.cpp
-    var_dispatch_helpers.h
-    ${glslang_sources})
+    var_dispatch_helpers.h)
 
 add_definitions(-DAMD_EXTENSIONS)
 add_definitions(-DNV_EXTENSIONS)
diff --git a/renderdoc/driver/shaders/spirv/glslang_compile.cpp b/renderdoc/driver/shaders/spirv/glslang_compile.cpp
index e2f1f2d..d2d8f17 100644
--- a/renderdoc/driver/shaders/spirv/glslang_compile.cpp
+++ b/renderdoc/driver/shaders/spirv/glslang_compile.cpp
@@ -29,8 +29,8 @@
 #undef min
 #undef max
 
-#include "glslang/glslang/Include/Types.h"
-#include "glslang/glslang/Public/ShaderLang.h"
+#include "glslang/Include/Types.h"
+#include "glslang/Public/ShaderLang.h"
 
 static bool glslang_inited = false;
 rdcarray<glslang::TShader *> *allocatedShaders = NULL;
diff --git a/renderdoc/driver/shaders/spirv/spirv_compile.cpp b/renderdoc/driver/shaders/spirv/spirv_compile.cpp
index 8fbf2f1..b3c1db9 100644
--- a/renderdoc/driver/shaders/spirv/spirv_compile.cpp
+++ b/renderdoc/driver/shaders/spirv/spirv_compile.cpp
@@ -32,7 +32,7 @@
 #undef max
 
 #include "glslang/SPIRV/GlslangToSpv.h"
-#include "glslang/glslang/Public/ShaderLang.h"
+#include "glslang/Public/ShaderLang.h"
 
 rdcstr rdcspv::Compile(const rdcspv::CompilationSettings &settings, const rdcarray<rdcstr> &sources,
                        rdcarray<uint32_t> &spirv)
