Externals: Update glslang to 16.0.0 and allow using system glslang

This commit is contained in:
Joshua Vandaële
2025-09-27 05:12:07 +02:00
parent ba2acb872c
commit cdfb389509
11 changed files with 20 additions and 29 deletions

View File

@@ -651,7 +651,7 @@ dolphin_find_optional_system_library_pkgconfig(FMT
add_subdirectory(Externals/imgui)
add_subdirectory(Externals/implot)
add_subdirectory(Externals/glslang)
dolphin_find_optional_system_library(glslang Externals/glslang 15.0)
# SPIRV-Cross is used on Windows for GLSL to HLSL conversion for the Direct3D 11 and Direct3D 12
# video backends, and on Apple devices for the Metal video backend.
if(WIN32 OR APPLE)

View File

@@ -1,7 +1,6 @@
set(ENABLE_PCH OFF)
set(BUILD_EXTERNAL OFF)
set(SKIP_GLSLANG_INSTALL ON)
set(ENABLE_SPVREMAPPER OFF)
set(ENABLE_GLSLANG_BINARIES OFF)
set(ENABLE_HLSL OFF)
set(ENABLE_OPT OFF)
@@ -10,5 +9,13 @@ set(ENABLE_EXCEPTIONS OFF)
add_subdirectory(glslang)
if (TARGET glslang)
target_include_directories(glslang
# Silence warnings on glslang by flagging it as a system include
SYSTEM PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/glslang>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/glslang/Public>
PUBLIC
"${CMAKE_CURRENT_SOURCE_DIR}"
)
dolphin_disable_warnings(glslang)
endif()

View File

@@ -2,6 +2,7 @@
<Project>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(ExternalsDir)glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)glslang\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)glslang\glslang\glslang;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(ExternalsDir)glslang\glslang\glslang\Public;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

View File

@@ -12,15 +12,8 @@ PUBLIC
common
videocommon
spirv_cross
)
target_include_directories(videod3dcommon
SYSTEM PUBLIC
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/Public
SYSTEM PRIVATE
${CMAKE_SOURCE_DIR}/Externals/glslang/StandAlone
${CMAKE_SOURCE_DIR}/Externals/glslang/SPIRV
${CMAKE_SOURCE_DIR}/Externals/glslang
PRIVATE
glslang::glslang
)
if(MSVC)

View File

@@ -8,8 +8,8 @@
#include <string_view>
#include <fmt/format.h>
#include <glslang/SPIRV/disassemble.h>
#include <wrl/client.h>
#include "disassemble.h"
#include "spirv_hlsl.hpp"
#include "Common/Assert.h"

View File

@@ -35,6 +35,7 @@ PUBLIC
videocommon
PRIVATE
spirv_cross
glslang::glslang
${FOUNDATION_LIBRARY}
${METAL_LIBRARY}
${QUARTZCORE_LIBRARY}

View File

@@ -44,7 +44,7 @@ PUBLIC
PRIVATE
# Link against glslang, the other necessary libraries are referenced by the executable.
glslang
glslang::glslang
xxhash::xxhash
)

View File

@@ -224,7 +224,7 @@ PRIVATE
xxhash::xxhash
imgui
implot
glslang
glslang::glslang
tinygltf
)
@@ -267,16 +267,6 @@ if(FFmpeg_FOUND)
endif()
endif()
# Silence warnings on glslang by flagging it as a system include
target_include_directories(videocommon
SYSTEM PUBLIC
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/glslang/Public
SYSTEM PRIVATE
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/glslang
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang/SPIRV
${CMAKE_SOURCE_DIR}/Externals/glslang/glslang
)
if(MSVC)
# Add precompiled header
target_link_libraries(videocommon PRIVATE use_pch)

View File

@@ -3,9 +3,8 @@
#include "VideoCommon/Spirv.h"
// glslang includes
#include "GlslangToSpv.h"
#include "disassemble.h"
#include <glslang/SPIRV/GlslangToSpv.h>
#include <glslang/SPIRV/disassemble.h>
#include "Common/FileUtil.h"
#include "Common/Logging/Log.h"

View File

@@ -8,7 +8,7 @@
#include <string_view>
#include <vector>
#include "ShaderLang.h"
#include <glslang/Public/ShaderLang.h>
#include "Common/CommonTypes.h"
#include "VideoCommon/VideoCommon.h"