mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	Build: Favor git repositories over in-tree patches
Too messy.
This commit is contained in:
		
							parent
							
								
									876f212685
								
							
						
					
					
						commit
						b6b0997e70
					
				|  | @ -58,7 +58,7 @@ STRIP=strip | |||
| declare -a MANUAL_LIBS=( | ||||
| 	"libdiscord-rpc.so" | ||||
| 	"libshaderc_shared.so" | ||||
| 	"libspirv-cross-c-shared.so" | ||||
| 	"libspirv-cross-c-shared.so.0.61.0" | ||||
| ) | ||||
| 
 | ||||
| declare -a MANUAL_QT_LIBS=( | ||||
|  |  | |||
|  | @ -22,13 +22,10 @@ SDL2=2.30.5 | |||
| QT=6.7.2 | ||||
| ZSTD=1.5.6 | ||||
| 
 | ||||
| SHADERC=2024.1 | ||||
| SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec | ||||
| SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 | ||||
| SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 | ||||
| SPIRV_CROSS=vulkan-sdk-1.3.283.0 | ||||
| CPUINFO=05332fd802d9109a2a151ec32154b107c1e5caf9 | ||||
| CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 | ||||
| DISCORD_RPC=842c15192041f8e71c512851834f4dadb1a554fb | ||||
| SHADERC=feb2460bf3a504d67011246edeb810c45ea58826 | ||||
| SPIRV_CROSS=vulkan-sdk-1.3.290.0 | ||||
| 
 | ||||
| mkdir -p deps-build | ||||
| cd deps-build | ||||
|  | @ -46,13 +43,9 @@ fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01  qtsvg-everywhe | |||
| 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a  qttools-everywhere-src-$QT.tar.xz | ||||
| 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9  qttranslations-everywhere-src-$QT.tar.xz | ||||
| a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b  qtwayland-everywhere-src-$QT.tar.xz | ||||
| eb3b5f0c16313d34f208d90c2fa1e588a23283eed63b101edd5422be6165d528  shaderc-$SHADERC.tar.gz | ||||
| aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f  shaderc-glslang-$SHADERC_GLSLANG.tar.gz | ||||
| 5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697  shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz | ||||
| 03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47  shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz | ||||
| 3376a58abe186a695a50ff12697d210ce27673cea5de1a5090cb2b092b261414  SPIRV-Cross-$SPIRV_CROSS.tar.gz | ||||
| 74a8d9ae0b8b45b39d35708c873320de227bbfe01a46e4d2a91818b8877f4137  cpuinfo-$CPUINFO.tar.gz | ||||
| e1351218d270db49c3dddcba04fb2153b09731ea3fa6830e423f5952f44585be  cpuinfo-$CPUINFO.tar.gz | ||||
| acb111ebdb4f1459899b9c594be81ed284de23ac0f5376e5963aad16df98584f  discord-rpc-$DISCORD_RPC.tar.gz | ||||
| 5a7f86eba3c6301bb573def825977c31aa3d5fc5500f213c123498707fdbd378  shaderc-$SHADERC.tar.gz | ||||
| EOF | ||||
| 
 | ||||
| curl -C - -L \ | ||||
|  | @ -68,16 +61,17 @@ curl -C - -L \ | |||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \ | ||||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \ | ||||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" \ | ||||
| 	-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \ | ||||
| 	-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \ | ||||
| 	-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \ | ||||
| 	-o "shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Tools/archive/$SHADERC_SPIRVTOOLS.tar.gz" \ | ||||
| 	-o "SPIRV-Cross-$SPIRV_CROSS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Cross/archive/refs/tags/$SPIRV_CROSS.tar.gz" \ | ||||
| 	-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/pytorch/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 	-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" | ||||
| 	-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 	-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \ | ||||
| 	-o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" | ||||
| 
 | ||||
| shasum -a 256 --check SHASUMS | ||||
| 
 | ||||
| # Have to clone with git, because it does version detection. | ||||
| if [ ! -d "SPIRV-Cross" ]; then | ||||
|   git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS --depth 1 | ||||
| fi | ||||
| 
 | ||||
| echo "Building libbacktrace..." | ||||
| rm -fr "libbacktrace-$LIBBACKTRACE" | ||||
| unzip "$LIBBACKTRACE.zip" | ||||
|  | @ -236,41 +230,29 @@ echo "Building shaderc..." | |||
| rm -fr "shaderc-$SHADERC" | ||||
| tar xf "shaderc-$SHADERC.tar.gz" | ||||
| cd "shaderc-$SHADERC" | ||||
| cd third_party | ||||
| tar xf "../../shaderc-glslang-$SHADERC_GLSLANG.tar.gz" | ||||
| mv "glslang-$SHADERC_GLSLANG" "glslang" | ||||
| tar xf "../../shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" | ||||
| mv "SPIRV-Headers-$SHADERC_SPIRVHEADERS" "spirv-headers" | ||||
| tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" | ||||
| mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools" | ||||
| cd .. | ||||
| patch -p1 < "$SCRIPTDIR/shaderc-changes.patch" | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja | ||||
| cmake --build build --parallel | ||||
| ninja -C build install | ||||
| cd .. | ||||
| 
 | ||||
| echo "Building SPIRV-Cross" | ||||
| rm -fr "SPIRV-Cross-$SPIRV_CROSS" | ||||
| tar xf "SPIRV-Cross-$SPIRV_CROSS.tar.gz" | ||||
| cd "SPIRV-Cross-$SPIRV_CROSS" | ||||
| patch -p1 < "$SCRIPTDIR/spirv-cross-changes.patch" | ||||
| echo "Building SPIRV-Cross..." | ||||
| cd SPIRV-Cross | ||||
| rm -fr build | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSPIRV_CROSS_SHARED=ON -DSPIRV_CROSS_STATIC=OFF -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_ENABLE_GLSL=ON -DSPIRV_CROSS_ENABLE_HLSL=OFF -DSPIRV_CROSS_ENABLE_MSL=OFF -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build -G Ninja | ||||
| cmake --build build --parallel | ||||
| ninja -C build install | ||||
| cd .. | ||||
| 
 | ||||
| echo "Building cpuinfo" | ||||
| echo "Building cpuinfo..." | ||||
| rm -fr "cpuinfo-$CPUINFO" | ||||
| tar xf "cpuinfo-$CPUINFO.tar.gz" | ||||
| cd "cpuinfo-$CPUINFO" | ||||
| patch -p1 < "$SCRIPTDIR/cpuinfo-changes.patch" | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build -G Ninja | ||||
| cmake --build build --parallel | ||||
| ninja -C build install | ||||
| cd .. | ||||
| 
 | ||||
| echo "Building discord-rpc" | ||||
| echo "Building discord-rpc..." | ||||
| rm -fr "discord-rpc-$DISCORD_RPC" | ||||
| tar xf "discord-rpc-$DISCORD_RPC.tar.gz" | ||||
| cd "discord-rpc-$DISCORD_RPC" | ||||
|  | @ -281,4 +263,4 @@ cd .. | |||
| 
 | ||||
| echo "Cleaning up..." | ||||
| cd .. | ||||
| rm -r deps-build | ||||
| rm -fr deps-build | ||||
|  |  | |||
|  | @ -44,13 +44,10 @@ LIBWEBP=1.4.0 | |||
| MOLTENVK=1.2.9 | ||||
| QT=6.7.2 | ||||
| 
 | ||||
| SHADERC=2024.1 | ||||
| SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec | ||||
| SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 | ||||
| SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 | ||||
| SPIRV_CROSS=vulkan-sdk-1.3.283.0 | ||||
| CPUINFO=05332fd802d9109a2a151ec32154b107c1e5caf9 | ||||
| CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 | ||||
| DISCORD_RPC=842c15192041f8e71c512851834f4dadb1a554fb | ||||
| SHADERC=feb2460bf3a504d67011246edeb810c45ea58826 | ||||
| SPIRV_CROSS=vulkan-sdk-1.3.290.0 | ||||
| 
 | ||||
| mkdir -p deps-build | ||||
| cd deps-build | ||||
|  | @ -84,13 +81,9 @@ e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6  qtimageformats | |||
| fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01  qtsvg-everywhere-src-$QT.tar.xz | ||||
| 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a  qttools-everywhere-src-$QT.tar.xz | ||||
| 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9  qttranslations-everywhere-src-$QT.tar.xz | ||||
| eb3b5f0c16313d34f208d90c2fa1e588a23283eed63b101edd5422be6165d528  shaderc-$SHADERC.tar.gz | ||||
| aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f  shaderc-glslang-$SHADERC_GLSLANG.tar.gz | ||||
| 5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697  shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz | ||||
| 03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47  shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz | ||||
| 3376a58abe186a695a50ff12697d210ce27673cea5de1a5090cb2b092b261414  SPIRV-Cross-$SPIRV_CROSS.tar.gz | ||||
| 74a8d9ae0b8b45b39d35708c873320de227bbfe01a46e4d2a91818b8877f4137  cpuinfo-$CPUINFO.tar.gz | ||||
| e1351218d270db49c3dddcba04fb2153b09731ea3fa6830e423f5952f44585be  cpuinfo-$CPUINFO.tar.gz | ||||
| acb111ebdb4f1459899b9c594be81ed284de23ac0f5376e5963aad16df98584f  discord-rpc-$DISCORD_RPC.tar.gz | ||||
| 5a7f86eba3c6301bb573def825977c31aa3d5fc5500f213c123498707fdbd378  shaderc-$SHADERC.tar.gz | ||||
| 
 | ||||
| EOF | ||||
| 
 | ||||
|  | @ -108,16 +101,17 @@ curl -L \ | |||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \ | ||||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \ | ||||
| 	-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \ | ||||
| 	-o "shaderc-$SHADERC.tar.gz" "https://github.com/google/shaderc/archive/refs/tags/v$SHADERC.tar.gz" \ | ||||
| 	-o "shaderc-glslang-$SHADERC_GLSLANG.tar.gz" "https://github.com/KhronosGroup/glslang/archive/$SHADERC_GLSLANG.tar.gz" \ | ||||
| 	-o "shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Headers/archive/$SHADERC_SPIRVHEADERS.tar.gz" \ | ||||
| 	-o "shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Tools/archive/$SHADERC_SPIRVTOOLS.tar.gz" \ | ||||
| 	-o "SPIRV-Cross-$SPIRV_CROSS.tar.gz" "https://github.com/KhronosGroup/SPIRV-Cross/archive/refs/tags/$SPIRV_CROSS.tar.gz" \ | ||||
| 	-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/pytorch/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 	-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" | ||||
| 	-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \ | ||||
| 	-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \ | ||||
| 	-o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" | ||||
| 
 | ||||
| shasum -a 256 --check SHASUMS | ||||
| 
 | ||||
| # Have to clone with git, because it does version detection. | ||||
| if [ ! -d "SPIRV-Cross" ]; then | ||||
|   git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS --depth 1 | ||||
| fi | ||||
| 
 | ||||
| echo "Installing SDL2..." | ||||
| rm -fr "SDL2-$SDL2" | ||||
| tar xf "SDL2-$SDL2.tar.gz" | ||||
|  | @ -319,25 +313,14 @@ echo "Building shaderc..." | |||
| rm -fr "shaderc-$SHADERC" | ||||
| tar xf "shaderc-$SHADERC.tar.gz" | ||||
| cd "shaderc-$SHADERC" | ||||
| cd third_party | ||||
| tar xf "../../shaderc-glslang-$SHADERC_GLSLANG.tar.gz" | ||||
| mv "glslang-$SHADERC_GLSLANG" "glslang" | ||||
| tar xf "../../shaderc-spirv-headers-$SHADERC_SPIRVHEADERS.tar.gz" | ||||
| mv "SPIRV-Headers-$SHADERC_SPIRVHEADERS" "spirv-headers" | ||||
| tar xf "../../shaderc-spirv-tools-$SHADERC_SPIRVTOOLS.tar.gz" | ||||
| mv "SPIRV-Tools-$SHADERC_SPIRVTOOLS" "spirv-tools" | ||||
| cd .. | ||||
| patch -p1 < "$SCRIPTDIR/shaderc-changes.patch" | ||||
| cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build | ||||
| make -C build "-j$NPROCS" | ||||
| make -C build install | ||||
| cd .. | ||||
| 
 | ||||
| echo "Building SPIRV-Cross..." | ||||
| rm -fr "SPIRV-Cross-$SPIRV_CROSS" | ||||
| tar xf "SPIRV-Cross-$SPIRV_CROSS.tar.gz" | ||||
| cd "SPIRV-Cross-$SPIRV_CROSS" | ||||
| patch -p1 < "$SCRIPTDIR/spirv-cross-changes.patch" | ||||
| cd SPIRV-Cross | ||||
| rm -fr build | ||||
| cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSPIRV_CROSS_SHARED=ON -DSPIRV_CROSS_STATIC=OFF -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_ENABLE_GLSL=ON -DSPIRV_CROSS_ENABLE_HLSL=OFF -DSPIRV_CROSS_ENABLE_MSL=ON -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build | ||||
| cmake --build build --parallel | ||||
| cmake --install build | ||||
|  | @ -347,7 +330,6 @@ echo "Building cpuinfo..." | |||
| rm -fr "cpuinfo-$CPUINFO" | ||||
| tar xf "cpuinfo-$CPUINFO.tar.gz" | ||||
| cd "cpuinfo-$CPUINFO" | ||||
| patch -p1 < "$SCRIPTDIR/cpuinfo-changes.patch" | ||||
| cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build | ||||
| make -C build "-j$NPROCS" | ||||
| cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build-arm64 | ||||
|  |  | |||
|  | @ -54,13 +54,10 @@ set ZLIB=1.3.1 | |||
| set ZLIBSHORT=131 | ||||
| set ZSTD=1.5.6 | ||||
| 
 | ||||
| set SHADERC=2024.1 | ||||
| set SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec | ||||
| set SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 | ||||
| set SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 | ||||
| set SPIRV_CROSS=vulkan-sdk-1.3.283.0 | ||||
| set CPUINFO=05332fd802d9109a2a151ec32154b107c1e5caf9 | ||||
| set CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 | ||||
| set DISCORD_RPC=842c15192041f8e71c512851834f4dadb1a554fb | ||||
| set SHADERC=feb2460bf3a504d67011246edeb810c45ea58826 | ||||
| set SPIRV_CROSS=vulkan-sdk-1.3.290.0 | ||||
| 
 | ||||
| call :downloadfile "freetype-%FREETYPE%.tar.gz" https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz 1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5 || goto error | ||||
| call :downloadfile "harfbuzz-%HARFBUZZ%.zip" https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.zip b2bc56184ae37324bc4829fde7d3f9e6916866ad711ee85792e457547c9fd127 || goto error | ||||
|  | @ -77,13 +74,13 @@ call :downloadfile "zlib%ZLIBSHORT%.zip" "https://zlib.net/zlib%ZLIBSHORT%.zip" | |||
| call :downloadfile "zstd-%ZSTD%.zip" "https://github.com/facebook/zstd/archive/refs/tags/v%ZSTD%.zip" 3b1c3b46e416d36931efd34663122d7f51b550c87f74de2d38249516fe7d8be5 || goto error | ||||
| call :downloadfile "zstd-fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch" https://github.com/facebook/zstd/commit/fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch 675f144b11f8ab2424b64bed8ccdca5d3f35b9326046fa7a883925dd180f0651 || goto error | ||||
| 
 | ||||
| call :downloadfile "cpuinfo-%CPUINFO%.zip" "https://github.com/pytorch/cpuinfo/archive/%CPUINFO%.zip" d4a3e252d04b55b1a3bec800fcf2eee36746a2f54405280a9c8355306e09ebe4 || goto error | ||||
| call :downloadfile "cpuinfo-%CPUINFO%.zip" "https://github.com/pytorch/cpuinfo/archive/%CPUINFO%.zip" 13146ae7983d767a678dd01b0d6af591e77cec82babd41264b9164ab808d7d41 || goto error | ||||
| call :downloadfile "discord-rpc-%DISCORD_RPC%.zip" "https://github.com/stenzek/discord-rpc/archive/%DISCORD_RPC%.zip" 2a32201439fc2ddfc9c0ea4f4f7cfce40706983b9abac22cdba4ce750bcb55a1 || goto error | ||||
| call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/google/shaderc/archive/refs/tags/v%SHADERC%.zip" 6c9f42ed6bf42750f5369b089909abfdcf0101488b4a1f41116d5159d00af8e7 || goto error | ||||
| call :downloadfile "shaderc-glslang-%SHADERC_GLSLANG%.zip" "https://github.com/KhronosGroup/glslang/archive/%SHADERC_GLSLANG%.zip" 03ad8a6fa987af4653d0cfe6bdaed41bcf617f1366a151fb1574da75950cd3e8 || goto error | ||||
| call :downloadfile "shaderc-spirv-headers-%SHADERC_SPIRVHEADERS%.zip" "https://github.com/KhronosGroup/SPIRV-Headers/archive/%SHADERC_SPIRVHEADERS%.zip" fa59a54334feaba5702b9c25724c3f4746123865769b36dd5a28d9ef5e9d39ab || goto error | ||||
| call :downloadfile "shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" "https://github.com/KhronosGroup/SPIRV-Tools/archive/%SHADERC_SPIRVTOOLS%.zip" bf385994c20293485b378c27dfdbd77a31b949deabccd9218a977f173eda9f6f || goto error | ||||
| call :downloadfile "SPIRV-Cross-%SPIRV_CROSS%.zip" "https://github.com/KhronosGroup/SPIRV-Cross/archive/refs/tags/%SPIRV_CROSS%.zip" 452e2c036c53b4cf5fbba9c2f34be3b43b0c5adbe3ccf3c2430cce826f82277b || goto error | ||||
| call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/stenzek/shaderc/archive/%SHADERC%.zip" a50687a3903328976c3a49f6ba6326196f7713660048957eb033408630af70b1 || goto error | ||||
| 
 | ||||
| if not exist SPIRV-Cross\ ( | ||||
|   git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b %SPIRV_CROSS% --depth 1 || goto error | ||||
| ) | ||||
| 
 | ||||
| if %DEBUG%==1 ( | ||||
|   echo Building debug and release libraries... | ||||
|  | @ -245,24 +242,14 @@ echo Building shaderc... | |||
| rmdir /S /Q "shaderc-%SHADERC%" | ||||
| %SEVENZIP% x "shaderc-%SHADERC%.zip" || goto error | ||||
| cd "shaderc-%SHADERC%" || goto error | ||||
| cd third_party || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-glslang-%SHADERC_GLSLANG%.zip" || goto error | ||||
| rename "glslang-%SHADERC_GLSLANG%" "glslang" || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-spirv-headers-%SHADERC_SPIRVHEADERS%.zip" || goto error | ||||
| rename "SPIRV-Headers-%SHADERC_SPIRVHEADERS%" "spirv-headers" || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" || goto error | ||||
| rename "SPIRV-Tools-%SHADERC_SPIRVTOOLS%" "spirv-tools" || goto error | ||||
| cd .. || goto error | ||||
| %PATCH% -p1 < "%SCRIPTDIR%\shaderc-changes.patch" || goto error | ||||
| cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -DSHADERC_ENABLE_SHARED_CRT=ON -B build -G Ninja || goto error | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
| cd .. || goto error | ||||
| 
 | ||||
| echo Building SPIRV-Cross... | ||||
| rmdir /S /Q "SPIRV-Cross-%SPIRV_CROSS%" | ||||
| %SEVENZIP% x "SPIRV-Cross-%SPIRV_CROSS%.zip" || goto error | ||||
| cd "SPIRV-Cross-%SPIRV_CROSS%" || goto error | ||||
| cd SPIRV-Cross || goto error | ||||
| rmdir /S /Q "build" | ||||
| cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSPIRV_CROSS_SHARED=ON -DSPIRV_CROSS_STATIC=OFF -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_ENABLE_GLSL=ON -DSPIRV_CROSS_ENABLE_HLSL=ON -DSPIRV_CROSS_ENABLE_MSL=OFF -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build -G Ninja | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
|  | @ -272,7 +259,6 @@ echo Building cpuinfo... | |||
| rmdir /S /Q "cpuinfo-%CPUINFO%" | ||||
| %SEVENZIP% x "cpuinfo-%CPUINFO%.zip" || goto error | ||||
| cd "cpuinfo-%CPUINFO%" || goto error | ||||
| %PATCH% -p1 < "%SCRIPTDIR%\cpuinfo-changes.patch" || goto error | ||||
| cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build -G Ninja | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
|  |  | |||
|  | @ -52,13 +52,10 @@ set ZLIB=1.3.1 | |||
| set ZLIBSHORT=131 | ||||
| set ZSTD=1.5.6 | ||||
| 
 | ||||
| set SHADERC=2024.1 | ||||
| set SHADERC_GLSLANG=142052fa30f9eca191aa9dcf65359fcaed09eeec | ||||
| set SHADERC_SPIRVHEADERS=5e3ad389ee56fca27c9705d093ae5387ce404df4 | ||||
| set SHADERC_SPIRVTOOLS=dd4b663e13c07fea4fbb3f70c1c91c86731099f7 | ||||
| set SPIRV_CROSS=vulkan-sdk-1.3.283.0 | ||||
| set CPUINFO=05332fd802d9109a2a151ec32154b107c1e5caf9 | ||||
| set CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 | ||||
| set DISCORD_RPC=842c15192041f8e71c512851834f4dadb1a554fb | ||||
| set SHADERC=feb2460bf3a504d67011246edeb810c45ea58826 | ||||
| set SPIRV_CROSS=vulkan-sdk-1.3.290.0 | ||||
| 
 | ||||
| call :downloadfile "freetype-%FREETYPE%.tar.gz" https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz 1ac27e16c134a7f2ccea177faba19801131116fd682efc1f5737037c5db224b5 || goto error | ||||
| call :downloadfile "harfbuzz-%HARFBUZZ%.zip" https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.zip b2bc56184ae37324bc4829fde7d3f9e6916866ad711ee85792e457547c9fd127 || goto error | ||||
|  | @ -75,13 +72,13 @@ call :downloadfile "zlib%ZLIBSHORT%.zip" "https://zlib.net/zlib%ZLIBSHORT%.zip" | |||
| call :downloadfile "zstd-%ZSTD%.zip" "https://github.com/facebook/zstd/archive/refs/tags/v%ZSTD%.zip" 3b1c3b46e416d36931efd34663122d7f51b550c87f74de2d38249516fe7d8be5 || goto error | ||||
| call :downloadfile "zstd-fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch" https://github.com/facebook/zstd/commit/fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch 675f144b11f8ab2424b64bed8ccdca5d3f35b9326046fa7a883925dd180f0651 || goto error | ||||
| 
 | ||||
| call :downloadfile "cpuinfo-%CPUINFO%.zip" "https://github.com/pytorch/cpuinfo/archive/%CPUINFO%.zip" d4a3e252d04b55b1a3bec800fcf2eee36746a2f54405280a9c8355306e09ebe4 || goto error | ||||
| call :downloadfile "cpuinfo-%CPUINFO%.zip" "https://github.com/pytorch/cpuinfo/archive/%CPUINFO%.zip" 13146ae7983d767a678dd01b0d6af591e77cec82babd41264b9164ab808d7d41 || goto error | ||||
| call :downloadfile "discord-rpc-%DISCORD_RPC%.zip" "https://github.com/stenzek/discord-rpc/archive/%DISCORD_RPC%.zip" 2a32201439fc2ddfc9c0ea4f4f7cfce40706983b9abac22cdba4ce750bcb55a1 || goto error | ||||
| call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/google/shaderc/archive/refs/tags/v%SHADERC%.zip" 6c9f42ed6bf42750f5369b089909abfdcf0101488b4a1f41116d5159d00af8e7 || goto error | ||||
| call :downloadfile "shaderc-glslang-%SHADERC_GLSLANG%.zip" "https://github.com/KhronosGroup/glslang/archive/%SHADERC_GLSLANG%.zip" 03ad8a6fa987af4653d0cfe6bdaed41bcf617f1366a151fb1574da75950cd3e8 || goto error | ||||
| call :downloadfile "shaderc-spirv-headers-%SHADERC_SPIRVHEADERS%.zip" "https://github.com/KhronosGroup/SPIRV-Headers/archive/%SHADERC_SPIRVHEADERS%.zip" fa59a54334feaba5702b9c25724c3f4746123865769b36dd5a28d9ef5e9d39ab || goto error | ||||
| call :downloadfile "shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" "https://github.com/KhronosGroup/SPIRV-Tools/archive/%SHADERC_SPIRVTOOLS%.zip" bf385994c20293485b378c27dfdbd77a31b949deabccd9218a977f173eda9f6f || goto error | ||||
| call :downloadfile "SPIRV-Cross-%SPIRV_CROSS%.zip" "https://github.com/KhronosGroup/SPIRV-Cross/archive/refs/tags/%SPIRV_CROSS%.zip" 452e2c036c53b4cf5fbba9c2f34be3b43b0c5adbe3ccf3c2430cce826f82277b || goto error | ||||
| call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/stenzek/shaderc/archive/%SHADERC%.zip" a50687a3903328976c3a49f6ba6326196f7713660048957eb033408630af70b1 || goto error | ||||
| 
 | ||||
| if not exist SPIRV-Cross\ ( | ||||
|   git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b %SPIRV_CROSS% --depth 1 || goto error | ||||
| ) | ||||
| 
 | ||||
| if %DEBUG%==1 ( | ||||
|   echo Building debug and release libraries... | ||||
|  | @ -242,24 +239,14 @@ echo Building shaderc... | |||
| rmdir /S /Q "shaderc-%SHADERC%" | ||||
| %SEVENZIP% x "shaderc-%SHADERC%.zip" || goto error | ||||
| cd "shaderc-%SHADERC%" || goto error | ||||
| cd third_party || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-glslang-%SHADERC_GLSLANG%.zip" || goto error | ||||
| rename "glslang-%SHADERC_GLSLANG%" "glslang" || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-spirv-headers-%SHADERC_SPIRVHEADERS%.zip" || goto error | ||||
| rename "SPIRV-Headers-%SHADERC_SPIRVHEADERS%" "spirv-headers" || goto error | ||||
| %SEVENZIP% x "..\..\shaderc-spirv-tools-%SHADERC_SPIRVTOOLS%.zip" || goto error | ||||
| rename "SPIRV-Tools-%SHADERC_SPIRVTOOLS%" "spirv-tools" || goto error | ||||
| cd .. || goto error | ||||
| %PATCH% -p1 < "%SCRIPTDIR%\shaderc-changes.patch" || goto error | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -DSHADERC_ENABLE_SHARED_CRT=ON -B build -G Ninja || goto error | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
| cd .. || goto error | ||||
| 
 | ||||
| echo Building SPIRV-Cross... | ||||
| rmdir /S /Q "SPIRV-Cross-%SPIRV_CROSS%" | ||||
| %SEVENZIP% x "SPIRV-Cross-%SPIRV_CROSS%.zip" || goto error | ||||
| cd "SPIRV-Cross-%SPIRV_CROSS%" || goto error | ||||
| cd SPIRV-Cross || goto error | ||||
| rmdir /S /Q "build" | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DSPIRV_CROSS_SHARED=ON -DSPIRV_CROSS_STATIC=OFF -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_ENABLE_GLSL=ON -DSPIRV_CROSS_ENABLE_HLSL=ON -DSPIRV_CROSS_ENABLE_MSL=OFF -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build -G Ninja | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
|  | @ -269,7 +256,6 @@ echo Building cpuinfo... | |||
| rmdir /S /Q "cpuinfo-%CPUINFO%" | ||||
| %SEVENZIP% x "cpuinfo-%CPUINFO%.zip" || goto error | ||||
| cd "cpuinfo-%CPUINFO%" || goto error | ||||
| %PATCH% -p1 < "%SCRIPTDIR%\cpuinfo-changes.patch" || goto error | ||||
| cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build -G Ninja | ||||
| cmake --build build --parallel || goto error | ||||
| ninja -C build install || goto error | ||||
|  |  | |||
|  | @ -1,223 +0,0 @@ | |||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -253,6 +253,8 @@
 | ||||
|  IF(CPUINFO_LIBRARY_TYPE STREQUAL "default") | ||||
|    ADD_LIBRARY(cpuinfo ${CPUINFO_SRCS}) | ||||
|  ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "shared") | ||||
| +  SET(CMAKE_C_VISIBILITY_PRESET hidden)
 | ||||
| +  SET(CMAKE_CXX_VISIBILITY_PRESET hidden)
 | ||||
|    ADD_LIBRARY(cpuinfo SHARED ${CPUINFO_SRCS}) | ||||
|  ELSEIF(CPUINFO_LIBRARY_TYPE STREQUAL "static") | ||||
|    ADD_LIBRARY(cpuinfo STATIC ${CPUINFO_SRCS}) | ||||
| @@ -301,8 +303,14 @@
 | ||||
|  TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE "CPUINFO_LOG_LEVEL=0") | ||||
|  TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE "CPUINFO_LOG_TO_STDIO=1") | ||||
|   | ||||
| +IF(CPUINFO_LIBRARY_TYPE STREQUAL "shared")
 | ||||
| +  TARGET_COMPILE_DEFINITIONS(cpuinfo PUBLIC CPUINFO_SHARED)
 | ||||
| +  TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_BUILD)
 | ||||
| +  TARGET_COMPILE_DEFINITIONS(cpuinfo_internals PRIVATE CPUINFO_SHARED CPUINFO_BUILD)
 | ||||
| +ENDIF()
 | ||||
| +
 | ||||
|  IF(CPUINFO_SUPPORTED_PLATFORM) | ||||
| -  TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=1)
 | ||||
| +  TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_SUPPORTED_PLATFORM=1)
 | ||||
|    IF(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "Android") | ||||
|      TARGET_LINK_LIBRARIES(cpuinfo PUBLIC ${CMAKE_THREAD_LIBS_INIT}) | ||||
|      TARGET_LINK_LIBRARIES(cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT}) | ||||
| @@ -313,7 +321,7 @@
 | ||||
|      TARGET_LINK_LIBRARIES(cpuinfo_internals PUBLIC ${CMAKE_THREAD_LIBS_INIT}) | ||||
|    ENDIF() | ||||
|  ELSE() | ||||
| -  TARGET_COMPILE_DEFINITIONS(cpuinfo INTERFACE CPUINFO_SUPPORTED_PLATFORM=0)
 | ||||
| +  TARGET_COMPILE_DEFINITIONS(cpuinfo PRIVATE CPUINFO_SUPPORTED_PLATFORM=0)
 | ||||
|  ENDIF() | ||||
|   | ||||
|  ADD_LIBRARY(${PROJECT_NAME}::cpuinfo ALIAS cpuinfo) | ||||
| @@ -329,6 +337,7 @@
 | ||||
|   | ||||
|  INSTALL(TARGETS cpuinfo | ||||
|    EXPORT cpuinfo-targets | ||||
| +  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
 | ||||
|    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|    PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) | ||||
| --- a/include/cpuinfo.h
 | ||||
| +++ b/include/cpuinfo.h
 | ||||
| @@ -96,6 +96,24 @@
 | ||||
|  #define CPUINFO_ARCH_RISCV64 0 | ||||
|  #endif | ||||
|   | ||||
| +#ifdef CPUINFO_SHARED
 | ||||
| +#ifdef _WIN32
 | ||||
| +#ifdef CPUINFO_BUILD
 | ||||
| +#define CPUINFO_EXPORT __declspec(dllexport)
 | ||||
| +#else
 | ||||
| +#define CPUINFO_EXPORT __declspec(dllimport)
 | ||||
| +#endif
 | ||||
| +#else
 | ||||
| +#ifdef CPUINFO_BUILD
 | ||||
| +#define CPUINFO_EXPORT __attribute__((visibility("default")))
 | ||||
| +#else
 | ||||
| +#define CPUINFO_EXPORT
 | ||||
| +#endif
 | ||||
| +#endif
 | ||||
| +#else
 | ||||
| +#define CPUINFO_EXPORT
 | ||||
| +#endif
 | ||||
| +
 | ||||
|  #if CPUINFO_ARCH_X86 && defined(_MSC_VER) | ||||
|  #define CPUINFO_ABI __cdecl | ||||
|  #elif CPUINFO_ARCH_X86 && defined(__GNUC__) | ||||
| @@ -735,9 +753,9 @@
 | ||||
|  extern "C" { | ||||
|  #endif | ||||
|   | ||||
| -bool CPUINFO_ABI cpuinfo_initialize(void);
 | ||||
| +CPUINFO_EXPORT bool CPUINFO_ABI cpuinfo_initialize(void);
 | ||||
|   | ||||
| -void CPUINFO_ABI cpuinfo_deinitialize(void);
 | ||||
| +CPUINFO_EXPORT void CPUINFO_ABI cpuinfo_deinitialize(void);
 | ||||
|   | ||||
|  #if CPUINFO_ARCH_X86 || CPUINFO_ARCH_X86_64 | ||||
|  /* This structure is not a part of stable API. Use cpuinfo_has_x86_* functions | ||||
| @@ -856,7 +874,7 @@
 | ||||
|  	bool lwp; | ||||
|  }; | ||||
|   | ||||
| -extern struct cpuinfo_x86_isa cpuinfo_isa;
 | ||||
| +extern CPUINFO_EXPORT struct cpuinfo_x86_isa cpuinfo_isa;
 | ||||
|  #endif | ||||
|   | ||||
|  static inline bool cpuinfo_has_x86_rdtsc(void) { | ||||
| @@ -1679,7 +1697,7 @@
 | ||||
|  	bool crc32; | ||||
|  }; | ||||
|   | ||||
| -extern struct cpuinfo_arm_isa cpuinfo_isa;
 | ||||
| +extern CPUINFO_EXPORT struct cpuinfo_arm_isa cpuinfo_isa;
 | ||||
|  #endif | ||||
|   | ||||
|  static inline bool cpuinfo_has_arm_thumb(void) { | ||||
| @@ -2064,7 +2082,7 @@
 | ||||
|  	bool v; | ||||
|  }; | ||||
|   | ||||
| -extern struct cpuinfo_riscv_isa cpuinfo_isa;
 | ||||
| +extern CPUINFO_EXPORT struct cpuinfo_riscv_isa cpuinfo_isa;
 | ||||
|  #endif | ||||
|   | ||||
|  static inline bool cpuinfo_has_riscv_i(void) { | ||||
| @@ -2137,43 +2155,43 @@
 | ||||
|  #endif | ||||
|  } | ||||
|   | ||||
| -const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processors(void);
 | ||||
| -const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_cores(void);
 | ||||
| -const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_clusters(void);
 | ||||
| -const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_packages(void);
 | ||||
| -const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarchs(void);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_caches(void);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_caches(void);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_caches(void);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_caches(void);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_caches(void);
 | ||||
| -
 | ||||
| -const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processor(uint32_t index);
 | ||||
| -const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_core(uint32_t index);
 | ||||
| -const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_cluster(uint32_t index);
 | ||||
| -const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_package(uint32_t index);
 | ||||
| -const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarch(uint32_t index);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_cache(uint32_t index);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_cache(uint32_t index);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_cache(uint32_t index);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_cache(uint32_t index);
 | ||||
| -const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_cache(uint32_t index);
 | ||||
| -
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_processors_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_cores_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_clusters_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_packages_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_uarchs_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_l1i_caches_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_l1d_caches_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_l2_caches_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_l3_caches_count(void);
 | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_l4_caches_count(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processors(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_cores(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_clusters(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_packages(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarchs(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_caches(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_caches(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_caches(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_caches(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_caches(void);
 | ||||
| +
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_processor(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_core(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cluster* CPUINFO_ABI cpuinfo_get_cluster(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_package* CPUINFO_ABI cpuinfo_get_package(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_uarch_info* CPUINFO_ABI cpuinfo_get_uarch(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1i_cache(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l1d_cache(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l2_cache(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l3_cache(uint32_t index);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_cache* CPUINFO_ABI cpuinfo_get_l4_cache(uint32_t index);
 | ||||
| +
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_processors_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_cores_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_clusters_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_packages_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_uarchs_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_l1i_caches_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_l1d_caches_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_l2_caches_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_l3_caches_count(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_l4_caches_count(void);
 | ||||
|   | ||||
|  /** | ||||
|   * Returns upper bound on cache size. | ||||
|   */ | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_max_cache_size(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_max_cache_size(void);
 | ||||
|   | ||||
|  /** | ||||
|   * Identify the logical processor that executes the current thread. | ||||
| @@ -2182,7 +2200,7 @@
 | ||||
|   * for any time. Callers should treat the result as only a hint, and be prepared | ||||
|   * to handle NULL return value. | ||||
|   */ | ||||
| -const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_current_processor(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_processor* CPUINFO_ABI cpuinfo_get_current_processor(void);
 | ||||
|   | ||||
|  /** | ||||
|   * Identify the core that executes the current thread. | ||||
| @@ -2191,7 +2209,7 @@
 | ||||
|   * time. Callers should treat the result as only a hint, and be prepared to | ||||
|   * handle NULL return value. | ||||
|   */ | ||||
| -const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_current_core(void);
 | ||||
| +CPUINFO_EXPORT const struct cpuinfo_core* CPUINFO_ABI cpuinfo_get_current_core(void);
 | ||||
|   | ||||
|  /** | ||||
|   * Identify the microarchitecture index of the core that executes the current | ||||
| @@ -2201,7 +2219,7 @@
 | ||||
|   * There is no guarantee that the thread will stay on the same type of core for | ||||
|   * any time. Callers should treat the result as only a hint. | ||||
|   */ | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index(void);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index(void);
 | ||||
|   | ||||
|  /** | ||||
|   * Identify the microarchitecture index of the core that executes the current | ||||
| @@ -2211,7 +2229,7 @@
 | ||||
|   * There is no guarantee that the thread will stay on the same type of core for | ||||
|   * any time. Callers should treat the result as only a hint. | ||||
|   */ | ||||
| -uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index_with_default(uint32_t default_uarch_index);
 | ||||
| +CPUINFO_EXPORT uint32_t CPUINFO_ABI cpuinfo_get_current_uarch_index_with_default(uint32_t default_uarch_index);
 | ||||
|   | ||||
|  #ifdef __cplusplus | ||||
|  } /* extern "C" */ | ||||
|  | @ -1,586 +0,0 @@ | |||
| diff --git a/CHANGES b/CHANGES
 | ||||
| index 5d3dd16..587b612 100644
 | ||||
| --- a/CHANGES
 | ||||
| +++ b/CHANGES
 | ||||
| @@ -4,7 +4,7 @@ v2024.1
 | ||||
|   - Update dependencies | ||||
|   - Propagate test/install options to Glslang | ||||
|   | ||||
| -v2024.0
 | ||||
| +v2024.0 2024-03-09
 | ||||
|   - Update dependencies | ||||
|   - Utilities: | ||||
|      - Use Python3 explicitly in utility scripts | ||||
| diff --git a/CMakeLists.txt b/CMakeLists.txt
 | ||||
| index ffcb54b..7c1a6d8 100644
 | ||||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -117,6 +117,9 @@ if(MSVC)
 | ||||
|    endif() | ||||
|  endif(MSVC) | ||||
|   | ||||
| +if(NOT WIN32)
 | ||||
| +  add_definitions("-fvisibility=hidden")
 | ||||
| +endif()
 | ||||
|   | ||||
|  # Configure subdirectories. | ||||
|  # We depend on these for later projects, so they should come first. | ||||
| @@ -124,7 +127,6 @@ add_subdirectory(third_party)
 | ||||
|   | ||||
|  add_subdirectory(libshaderc_util) | ||||
|  add_subdirectory(libshaderc) | ||||
| -add_subdirectory(glslc)
 | ||||
|  if(${SHADERC_ENABLE_EXAMPLES}) | ||||
|      add_subdirectory(examples) | ||||
|  endif() | ||||
| @@ -158,5 +160,3 @@ function(define_pkg_config_file NAME LIBS)
 | ||||
|  endfunction() | ||||
|   | ||||
|  define_pkg_config_file(shaderc -lshaderc_shared) | ||||
| -define_pkg_config_file(shaderc_static "-lshaderc ${EXTRA_STATIC_PKGCONFIG_LIBS} -lshaderc_util")
 | ||||
| -define_pkg_config_file(shaderc_combined -lshaderc_combined)
 | ||||
| diff --git a/libshaderc/CMakeLists.txt b/libshaderc/CMakeLists.txt
 | ||||
| index df9a88d..b15e5d7 100644
 | ||||
| --- a/libshaderc/CMakeLists.txt
 | ||||
| +++ b/libshaderc/CMakeLists.txt
 | ||||
| @@ -24,13 +24,6 @@
 | ||||
|    src/shaderc_private.h | ||||
|  ) | ||||
|   | ||||
| -add_library(shaderc STATIC ${SHADERC_SOURCES})
 | ||||
| -shaderc_default_compile_options(shaderc)
 | ||||
| -target_include_directories(shaderc
 | ||||
| -    PUBLIC include
 | ||||
| -    PRIVATE ${glslang_SOURCE_DIR}
 | ||||
| -            ${SPIRV-Headers_SOURCE_DIR}/include)
 | ||||
| -
 | ||||
|  add_library(shaderc_shared SHARED ${SHADERC_SOURCES}) | ||||
|  shaderc_default_compile_options(shaderc_shared) | ||||
|  target_include_directories(shaderc_shared | ||||
| @@ -41,7 +34,6 @@
 | ||||
|      PRIVATE SHADERC_IMPLEMENTATION | ||||
|      PUBLIC SHADERC_SHAREDLIB | ||||
|  ) | ||||
| -set_target_properties(shaderc_shared PROPERTIES SOVERSION 1)
 | ||||
|   | ||||
|  if(SHADERC_ENABLE_INSTALL) | ||||
|    install( | ||||
| @@ -54,7 +46,7 @@
 | ||||
|      DESTINATION | ||||
|        ${CMAKE_INSTALL_INCLUDEDIR}/shaderc) | ||||
|   | ||||
| -  install(TARGETS shaderc shaderc_shared
 | ||||
| +  install(TARGETS shaderc_shared
 | ||||
|      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||||
|      RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | ||||
|      BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} | ||||
| @@ -69,21 +61,9 @@
 | ||||
|    SPIRV-Tools | ||||
|  ) | ||||
|   | ||||
| -target_link_libraries(shaderc PRIVATE ${SHADERC_LIBS})
 | ||||
|  target_link_libraries(shaderc_shared PRIVATE ${SHADERC_LIBS}) | ||||
|   | ||||
|  shaderc_add_tests( | ||||
| -  TEST_PREFIX shaderc
 | ||||
| -  LINK_LIBS shaderc
 | ||||
| -  INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR}
 | ||||
| -               ${spirv-tools_SOURCE_DIR}/include
 | ||||
| -               ${SPIRV-Headers_SOURCE_DIR}/include
 | ||||
| -  TEST_NAMES
 | ||||
| -    shaderc
 | ||||
| -    shaderc_cpp
 | ||||
| -    shaderc_private)
 | ||||
| -
 | ||||
| -shaderc_add_tests(
 | ||||
|    TEST_PREFIX shaderc_shared | ||||
|    LINK_LIBS shaderc_shared SPIRV-Tools | ||||
|    INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR} | ||||
| @@ -94,22 +74,6 @@
 | ||||
|      shaderc_cpp | ||||
|      shaderc_private) | ||||
|   | ||||
| -shaderc_combine_static_lib(shaderc_combined shaderc)
 | ||||
| -
 | ||||
| -if(SHADERC_ENABLE_INSTALL)
 | ||||
| -  install(TARGETS shaderc_combined DESTINATION ${CMAKE_INSTALL_LIBDIR})
 | ||||
| -endif(SHADERC_ENABLE_INSTALL)
 | ||||
| -
 | ||||
| -shaderc_add_tests(
 | ||||
| -  TEST_PREFIX shaderc_combined
 | ||||
| -  LINK_LIBS shaderc_combined ${CMAKE_THREAD_LIBS_INIT}
 | ||||
| -  INCLUDE_DIRS include ${shaderc_SOURCE_DIR}/libshaderc_util/include ${glslang_SOURCE_DIR}
 | ||||
| -               ${spirv-tools_SOURCE_DIR}/include
 | ||||
| -               ${SPIRV-Headers_SOURCE_DIR}/include
 | ||||
| -  TEST_NAMES
 | ||||
| -    shaderc
 | ||||
| -    shaderc_cpp)
 | ||||
| -
 | ||||
|  if(${SHADERC_ENABLE_TESTS}) | ||||
|    add_executable(shaderc_c_smoke_test ./src/shaderc_c_smoke_test.c) | ||||
|    shaderc_default_c_compile_options(shaderc_c_smoke_test) | ||||
| diff --git a/libshaderc/include/shaderc/shaderc.h b/libshaderc/include/shaderc/shaderc.h
 | ||||
| index 3a3e97d..65d5b77 100644
 | ||||
| --- a/libshaderc/include/shaderc/shaderc.h
 | ||||
| +++ b/libshaderc/include/shaderc/shaderc.h
 | ||||
| @@ -317,7 +317,7 @@ SHADERC_EXPORT void shaderc_compile_options_set_source_language(
 | ||||
|   | ||||
|  // Sets the compiler mode to generate debug information in the output. | ||||
|  SHADERC_EXPORT void shaderc_compile_options_set_generate_debug_info( | ||||
| -    shaderc_compile_options_t options);
 | ||||
| +    shaderc_compile_options_t options, bool enabled, bool enable_non_semantic);
 | ||||
|   | ||||
|  // Sets the compiler optimization level to the given level. Only the last one | ||||
|  // takes effect if multiple calls of this function exist. | ||||
| @@ -506,6 +506,10 @@ SHADERC_EXPORT void shaderc_compile_options_set_invert_y(
 | ||||
|  SHADERC_EXPORT void shaderc_compile_options_set_nan_clamp( | ||||
|      shaderc_compile_options_t options, bool enable); | ||||
|   | ||||
| +// Returns a string representation of the specified compilation status.
 | ||||
| +SHADERC_EXPORT const char* shaderc_compilation_status_to_string(
 | ||||
| +    shaderc_compilation_status status);
 | ||||
| +
 | ||||
|  // An opaque handle to the results of a call to any shaderc_compile_into_*() | ||||
|  // function. | ||||
|  typedef struct shaderc_compilation_result* shaderc_compilation_result_t; | ||||
| @@ -529,28 +533,31 @@ typedef struct shaderc_compilation_result* shaderc_compilation_result_t;
 | ||||
|  // present.  May be safely called from multiple threads without explicit | ||||
|  // synchronization. If there was failure in allocating the compiler object, | ||||
|  // null will be returned. | ||||
| -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_spv(
 | ||||
| +SHADERC_EXPORT shaderc_compilation_status shaderc_compile_into_spv(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options);
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result);
 | ||||
|   | ||||
|  // Like shaderc_compile_into_spv, but the result contains SPIR-V assembly text | ||||
|  // instead of a SPIR-V binary module.  The SPIR-V assembly syntax is as defined | ||||
|  // by the SPIRV-Tools open source project. | ||||
| -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_spv_assembly(
 | ||||
| +SHADERC_EXPORT shaderc_compilation_status shaderc_compile_into_spv_assembly(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options);
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result);
 | ||||
|   | ||||
|  // Like shaderc_compile_into_spv, but the result contains preprocessed source | ||||
|  // code instead of a SPIR-V binary module | ||||
| -SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_preprocessed_text(
 | ||||
| +SHADERC_EXPORT shaderc_compilation_status shaderc_compile_into_preprocessed_text(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options);
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result);
 | ||||
|   | ||||
|  // Takes an assembly string of the format defined in the SPIRV-Tools project | ||||
|  // (https://github.com/KhronosGroup/SPIRV-Tools/blob/master/syntax.md), | ||||
| @@ -561,10 +568,11 @@ SHADERC_EXPORT shaderc_compilation_result_t shaderc_compile_into_preprocessed_te
 | ||||
|  // May be safely called from multiple threads without explicit synchronization. | ||||
|  // If there was failure in allocating the compiler object, null will be | ||||
|  // returned. | ||||
| -SHADERC_EXPORT shaderc_compilation_result_t shaderc_assemble_into_spv(
 | ||||
| +SHADERC_EXPORT shaderc_compilation_status shaderc_assemble_into_spv(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_assembly, | ||||
|      size_t source_assembly_size, | ||||
| -    const shaderc_compile_options_t additional_options);
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result);
 | ||||
|   | ||||
|  // The following functions, operating on shaderc_compilation_result_t objects, | ||||
|  // offer only the basic thread-safety guarantee. | ||||
| diff --git a/libshaderc/include/shaderc/shaderc.hpp b/libshaderc/include/shaderc/shaderc.hpp
 | ||||
| index 3817af8..5592b49 100644
 | ||||
| --- a/libshaderc/include/shaderc/shaderc.hpp
 | ||||
| +++ b/libshaderc/include/shaderc/shaderc.hpp
 | ||||
| @@ -168,8 +168,9 @@ class CompileOptions {
 | ||||
|    } | ||||
|   | ||||
|    // Sets the compiler mode to generate debug information in the output. | ||||
| -  void SetGenerateDebugInfo() {
 | ||||
| -    shaderc_compile_options_set_generate_debug_info(options_);
 | ||||
| +  void SetGenerateDebugInfo(bool enabled, bool non_semantic_debug_info) {
 | ||||
| +    shaderc_compile_options_set_generate_debug_info(options_, enabled,
 | ||||
| +      non_sematic_debug_info);
 | ||||
|    } | ||||
|   | ||||
|    // Sets the compiler optimization level to the given level. Only the last one | ||||
| @@ -425,9 +426,10 @@ class Compiler {
 | ||||
|                                          const char* input_file_name, | ||||
|                                          const char* entry_point_name, | ||||
|                                          const CompileOptions& options) const { | ||||
| -    shaderc_compilation_result_t compilation_result = shaderc_compile_into_spv(
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_compile_into_spv(
 | ||||
|          compiler_, source_text, source_text_size, shader_kind, input_file_name, | ||||
| -        entry_point_name, options.options_);
 | ||||
| +        entry_point_name, options.options_, &compilation_result);
 | ||||
|      return SpvCompilationResult(compilation_result); | ||||
|    } | ||||
|   | ||||
| @@ -451,9 +453,10 @@ class Compiler {
 | ||||
|                                          size_t source_text_size, | ||||
|                                          shaderc_shader_kind shader_kind, | ||||
|                                          const char* input_file_name) const { | ||||
| -    shaderc_compilation_result_t compilation_result =
 | ||||
| -        shaderc_compile_into_spv(compiler_, source_text, source_text_size,
 | ||||
| -                                 shader_kind, input_file_name, "main", nullptr);
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_compile_into_spv(compiler_, source_text, source_text_size,
 | ||||
| +                             shader_kind, input_file_name, "main", nullptr,
 | ||||
| +                             &compilation_result);
 | ||||
|      return SpvCompilationResult(compilation_result); | ||||
|    } | ||||
|   | ||||
| @@ -504,8 +507,11 @@ class Compiler {
 | ||||
|    SpvCompilationResult AssembleToSpv(const char* source_assembly, | ||||
|                                       size_t source_assembly_size, | ||||
|                                       const CompileOptions& options) const { | ||||
| -    return SpvCompilationResult(shaderc_assemble_into_spv(
 | ||||
| -        compiler_, source_assembly, source_assembly_size, options.options_));
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_assemble_into_spv(
 | ||||
| +        compiler_, source_assembly, source_assembly_size, options.options_,
 | ||||
| +        &compilation_result);
 | ||||
| +    return SpvCompilationResult(compilation_result);
 | ||||
|    } | ||||
|   | ||||
|    // Assembles the given SPIR-V assembly and returns a SPIR-V binary module | ||||
| @@ -513,8 +519,11 @@ class Compiler {
 | ||||
|    // Like the first AssembleToSpv method but uses the default compiler options. | ||||
|    SpvCompilationResult AssembleToSpv(const char* source_assembly, | ||||
|                                       size_t source_assembly_size) const { | ||||
| -    return SpvCompilationResult(shaderc_assemble_into_spv(
 | ||||
| -        compiler_, source_assembly, source_assembly_size, nullptr));
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_assemble_into_spv(
 | ||||
| +        compiler_, source_assembly, source_assembly_size, nullptr,
 | ||||
| +        &compilation_result);
 | ||||
| +    return SpvCompilationResult(compilation_result);
 | ||||
|    } | ||||
|   | ||||
|    // Assembles the given SPIR-V assembly and returns a SPIR-V binary module | ||||
| @@ -523,9 +532,11 @@ class Compiler {
 | ||||
|    // std::string. | ||||
|    SpvCompilationResult AssembleToSpv(const std::string& source_assembly, | ||||
|                                       const CompileOptions& options) const { | ||||
| -    return SpvCompilationResult(
 | ||||
| -        shaderc_assemble_into_spv(compiler_, source_assembly.data(),
 | ||||
| -                                  source_assembly.size(), options.options_));
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_assemble_into_spv(
 | ||||
| +      compiler_, source_assembly.data(), source_assembly.size(),
 | ||||
| +      options.options_, &compilation_result);
 | ||||
| +    return SpvCompilationResult(compilation_result);
 | ||||
|    } | ||||
|   | ||||
|    // Assembles the given SPIR-V assembly and returns a SPIR-V binary module | ||||
| @@ -533,8 +544,10 @@ class Compiler {
 | ||||
|    // Like the first AssembleToSpv method but the source is provided as a | ||||
|    // std::string and also uses default compiler options. | ||||
|    SpvCompilationResult AssembleToSpv(const std::string& source_assembly) const { | ||||
| -    return SpvCompilationResult(shaderc_assemble_into_spv(
 | ||||
| -        compiler_, source_assembly.data(), source_assembly.size(), nullptr));
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_assemble_into_spv(compiler_, source_assembly.data(),
 | ||||
| +      source_assembly.size(), nullptr, &compilation_result);
 | ||||
| +    return SpvCompilationResult(compilation_result);
 | ||||
|    } | ||||
|   | ||||
|    // Compiles the given source GLSL and returns the SPIR-V assembly text | ||||
| @@ -544,10 +557,11 @@ class Compiler {
 | ||||
|        const char* source_text, size_t source_text_size, | ||||
|        shaderc_shader_kind shader_kind, const char* input_file_name, | ||||
|        const char* entry_point_name, const CompileOptions& options) const { | ||||
| -    shaderc_compilation_result_t compilation_result =
 | ||||
| -        shaderc_compile_into_spv_assembly(
 | ||||
| -            compiler_, source_text, source_text_size, shader_kind,
 | ||||
| -            input_file_name, entry_point_name, options.options_);
 | ||||
| +    shaderc_compilation_result_t compilation_result = nullptr;
 | ||||
| +    shaderc_compile_into_spv_assembly(
 | ||||
| +        compiler_, source_text, source_text_size, shader_kind,
 | ||||
| +        input_file_name, entry_point_name, options.options_,
 | ||||
| +        &compilation_result);
 | ||||
|      return AssemblyCompilationResult(compilation_result); | ||||
|    } | ||||
|   | ||||
| @@ -592,10 +606,10 @@ class Compiler {
 | ||||
|        const char* source_text, size_t source_text_size, | ||||
|        shaderc_shader_kind shader_kind, const char* input_file_name, | ||||
|        const CompileOptions& options) const { | ||||
| -    shaderc_compilation_result_t compilation_result =
 | ||||
| -        shaderc_compile_into_preprocessed_text(
 | ||||
| +    shaderc_compilation_result_t compilation_result;
 | ||||
| +    shaderc_compile_into_preprocessed_text(
 | ||||
|              compiler_, source_text, source_text_size, shader_kind, | ||||
| -            input_file_name, "main", options.options_);
 | ||||
| +            input_file_name, "main", options.options_, &compilation_result);
 | ||||
|      return PreprocessedSourceCompilationResult(compilation_result); | ||||
|    } | ||||
|   | ||||
| diff --git a/libshaderc/src/shaderc.cc b/libshaderc/src/shaderc.cc
 | ||||
| index 63f1bbc..c1a9b12 100644
 | ||||
| --- a/libshaderc/src/shaderc.cc
 | ||||
| +++ b/libshaderc/src/shaderc.cc
 | ||||
| @@ -418,8 +418,12 @@ void shaderc_compile_options_set_source_language(
 | ||||
|  } | ||||
|   | ||||
|  void shaderc_compile_options_set_generate_debug_info( | ||||
| -    shaderc_compile_options_t options) {
 | ||||
| -  options->compiler.SetGenerateDebugInfo();
 | ||||
| +    shaderc_compile_options_t options, bool enabled, bool enable_non_semantic) {
 | ||||
| +  if (enabled) {
 | ||||
| +    options->compiler.SetGenerateDebugInfo();
 | ||||
| +    if (enable_non_semantic)
 | ||||
| +      options->compiler.SetEmitNonSemanticDebugInfo();
 | ||||
| +  }
 | ||||
|  } | ||||
|   | ||||
|  void shaderc_compile_options_set_optimization_level( | ||||
| @@ -591,8 +595,31 @@ void shaderc_compiler_release(shaderc_compiler_t compiler) {
 | ||||
|    delete compiler; | ||||
|  } | ||||
|   | ||||
| +const char* shaderc_compilation_status_to_string(shaderc_compilation_status status)
 | ||||
| +{
 | ||||
| +  static constexpr const std::pair<shaderc_compilation_status, const char*> status_names[] = {
 | ||||
| +    {shaderc_compilation_status_success, "shaderc_compilation_status_success"},
 | ||||
| +    {shaderc_compilation_status_invalid_stage, "shaderc_compilation_status_invalid_stage"},
 | ||||
| +    {shaderc_compilation_status_compilation_error, "shaderc_compilation_status_compilation_error"},
 | ||||
| +    {shaderc_compilation_status_internal_error, "shaderc_compilation_status_internal_error"},
 | ||||
| +    {shaderc_compilation_status_null_result_object, "shaderc_compilation_status_null_result_object"},
 | ||||
| +    {shaderc_compilation_status_invalid_assembly, "shaderc_compilation_status_invalid_assembly"},
 | ||||
| +    {shaderc_compilation_status_validation_error, "shaderc_compilation_status_validation_error"},
 | ||||
| +    {shaderc_compilation_status_transformation_error, "shaderc_compilation_status_transformation_error"},
 | ||||
| +    {shaderc_compilation_status_configuration_error, "shaderc_compilation_status_configuration_error"},
 | ||||
| +  };
 | ||||
| +
 | ||||
| +  for (const auto& it : status_names)
 | ||||
| +  {
 | ||||
| +    if (status == it.first)
 | ||||
| +      return it.second;
 | ||||
| +  }
 | ||||
| +
 | ||||
| +  return "shaderc_compilation_status_unknown";
 | ||||
| +}
 | ||||
| +
 | ||||
|  namespace { | ||||
| -shaderc_compilation_result_t CompileToSpecifiedOutputType(
 | ||||
| +shaderc_compilation_result_vector* CompileToSpecifiedOutputType(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| @@ -669,48 +696,59 @@ shaderc_compilation_result_t CompileToSpecifiedOutputType(
 | ||||
|  } | ||||
|  }  // anonymous namespace | ||||
|   | ||||
| -shaderc_compilation_result_t shaderc_compile_into_spv(
 | ||||
| +shaderc_compilation_status shaderc_compile_into_spv(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options) {
 | ||||
| -  return CompileToSpecifiedOutputType(
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result) {
 | ||||
| +  shaderc_compilation_result_vector* resultv = CompileToSpecifiedOutputType(
 | ||||
|        compiler, source_text, source_text_size, shader_kind, input_file_name, | ||||
|        entry_point_name, additional_options, | ||||
|        shaderc_util::Compiler::OutputType::SpirvBinary); | ||||
| +  *result = resultv;
 | ||||
| +  return resultv ? resultv->compilation_status : shaderc_compilation_status_internal_error;
 | ||||
|  } | ||||
|   | ||||
| -shaderc_compilation_result_t shaderc_compile_into_spv_assembly(
 | ||||
| +shaderc_compilation_status shaderc_compile_into_spv_assembly(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options) {
 | ||||
| -  return CompileToSpecifiedOutputType(
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result) {
 | ||||
| +  shaderc_compilation_result_vector* resultv = CompileToSpecifiedOutputType(
 | ||||
|        compiler, source_text, source_text_size, shader_kind, input_file_name, | ||||
|        entry_point_name, additional_options, | ||||
|        shaderc_util::Compiler::OutputType::SpirvAssemblyText); | ||||
| +  *result = resultv;
 | ||||
| +  return resultv ? resultv->compilation_status : shaderc_compilation_status_internal_error;
 | ||||
|  } | ||||
|   | ||||
| -shaderc_compilation_result_t shaderc_compile_into_preprocessed_text(
 | ||||
| +shaderc_compilation_status shaderc_compile_into_preprocessed_text(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_text, | ||||
|      size_t source_text_size, shaderc_shader_kind shader_kind, | ||||
|      const char* input_file_name, const char* entry_point_name, | ||||
| -    const shaderc_compile_options_t additional_options) {
 | ||||
| -  return CompileToSpecifiedOutputType(
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result) {
 | ||||
| +  shaderc_compilation_result_vector* resultv = CompileToSpecifiedOutputType(
 | ||||
|        compiler, source_text, source_text_size, shader_kind, input_file_name, | ||||
|        entry_point_name, additional_options, | ||||
|        shaderc_util::Compiler::OutputType::PreprocessedText); | ||||
| +  *result = resultv;
 | ||||
| +  return resultv ? resultv->compilation_status : shaderc_compilation_status_internal_error;
 | ||||
|  } | ||||
|   | ||||
| -shaderc_compilation_result_t shaderc_assemble_into_spv(
 | ||||
| +shaderc_compilation_status shaderc_assemble_into_spv(
 | ||||
|      const shaderc_compiler_t compiler, const char* source_assembly, | ||||
|      size_t source_assembly_size, | ||||
| -    const shaderc_compile_options_t additional_options) {
 | ||||
| -  auto* result = new (std::nothrow) shaderc_compilation_result_spv_binary;
 | ||||
| -  if (!result) return nullptr;
 | ||||
| -  result->compilation_status = shaderc_compilation_status_invalid_assembly;
 | ||||
| -  if (!compiler->initializer) return result;
 | ||||
| -  if (source_assembly == nullptr) return result;
 | ||||
| +    const shaderc_compile_options_t additional_options,
 | ||||
| +    shaderc_compilation_result_t* result) {
 | ||||
| +  auto* bresult = new (std::nothrow) shaderc_compilation_result_spv_binary;
 | ||||
| +  if (!bresult) return shaderc_compilation_status_internal_error;
 | ||||
| +  bresult->compilation_status = shaderc_compilation_status_invalid_assembly;
 | ||||
| +  *result = bresult;
 | ||||
| +  if (!compiler->initializer) return bresult->compilation_status;
 | ||||
| +  if (source_assembly == nullptr) return bresult->compilation_status;
 | ||||
|   | ||||
|    TRY_IF_EXCEPTIONS_ENABLED { | ||||
|      spv_binary assembling_output_data = nullptr; | ||||
| @@ -724,22 +762,22 @@ shaderc_compilation_result_t shaderc_assemble_into_spv(
 | ||||
|          GetCompilerTargetEnvVersion(target_env_version), | ||||
|          {source_assembly, source_assembly + source_assembly_size}, | ||||
|          &assembling_output_data, &errors); | ||||
| -    result->num_errors = !assembling_succeeded;
 | ||||
| +    bresult->num_errors = !assembling_succeeded;
 | ||||
|      if (assembling_succeeded) { | ||||
| -      result->SetOutputData(assembling_output_data);
 | ||||
| -      result->output_data_size =
 | ||||
| +      bresult->SetOutputData(assembling_output_data);
 | ||||
| +      bresult->output_data_size =
 | ||||
|            assembling_output_data->wordCount * sizeof(uint32_t); | ||||
| -      result->compilation_status = shaderc_compilation_status_success;
 | ||||
| +      bresult->compilation_status = shaderc_compilation_status_success;
 | ||||
|      } else { | ||||
| -      result->messages = std::move(errors);
 | ||||
| -      result->compilation_status = shaderc_compilation_status_invalid_assembly;
 | ||||
| +      bresult->messages = std::move(errors);
 | ||||
| +      bresult->compilation_status = shaderc_compilation_status_invalid_assembly;
 | ||||
|      } | ||||
|    } | ||||
|    CATCH_IF_EXCEPTIONS_ENABLED(...) { | ||||
| -    result->compilation_status = shaderc_compilation_status_internal_error;
 | ||||
| +    bresult->compilation_status = shaderc_compilation_status_internal_error;
 | ||||
|    } | ||||
|   | ||||
| -  return result;
 | ||||
| +  return bresult->compilation_status;
 | ||||
|  } | ||||
|   | ||||
|  size_t shaderc_result_get_length(const shaderc_compilation_result_t result) { | ||||
| diff --git a/libshaderc_util/include/libshaderc_util/compiler.h b/libshaderc_util/include/libshaderc_util/compiler.h
 | ||||
| index d9d02b9..b076ec8 100644
 | ||||
| --- a/libshaderc_util/include/libshaderc_util/compiler.h
 | ||||
| +++ b/libshaderc_util/include/libshaderc_util/compiler.h
 | ||||
| @@ -195,6 +195,7 @@ class Compiler {
 | ||||
|          warnings_as_errors_(false), | ||||
|          suppress_warnings_(false), | ||||
|          generate_debug_info_(false), | ||||
| +        emit_non_semantic_debug_info_(false),
 | ||||
|          enabled_opt_passes_(), | ||||
|          target_env_(TargetEnv::Vulkan), | ||||
|          target_env_version_(TargetEnvVersion::Default), | ||||
| @@ -220,6 +221,10 @@ class Compiler {
 | ||||
|    // such as identifier names and line numbers. | ||||
|    void SetGenerateDebugInfo(); | ||||
|   | ||||
| +  // Requests that the compiler emit non-semantic debug information.
 | ||||
| +  // Requires VK_KHR_shader_non_semantic_info.
 | ||||
| +  void SetEmitNonSemanticDebugInfo();
 | ||||
| +
 | ||||
|    // Sets the optimization level to the given level. Only the last one takes | ||||
|    // effect if multiple calls of this method exist. | ||||
|    void SetOptimizationLevel(OptimizationLevel level); | ||||
| @@ -486,6 +491,10 @@ class Compiler {
 | ||||
|    // output. | ||||
|    bool generate_debug_info_; | ||||
|   | ||||
| +  // When true and generate_debug_info_ is also set, generate non-semantic debug
 | ||||
| +  // information.
 | ||||
| +  bool emit_non_semantic_debug_info_;
 | ||||
| +
 | ||||
|    // Optimization passes to be applied. | ||||
|    std::vector<PassId> enabled_opt_passes_; | ||||
|   | ||||
| diff --git a/libshaderc_util/src/compiler.cc b/libshaderc_util/src/compiler.cc
 | ||||
| index e5f5d10..1f9e6a5 100644
 | ||||
| --- a/libshaderc_util/src/compiler.cc
 | ||||
| +++ b/libshaderc_util/src/compiler.cc
 | ||||
| @@ -341,6 +341,11 @@ std::tuple<bool, std::vector<uint32_t>, size_t> Compiler::Compile(
 | ||||
|    options.generateDebugInfo = generate_debug_info_; | ||||
|    options.disableOptimizer = true; | ||||
|    options.optimizeSize = false; | ||||
| +  options.emitNonSemanticShaderDebugInfo =
 | ||||
| +      generate_debug_info_ && emit_non_semantic_debug_info_;
 | ||||
| +  options.emitNonSemanticShaderDebugSource =
 | ||||
| +      generate_debug_info_ && emit_non_semantic_debug_info_;
 | ||||
| +
 | ||||
|    // Note the call to GlslangToSpv also populates compilation_output_data. | ||||
|    glslang::GlslangToSpv(*program.getIntermediate(used_shader_stage), spirv, | ||||
|                          &options); | ||||
| @@ -438,6 +443,10 @@ void Compiler::SetGenerateDebugInfo() {
 | ||||
|    } | ||||
|  } | ||||
|   | ||||
| +void Compiler::SetEmitNonSemanticDebugInfo() {
 | ||||
| +  emit_non_semantic_debug_info_ = true;
 | ||||
| +}
 | ||||
| +
 | ||||
|  void Compiler::SetOptimizationLevel(Compiler::OptimizationLevel level) { | ||||
|    // Clear previous settings first. | ||||
|    enabled_opt_passes_.clear(); | ||||
| diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
 | ||||
| index d44f62a..83966b6 100644
 | ||||
| --- a/third_party/CMakeLists.txt
 | ||||
| +++ b/third_party/CMakeLists.txt
 | ||||
| @@ -20,9 +20,9 @@ set(SHADERC_TINT_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/tint" CACHE STRING
 | ||||
|  set(SHADERC_ABSL_DIR "${SHADERC_THIRD_PARTY_ROOT_DIR}/abseil_cpp" CACHE STRING | ||||
|    "Location of re2 source") | ||||
|   | ||||
| -set( SKIP_GLSLANG_INSTALL ${SHADERC_SKIP_INSTALL} )
 | ||||
| -set( SKIP_SPIRV_TOOLS_INSTALL ${SHADERC_SKIP_INSTALL} )
 | ||||
| -set( SKIP_GOOGLETEST_INSTALL ${SHADERC_SKIP_INSTALL} )
 | ||||
| +set( SKIP_GLSLANG_INSTALL ON )
 | ||||
| +set( SKIP_SPIRV_TOOLS_INSTALL ON )
 | ||||
| +set( SKIP_GOOGLETEST_INSTALL ON )
 | ||||
|   | ||||
|  # Configure third party projects. | ||||
|  if(${SHADERC_ENABLE_TESTS}) | ||||
| @@ -64,7 +64,10 @@ if (NOT TARGET SPIRV-Tools)
 | ||||
|        add_subdirectory(${SHADERC_RE2_DIR} re2) | ||||
|        add_subdirectory(${SHADERC_EFFCEE_DIR} effcee) | ||||
|      endif() | ||||
| -    add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools)
 | ||||
| +    set(SPIRV_SKIP_EXECUTABLES ON CACHE BOOL "Skip building SPIRV-Tools executables")
 | ||||
| +    set(SPIRV_TOOLS_BUILD_STATIC OFF CACHE BOOL "Skip building two SPIRV-Tools libs")
 | ||||
| +    set(SPIRV_TOOLS_LIBRARY_TYPE STATIC CACHE STRING "Build static SPIRV-Tools libs")
 | ||||
| +    add_subdirectory(${SHADERC_SPIRV_TOOLS_DIR} spirv-tools EXCLUDE_FROM_ALL)
 | ||||
|      if (NOT "${SPIRV_SKIP_TESTS}") | ||||
|        if (MSVC) | ||||
|          if (${MSVC_VERSION} LESS 1920) | ||||
| @@ -87,8 +90,8 @@ if (NOT TARGET glslang)
 | ||||
|        # Glslang tests are off by default. Turn them on if testing Shaderc. | ||||
|        set(GLSLANG_TESTS ON) | ||||
|      endif() | ||||
| -    set(GLSLANG_ENABLE_INSTALL $<NOT:${SKIP_GLSLANG_INSTALL}>)
 | ||||
| -    add_subdirectory(${SHADERC_GLSLANG_DIR} glslang)
 | ||||
| +    set(GLSLANG_ENABLE_INSTALL OFF)
 | ||||
| +    add_subdirectory(${SHADERC_GLSLANG_DIR} glslang EXCLUDE_FROM_ALL)
 | ||||
|    endif() | ||||
|    if (NOT TARGET glslang) | ||||
|      message(FATAL_ERROR "glslang was not found - required for compilation") | ||||
|  | @ -1,27 +0,0 @@ | |||
| --- a/CMakeLists.txt
 | ||||
| +++ b/CMakeLists.txt
 | ||||
| @@ -73,9 +73,9 @@
 | ||||
|  set(spirv-cross-link-flags "") | ||||
|   | ||||
|  message(STATUS "SPIRV-Cross: Finding Git version for SPIRV-Cross.") | ||||
| -set(spirv-cross-build-version "unknown")
 | ||||
| +set(spirv-cross-build-version "vulkan-sdk-1.3.280.0")
 | ||||
|  find_package(Git) | ||||
| -if (GIT_FOUND)
 | ||||
| +if (FALSE)
 | ||||
|  	execute_process( | ||||
|  		COMMAND ${GIT_EXECUTABLE} describe --always --tags --dirty=+ | ||||
|  		WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | ||||
| @@ -409,9 +409,9 @@
 | ||||
|   | ||||
|  	target_compile_definitions(spirv-cross-c-shared PRIVATE SPVC_EXPORT_SYMBOLS) | ||||
|   | ||||
| -	set_target_properties(spirv-cross-c-shared PROPERTIES
 | ||||
| -			VERSION ${SPIRV_CROSS_VERSION}
 | ||||
| -			SOVERSION ${spirv-cross-abi-major})
 | ||||
| +	#set_target_properties(spirv-cross-c-shared PROPERTIES
 | ||||
| +	#		VERSION ${SPIRV_CROSS_VERSION}
 | ||||
| +	#		SOVERSION ${spirv-cross-abi-major})
 | ||||
|  endif() | ||||
|   | ||||
|  if (SPIRV_CROSS_CLI) | ||||
|  | @ -14,30 +14,8 @@ | |||
|   "sources": [ | ||||
|     { | ||||
|       "type": "git", | ||||
|       "url": "https://github.com/google/shaderc.git", | ||||
|       "commit": "47a9387ef5b3600d30d84c71ec77a59dc7db46fa" | ||||
|     }, | ||||
|     { | ||||
|       "type": "archive", | ||||
|       "url": "https://github.com/KhronosGroup/glslang/archive/142052fa30f9eca191aa9dcf65359fcaed09eeec.tar.gz", | ||||
|       "sha256": "aa27e4454ce631c5a17924ce0624eac736da19fc6f5a2ab15a6c58da7b36950f", | ||||
|       "dest": "third_party/glslang" | ||||
|     }, | ||||
|     { | ||||
|       "type": "archive", | ||||
|       "url": "https://github.com/KhronosGroup/SPIRV-Headers/archive/5e3ad389ee56fca27c9705d093ae5387ce404df4.tar.gz", | ||||
|       "sha256": "5d866ce34a4b6908e262e5ebfffc0a5e11dd411640b5f24c85a80ad44c0d4697", | ||||
|       "dest": "third_party/spirv-headers" | ||||
|     }, | ||||
|     { | ||||
|       "type": "archive", | ||||
|       "url": "https://github.com/KhronosGroup/SPIRV-Tools/archive/dd4b663e13c07fea4fbb3f70c1c91c86731099f7.tar.gz", | ||||
|       "sha256": "03ee1a2c06f3b61008478f4abe9423454e53e580b9488b47c8071547c6a9db47", | ||||
|       "dest": "third_party/spirv-tools" | ||||
|     }, | ||||
|     { | ||||
|       "type": "patch", | ||||
|       "path": "../../deps/shaderc-changes.patch" | ||||
|       "url": "https://github.com/stenzek/shaderc.git", | ||||
|       "commit": "feb2460bf3a504d67011246edeb810c45ea58826" | ||||
|     } | ||||
|   ], | ||||
|   "cleanup": [ | ||||
|  |  | |||
|  | @ -23,12 +23,8 @@ | |||
|     { | ||||
|       "type": "git", | ||||
|       "url": "https://github.com/KhronosGroup/SPIRV-Cross.git", | ||||
|       "tag": "vulkan-sdk-1.3.283.0", | ||||
|       "commit": "2ccc81fd826e4dd4a2db2f94b8e6eb738a89f5f1" | ||||
|     }, | ||||
|     { | ||||
|       "type": "patch", | ||||
|       "path": "../../deps/spirv-cross-changes.patch" | ||||
|       "tag": "vulkan-sdk-1.3.290.0", | ||||
|       "commit": "5d127b917f080c6f052553c47170ec0ba702e54f" | ||||
|     } | ||||
|   ], | ||||
|   "cleanup": [ | ||||
|  |  | |||
|  | @ -20,12 +20,8 @@ | |||
|   "sources": [ | ||||
|     { | ||||
|       "type": "git", | ||||
|       "url": "https://github.com/pytorch/cpuinfo.git", | ||||
|       "commit": "05332fd802d9109a2a151ec32154b107c1e5caf9" | ||||
|     }, | ||||
|     { | ||||
|       "type": "patch", | ||||
|       "path": "../../deps/cpuinfo-changes.patch" | ||||
|       "url": "https://github.com/stenzek/cpuinfo.git", | ||||
|       "commit": "7524ad504fdcfcf75a18a133da6abd75c5d48053" | ||||
|     } | ||||
|   ], | ||||
|   "cleanup": [ | ||||
|  |  | |||
|  | @ -1192,6 +1192,7 @@ std::unique_ptr<GPUDevice> GPUDevice::CreateDeviceForAPI(RenderAPI api) | |||
|   X(shaderc_result_get_length)                                                                                         \ | ||||
|   X(shaderc_result_get_num_warnings)                                                                                   \ | ||||
|   X(shaderc_result_get_bytes)                                                                                          \ | ||||
|   X(shaderc_result_get_compilation_status)                                                                             \ | ||||
|   X(shaderc_result_get_error_message) | ||||
| 
 | ||||
| #define SPIRV_CROSS_FUNCTIONS(X)                                                                                       \ | ||||
|  | @ -1305,7 +1306,13 @@ bool dyn_libs::OpenSpirvCross(Error* error) | |||
|   if (s_spirv_cross_library.IsOpen()) | ||||
|     return true; | ||||
| 
 | ||||
| #ifdef _WIN32 | ||||
|   // SPVC's build on Windows doesn't spit out a versioned DLL.
 | ||||
|   const std::string libname = DynamicLibrary::GetVersionedFilename("spirv-cross-c-shared"); | ||||
| #else | ||||
|   const std::string libname = DynamicLibrary::GetVersionedFilename("spirv-cross-c-shared", SPVC_C_API_VERSION_MAJOR, | ||||
|                                                                    SPVC_C_API_VERSION_MINOR, SPVC_C_API_VERSION_PATCH); | ||||
| #endif | ||||
|   if (!s_spirv_cross_library.Open(libname.c_str(), error)) | ||||
|   { | ||||
|     Error::AddPrefix(error, "Failed to load spirv-cross: "); | ||||
|  | @ -1378,7 +1385,7 @@ bool GPUDevice::CompileGLSLShaderToVulkanSpv(GPUShaderStage stage, GPUShaderLang | |||
|   if (!dyn_libs::OpenShaderc(error)) | ||||
|     return false; | ||||
| 
 | ||||
|   shaderc_compile_options_t options = dyn_libs::shaderc_compile_options_initialize(); | ||||
|   const shaderc_compile_options_t options = dyn_libs::shaderc_compile_options_initialize(); | ||||
|   AssertMsg(options, "shaderc_compile_options_initialize() failed"); | ||||
| 
 | ||||
|   dyn_libs::shaderc_compile_options_set_source_language(options, shaderc_source_language_glsl); | ||||
|  | @ -1388,10 +1395,11 @@ bool GPUDevice::CompileGLSLShaderToVulkanSpv(GPUShaderStage stage, GPUShaderLang | |||
|   dyn_libs::shaderc_compile_options_set_optimization_level( | ||||
|     options, optimization ? shaderc_optimization_level_performance : shaderc_optimization_level_zero); | ||||
| 
 | ||||
|   shaderc_compilation_result_t result; | ||||
|   const shaderc_compilation_status status = dyn_libs::shaderc_compile_into_spv( | ||||
|     dyn_libs::s_shaderc_compiler, source.data(), source.length(), stage_kinds[static_cast<size_t>(stage)], "source", | ||||
|     entry_point, options, &result); | ||||
|   const shaderc_compilation_result_t result = | ||||
|     dyn_libs::shaderc_compile_into_spv(dyn_libs::s_shaderc_compiler, source.data(), source.length(), | ||||
|                                        stage_kinds[static_cast<size_t>(stage)], "source", entry_point, options); | ||||
|   const shaderc_compilation_status status = | ||||
|     result ? dyn_libs::shaderc_result_get_compilation_status(result) : shaderc_compilation_status_internal_error; | ||||
|   if (status != shaderc_compilation_status_success) | ||||
|   { | ||||
|     const std::string_view errors(result ? dyn_libs::shaderc_result_get_error_message(result) : "null result object"); | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Stenzek
						Stenzek