From 932336ac3009bf12629692de637f3bdb18d345c8 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Mon, 14 Sep 2026 21:47:38 +0200 Subject: [PATCH] VS: Use Ninja to build glslang and add ccache --- 3rdparty/glslang/glslang.vcxproj | 41 ++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/3rdparty/glslang/glslang.vcxproj b/3rdparty/glslang/glslang.vcxproj index 4f328a13d5..70c47330ac 100644 --- a/3rdparty/glslang/glslang.vcxproj +++ b/3rdparty/glslang/glslang.vcxproj @@ -37,9 +37,13 @@ - "Visual Studio $(VisualStudioVersion.Substring(0,2))" call vsdevcmd.bat -arch=amd64 - cmake -G $(CmakeGenerator) -A x64 ^ + cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)" + if not defined CCACHE_LAUNCH_ARGS set CCACHE_LAUNCH_ARGS= + cmake -G Ninja ^ + -DCMAKE_CXX_COMPILER="cl.exe" ^ + -DCMAKE_C_COMPILER="cl.exe" ^ + %25CCACHE_LAUNCH_ARGS%25 ^ -DCMAKE_BUILD_TYPE="Release" ^ -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded ^ -DGLSLANG_TESTS=OFF ^ @@ -48,11 +52,15 @@ -DENABLE_SPVREMAPPER=OFF ^ -DENABLE_HLSL=OFF ^ -DENABLE_OPT=OFF ^ - -S glslang ^ - -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)" + -S "$(SolutionDir)3rdparty\glslang\glslang" call vsdevcmd.bat -arch=amd64 - cmake -G $(CmakeGenerator) -A x64 ^ + cd "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)" + if not defined CCACHE_LAUNCH_ARGS set CCACHE_LAUNCH_ARGS= + cmake -G Ninja ^ + -DCMAKE_CXX_COMPILER="cl.exe" ^ + -DCMAKE_C_COMPILER="cl.exe" ^ + %25CCACHE_LAUNCH_ARGS%25 ^ -DCMAKE_BUILD_TYPE="Debug" ^ -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDebug ^ -DGLSLANG_TESTS=OFF ^ @@ -61,15 +69,14 @@ -DENABLE_SPVREMAPPER=OFF ^ -DENABLE_HLSL=OFF ^ -DENABLE_OPT=OFF ^ - -S glslang ^ - -B "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)" + -S "$(SolutionDir)3rdparty\glslang\glslang" echo Copying.. mkdir "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" - copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\SPIRV\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" - copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\OSDependent\Windows\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" - copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\$(CONFIGURATION)\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" + copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\SPIRV\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" + copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\OSDependent\Windows\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" + copy "$(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\glslang\*.lib" "$(SolutionDir)build\lib\$(Configuration)-$(Platform)\$(ProjectName)" echo Cleaning.. @@ -83,17 +90,16 @@ $(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\ $(CmakeReleaseCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:build /p:Configuration=Release /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m + ninja $(CmakeCopyCLI) + $(CmakeCleanCLI) $(CmakeReleaseCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:rebuild /p:Configuration=Release /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m + ninja $(CmakeCopyCLI) - $(CmakeReleaseCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:clean /p:Configuration=Release /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m $(CmakeCleanCLI) @@ -102,17 +108,16 @@ $(SolutionDir)build\tmp\$(ProjectName)-$(Configuration)-$(Platform)\ $(CmakeDebugCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:build /p:Configuration=Debug /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m + ninja $(CmakeCopyCLI) + $(CmakeCleanCLI) $(CmakeDebugCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:rebuild /p:Configuration=Debug /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m + ninja $(CmakeCopyCLI) - $(CmakeDebugCLI) - msbuild.exe "$(IntDir)\ALL_BUILD.vcxproj" /t:clean /p:Configuration=Debug /p:ForceImportBeforeCppTargets="$(PropsAbsPath)" /m $(CmakeCleanCLI)