Skip to content

Commit ce6c6f7

Browse files
hekotatex3d
authored andcommitted
Use D3D12 headers from the same Windows 10 SDK version as cmake is using (#3586)
* Use D3D12 headers from the same Windows 10 SDK version as cmake is using (cmake variable CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION) * For ARM64EC builds detect SDK version from VSDevCmd environment variable instead of a fixed version in hctbuild.cmd * Add option -show-cmake-log to hctbuild and enable it in AppVeyor
1 parent 2b19f8f commit ce6c6f7

3 files changed

Lines changed: 29 additions & 7 deletions

File tree

appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ before_build:
3838
- cmd: call utils\hct\hctstart %HLSL_SRC_DIR% %HLSL_BLD_DIR%
3939

4040
build_script:
41-
- cmd: call utils\hct\hctbuild -%PLATFORM% -%CONFIGURATION% -spirvtest
41+
- cmd: call utils\hct\hctbuild -%PLATFORM% -%CONFIGURATION% -show-cmake-log -spirvtest
4242
- sh: mkdir build && cd build
4343
- sh: cmake .. -GNinja $(cat ../utils/cmake-predefined-config-params) -DSPIRV_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS=-Werror
4444
- sh: ninja

cmake/modules/FindD3D12.cmake

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
# Find the win10 SDK path.
1+
# Find the Win10 SDK path.
22
if ("$ENV{WIN10_SDK_PATH}$ENV{WIN10_SDK_VERSION}" STREQUAL "" )
3-
get_filename_component(WIN10_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;InstallationFolder]" ABSOLUTE CACHE)
4-
get_filename_component(TEMP_WIN10_SDK_VERSION "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0;ProductVersion]" ABSOLUTE CACHE)
5-
get_filename_component(WIN10_SDK_VERSION ${TEMP_WIN10_SDK_VERSION} NAME)
3+
get_filename_component(WIN10_SDK_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE CACHE)
4+
set (WIN10_SDK_VERSION ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION})
65
elseif(TRUE)
76
set (WIN10_SDK_PATH $ENV{WIN10_SDK_PATH})
87
set (WIN10_SDK_VERSION $ENV{WIN10_SDK_VERSION})

utils/hct/hctbuild.cmd

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ set VENDOR=
5252
set SPIRV=OFF
5353
set SPV_TEST=OFF
5454
set DXILCONV=ON
55+
set DXC_CMAKE_SYSTEM_VERSION=10.0.14393.0
56+
set SHOW_CMAKE_LOG=0
5557

5658
if "%1"=="-s" (
5759
set DO_BUILD=0
@@ -187,6 +189,11 @@ if "%1"=="-dxc-cmake" (
187189
shift /1
188190
)
189191

192+
if "%1"=="-show-cmake-log" (
193+
set SHOW_CMAKE_LOG=1
194+
shift /1
195+
)
196+
190197
if "%CMAKE_PATH%"=="" (
191198
where cmake.exe 1>nul 2>nul
192199
if errorlevel 1 (
@@ -210,6 +217,12 @@ if "%1"=="-spirvtest" (
210217
)
211218
rem End SPIRV change
212219

220+
rem Get SDK version from VSDevCmd (needed for ARM64X builds), strip the backslash at the end
221+
set ENV_SDK_VERSION=%WindowsSDKVersion%
222+
if "%ENV_SDK_VERSION:~-1%"=="\" (
223+
set "ENV_SDK_VERSION=%ENV_SDK_VERSION:~0,-1%"
224+
)
225+
213226
set BUILD_ARM_CROSSCOMPILING=0
214227

215228
if /i "%BUILD_ARCH%"=="Win32" (
@@ -250,7 +263,12 @@ if /i "%BUILD_ARCH%"=="arm64ec" (
250263
set BUILD_GENERATOR_PLATFORM=ARM64EC
251264
set BUILD_ARM_CROSSCOMPILING=1
252265
set VS2019ARCH=-AARM64EC
253-
set CMAKE_OPTS=%CMAKE_OPTS% -DCMAKE_SYSTEM_VERSION=10.0.20207.0 -DMSVC_BUILD_AS_X=1
266+
if "%ENV_SDK_VERSION%"=="" (
267+
set DXC_CMAKE_SYSTEM_VERSION=10.0.21330.0
268+
) else (
269+
set DXC_CMAKE_SYSTEM_VERSION=%ENV_SDK_VERSION%
270+
)
271+
set CMAKE_OPTS=%CMAKE_OPTS% -DMSVC_BUILD_AS_X=1
254272
)
255273

256274
if "%1"=="-ninja" (
@@ -289,7 +307,7 @@ set CMAKE_OPTS=%CMAKE_OPTS% -DLLVM_DEFAULT_TARGET_TRIPLE:STRING=dxil-ms-dx
289307
set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_BUILD_EXAMPLES:BOOL=OFF
290308
set CMAKE_OPTS=%CMAKE_OPTS% -DLLVM_REQUIRES_RTTI:BOOL=ON
291309
set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_CL:BOOL=OFF
292-
set CMAKE_OPTS=%CMAKE_OPTS% -DCMAKE_SYSTEM_VERSION=10.0.14393.0
310+
set CMAKE_OPTS=%CMAKE_OPTS% -DCMAKE_SYSTEM_VERSION=%DXC_CMAKE_SYSTEM_VERSION%
293311
set CMAKE_OPTS=%CMAKE_OPTS% -DDXC_BUILD_ARCH=%BUILD_ARCH%
294312

295313
rem ARM cross-compile setup
@@ -407,6 +425,11 @@ if "%DO_SETUP%"=="1" (
407425
echo Running "%CMAKE_PATH%" %CMAKE_OPTS% -G %4 %5 %HLSL_SRC_DIR% > %3\cmake-log.txt
408426
"%CMAKE_PATH%" %CMAKE_OPTS% -G %4 %5 %HLSL_SRC_DIR% >> %3\cmake-log.txt 2>&1
409427
)
428+
if %SHOW_CMAKE_LOG%==1 (
429+
echo ------- Start of %3\cmake-log.txt -------
430+
type %3\cmake-log.txt
431+
echo -------- End of %3\cmake-log.txt --------
432+
)
410433
if errorlevel 1 (
411434
echo Failed to configure cmake projects.
412435
echo ===== begin cmake-log.txt =====

0 commit comments

Comments
 (0)