From 60b1f859ae6d8c8bf4f182c1b42b08b722f61dae Mon Sep 17 00:00:00 2001 From: Helena Kotas Date: Mon, 17 Oct 2022 18:49:35 -0700 Subject: [PATCH] Update build to Visual Studio 2022 (new default); remove VS 2017 support (#4726) --- .gitignore | 2 +- CMakeSettings.json | 365 --------------------------------- appveyor.yml | 2 +- azure-pipelines.yml | 17 +- cmake/modules/FindDiaSDK.cmake | 29 +-- utils/hct/hctbuild.cmd | 42 +--- utils/hct/hctstart.cmd | 13 +- 7 files changed, 38 insertions(+), 432 deletions(-) delete mode 100644 CMakeSettings.json diff --git a/.gitignore b/.gitignore index 699bfde478..2c0c36de16 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,7 @@ *.dmp # Visual Studio Code directory. .vscode -# Visual Studio 2017 +# Visual Studio .vs/ # Test outputs *.ll.converted diff --git a/CMakeSettings.json b/CMakeSettings.json deleted file mode 100644 index a49709d5b3..0000000000 --- a/CMakeSettings.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - // See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file. - "configurations": [ - { - "name": "x64-Debug", - "generator": "Visual Studio 15 2017 Win64", - "configurationType" : "Debug", - "buildRoot": "${projectDir}\\..\\hlsl.bin", - "cmakeCommandArgs": "", - "buildCommandArgs": "-m -v:minimal", - "variables": [ - { - "name": "DXC_BUILD_ARCH", - "value": "x64" - }, - { - "name": "CLANG_ENABLE_ARCMT:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_ENABLE_STATIC_ANALYZER:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "HLSL_INCLUDE_TESTS:BOOL", - "value": "ON" - }, - { - "name": "LLVM_TARGETS_TO_BUILD:STRING", - "value": "None" - }, - { - "name": "LLVM_INCLUDE_DOCS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "LIBCLANG_BUILD_STATIC:BOOL", - "value": "ON" - }, - { - "name": "LLVM_OPTIMIZED_TABLEGEN:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_REQUIRES_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_APPEND_VC_REV:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_RTTI:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_DEFAULT_TARGET_TRIPLE:STRING", - "value": "dxil-ms-dx" - }, - { - "name": "CLANG_BUILD_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "-DLLVM_REQUIRES_RTTI:BOOL", - "value": "ON" - }, - { - "name": "-DCLANG_CL:BOOL", - "value": "OFF" - }, - { - "name": "-DCMAKE_SYSTEM_VERSION", - "value": "10.0.14393.0" - } - ] - }, - { - "name": "x86-Debug", - "generator": "Visual Studio 15 2017", - "configurationType" : "Debug", - "buildRoot": "${projectDir}\\..\\hlsl.bin.${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-m -v:minimal", - "variables": [ - { - "name": "DXC_BUILD_ARCH", - "value": "Win32" - }, - { - "name": "CLANG_ENABLE_ARCMT:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_ENABLE_STATIC_ANALYZER:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "HLSL_INCLUDE_TESTS:BOOL", - "value": "ON" - }, - { - "name": "LLVM_TARGETS_TO_BUILD:STRING", - "value": "None" - }, - { - "name": "LLVM_INCLUDE_DOCS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "LIBCLANG_BUILD_STATIC:BOOL", - "value": "ON" - }, - { - "name": "LLVM_OPTIMIZED_TABLEGEN:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_REQUIRES_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_APPEND_VC_REV:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_RTTI:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_DEFAULT_TARGET_TRIPLE:STRING", - "value": "dxil-ms-dx" - }, - { - "name": "CLANG_BUILD_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "-DLLVM_REQUIRES_RTTI:BOOL", - "value": "ON" - }, - { - "name": "-DCLANG_CL:BOOL", - "value": "OFF" - }, - { - "name": "-DCMAKE_SYSTEM_VERSION", - "value": "10.0.14393.0" - } - ] - }, - { - "name": "x86-Release", - "generator": "Visual Studio 15 2017", - "configurationType" : "Release", - "buildRoot": "${projectDir}\\..\\hlsl.bin.${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-m -v:minimal", - "variables": [ - { - "name": "DXC_BUILD_ARCH", - "value": "Win32" - }, - { - "name": "CLANG_ENABLE_ARCMT:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_ENABLE_STATIC_ANALYZER:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "HLSL_INCLUDE_TESTS:BOOL", - "value": "ON" - }, - { - "name": "LLVM_TARGETS_TO_BUILD:STRING", - "value": "None" - }, - { - "name": "LLVM_INCLUDE_DOCS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "LIBCLANG_BUILD_STATIC:BOOL", - "value": "ON" - }, - { - "name": "LLVM_OPTIMIZED_TABLEGEN:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_REQUIRES_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_APPEND_VC_REV:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_RTTI:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_DEFAULT_TARGET_TRIPLE:STRING", - "value": "dxil-ms-dx" - }, - { - "name": "CLANG_BUILD_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "-DLLVM_REQUIRES_RTTI:BOOL", - "value": "ON" - }, - { - "name": "-DCLANG_CL:BOOL", - "value": "OFF" - }, - { - "name": "-DCMAKE_SYSTEM_VERSION", - "value": "10.0.14393.0" - } - ] - }, - { - "name": "x64-Release", - "generator": "Visual Studio 15 2017 Win64", - "configurationType" : "Release", - "buildRoot": "${projectDir}\\..\\hlsl.bin.${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-m -v:minimal", - "variables": [ - { - "name": "DXC_BUILD_ARCH", - "value": "x64" - }, - { - "name": "CLANG_ENABLE_ARCMT:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_ENABLE_STATIC_ANALYZER:BOOL", - "value": "OFF" - }, - { - "name": "CLANG_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_TESTS:BOOL", - "value": "OFF" - }, - { - "name": "HLSL_INCLUDE_TESTS:BOOL", - "value": "ON" - }, - { - "name": "LLVM_TARGETS_TO_BUILD:STRING", - "value": "None" - }, - { - "name": "LLVM_INCLUDE_DOCS:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_INCLUDE_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "LIBCLANG_BUILD_STATIC:BOOL", - "value": "ON" - }, - { - "name": "LLVM_OPTIMIZED_TABLEGEN:BOOL", - "value": "OFF" - }, - { - "name": "LLVM_REQUIRES_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_APPEND_VC_REV:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_RTTI:BOOL", - "value": "ON" - }, - { - "name": "LLVM_ENABLE_EH:BOOL", - "value": "ON" - }, - { - "name": "LLVM_DEFAULT_TARGET_TRIPLE:STRING", - "value": "dxil-ms-dx" - }, - { - "name": "CLANG_BUILD_EXAMPLES:BOOL", - "value": "OFF" - }, - { - "name": "-DLLVM_REQUIRES_RTTI:BOOL", - "value": "ON" - }, - { - "name": "-DCLANG_CL:BOOL", - "value": "OFF" - }, - { - "name": "-DCMAKE_SYSTEM_VERSION", - "value": "10.0.14393.0" - } - ] - } - ] -} \ No newline at end of file diff --git a/appveyor.yml b/appveyor.yml index d4cbfa54d9..eed591b347 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,7 +1,7 @@ version: 1.0.{build} image: - - Visual Studio 2019 + - Visual Studio 2022 - Ubuntu platform: x64 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9ba72cef74..ee4b32a781 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,7 +8,7 @@ stages: timeoutInMinutes: 90 pool: - vmImage: windows-2019 + vmImage: windows-2022 variables: HLSL_SRC_DIR: '$(Build.SourcesDirectory)' @@ -17,14 +17,15 @@ stages: strategy: matrix: - VS2019_Release: + VS2022_Release: configuration: Release - VS2019_Debug: + VS2022_Debug: configuration: Debug steps: - - script: git submodule update --init - displayName: 'Updating submodules' + - checkout: self + clean: true + submodules: true - script: | call utils\hct\hctstart.cmd %HLSL_SRC_DIR% %HLSL_BLD_DIR% call utils\hct\hctbuild.cmd -$(platform) -$(configuration) -show-cmake-log -spirvtest @@ -90,6 +91,10 @@ stages: vmImage: $(image) steps: + - checkout: self + clean: true + submodules: true + - task: UsePythonVersion@0 inputs: versionSpec: '3.x' @@ -104,8 +109,6 @@ stages: ulimit -Sn 1024 displayName: 'Installing dependencies' condition: eq(variables['image'], variables['macOS']) - - bash: git submodule update --init - displayName: 'Updating submodules' - bash: | mkdir build cd build diff --git a/cmake/modules/FindDiaSDK.cmake b/cmake/modules/FindDiaSDK.cmake index b7a3a8cdad..e93b2f4723 100644 --- a/cmake/modules/FindDiaSDK.cmake +++ b/cmake/modules/FindDiaSDK.cmake @@ -26,26 +26,15 @@ find_path(DIASDK_INCLUDE_DIR # Set variable DIASDK_INCLUDE_DIR ) -# VS 2017 -if (CMAKE_GENERATOR MATCHES "Visual Studio 15 2017.*") - if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64") - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/amd64 ) - elseif (CMAKE_GENERATOR_PLATFORM STREQUAL "ARM") - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm ) - else (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64") - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib ) - endif (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64") -else (CMAKE_GENERATOR MATCHES "Visual Studio 15 2017.*") - if ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/amd64 ) - elseif ((CMAKE_GENERATOR_PLATFORM STREQUAL "ARM") OR ("${DXC_BUILD_ARCH}" STREQUAL "ARM")) - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm ) - elseif ((CMAKE_GENERATOR_PLATFORM MATCHES "ARM64.*") OR ("${DXC_BUILD_ARCH}" MATCHES "ARM64.*")) - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm64 ) - else ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) - find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib ) - endif((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) -endif (CMAKE_GENERATOR MATCHES "Visual Studio 15 2017.*") +if ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) + find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/amd64 ) +elseif ((CMAKE_GENERATOR_PLATFORM STREQUAL "ARM") OR ("${DXC_BUILD_ARCH}" STREQUAL "ARM")) + find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm ) +elseif ((CMAKE_GENERATOR_PLATFORM MATCHES "ARM64.*") OR ("${DXC_BUILD_ARCH}" MATCHES "ARM64.*")) + find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm64 ) +else ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) + find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib ) +endif((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${DXC_BUILD_ARCH}" STREQUAL "x64")) set(DIASDK_LIBRARIES ${DIASDK_GUIDS_LIBRARY}) set(DIASDK_INCLUDE_DIRS ${DIASDK_INCLUDE_DIR}) diff --git a/utils/hct/hctbuild.cmd b/utils/hct/hctbuild.cmd index adf969daab..d41995d448 100644 --- a/utils/hct/hctbuild.cmd +++ b/utils/hct/hctbuild.cmd @@ -22,8 +22,8 @@ if "%BUILD_ARCH%"=="" ( set BUILD_ARCH=Win32 ) -set BUILD_GENERATOR=Visual Studio 16 2019 -set BUILD_VS_VER=2019 +set BUILD_GENERATOR=Visual Studio 17 2022 +set BUILD_VS_VER=2022 set BUILD_CONFIG=Debug set DO_SETUP=1 set DO_BUILD=1 @@ -125,17 +125,12 @@ if /i "%1"=="-Release" ( set BUILD_CONFIG=Release shift /1 & goto :parse_args ) -if "%1"=="-vs2017" ( - set BUILD_GENERATOR=Visual Studio 15 2017 - set BUILD_VS_VER=2017 - shift /1 & goto :parse_args -) if "%1"=="-vs2019" ( + set BUILD_GENERATOR=Visual Studio 16 2019 + set BUILD_VS_VER=2019 shift /1 & goto :parse_args ) if "%1"=="-vs2022" ( - set BUILD_GENERATOR=Visual Studio 17 2022 - set BUILD_VS_VER=2022 shift /1 & goto :parse_args ) if "%1"=="-tblgen" ( @@ -251,43 +246,29 @@ if "%ENV_SDK_VERSION:~-1%"=="\" ( set BUILD_ARM_CROSSCOMPILING=0 if /i "%BUILD_ARCH%"=="Win32" ( - if "%BUILD_VS_VER%" NEQ "2017" ( - set VS2019ARCH=-AWin32 - ) + set VS_ARCH=-AWin32 ) if /i "%BUILD_ARCH%"=="x64" ( - set BUILD_GENERATOR=%BUILD_GENERATOR% %BUILD_ARCH:x64=Win64% - if "%BUILD_VS_VER%" NEQ "2017" ( - set BUILD_GENERATOR=%BUILD_GENERATOR% - set VS2019ARCH=-Ax64 - ) + set VS_ARCH=-Ax64 ) if /i "%BUILD_ARCH%"=="arm" ( set BUILD_GENERATOR_PLATFORM=ARM set BUILD_ARM_CROSSCOMPILING=1 - if "%BUILD_VS_VER%" NEQ "2017" ( - set VS2019ARCH=-AARM - ) + set VS_ARCH=-AARM ) if /i "%BUILD_ARCH%"=="arm64" ( set BUILD_GENERATOR_PLATFORM=ARM64 set BUILD_ARM_CROSSCOMPILING=1 - if "%BUILD_VS_VER%" NEQ "2017" ( - set VS2019ARCH=-AARM64 - ) + set VS_ARCH=-AARM64 ) if /i "%BUILD_ARCH%"=="arm64ec" ( - if "%BUILD_VS_VER%"=="2017" ( - echo "ARM64EC platform is not supported on VS2017." - exit /b 1 - ) set BUILD_GENERATOR_PLATFORM=ARM64EC set BUILD_ARM_CROSSCOMPILING=1 - set VS2019ARCH=-AARM64EC + set VS_ARCH=-AARM64EC set WINSDK_MIN_VERSION=10.0.21330.0 set CMAKE_OPTS=%CMAKE_OPTS% -DMSVC_BUILD_AS_X=1 ) @@ -372,7 +353,7 @@ if /i "%BUILD_ARCH%"=="Win32" ( set BUILD_TOOLS=amd64_arm64 ) -call :configandbuild %BUILD_CONFIG% %BUILD_ARCH% %HLSL_BLD_DIR% "%BUILD_GENERATOR%" "%VS2019ARCH%" +call :configandbuild %BUILD_CONFIG% %BUILD_ARCH% %HLSL_BLD_DIR% "%BUILD_GENERATOR%" "%VS_ARCH%" if errorlevel 1 exit /b 1 if "%BUILD_GENERATOR%"=="Ninja" ( @@ -387,7 +368,7 @@ exit /b 0 echo Builds HLSL solutions and the product and test binaries for the current echo flavor and architecture. echo. -echo hctbuild [-s or -b] [-alldef] [-analyze] [-official] [-fv] [-fvloc ] [-rel] [-arm or -arm64 or -x86 or -x64] [-Release] [-Debug] [-vs2017] [-vs2019] [-ninja] [-tblgen path] [-speak-up] [-no-parallel] [-no-dxilconv] [-update-generated-sources] +echo hctbuild [-s or -b] [-alldef] [-analyze] [-official] [-fv] [-fvloc ] [-rel] [-arm or -arm64 or -x86 or -x64] [-Release] [-Debug] [-vs2019] [-ninja] [-tblgen path] [-speak-up] [-no-parallel] [-no-dxilconv] [-update-generated-sources] echo. echo -s creates the projects only, without building echo -b builds the existing project @@ -401,7 +382,6 @@ echo -rel builds release rather than debug echo -speak-up enables audible build confirmation echo -no-parallel disables parallel build echo -no-dxilconv disables build of DXBC to DXIL converter and tools -echo -vs2017 uses Visual Studio 2017 to build echo -vs2019 uses Visual Studio 2019 to build echo -vs2022 uses Visual Studio 2022 to build echo diff --git a/utils/hct/hctstart.cmd b/utils/hct/hctstart.cmd index 7a28a6be3a..299a24f024 100644 --- a/utils/hct/hctstart.cmd +++ b/utils/hct/hctstart.cmd @@ -116,18 +116,17 @@ goto :eof :findcmake for %%e in (Community Professional Enterprise) do ( - rem check 2022 in programfiles first + rem check VS 2022 in programfiles first if exist "%programfiles%\Microsoft Visual Studio\2022\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" ( set "PATH=%PATH%;%programfiles%\Microsoft Visual Studio\2022\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" echo Path adjusted to include cmake from Visual Studio 2022 %%e. exit /b 0 ) - for %%v in (2019 2017) do ( - if exist "%programfiles(x86)%\Microsoft Visual Studio\%%v\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" ( - set "PATH=%PATH%;%programfiles(x86)%\Microsoft Visual Studio\%%v\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" - echo Path adjusted to include cmake from Visual Studio %%v %%e. - exit /b 0 - ) + rem then check VS 2019 in programfiles(x86) + if exist "%programfiles(x86)%\Microsoft Visual Studio\2019\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" ( + set "PATH=%PATH%;%programfiles(x86)%\Microsoft Visual Studio\2019\%%e\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin" + echo Path adjusted to include cmake from Visual Studio 2019 %%e. + exit /b 0 ) ) if errorlevel 1 if exist "%programfiles%\CMake\bin" set path=%path%;%programfiles%\CMake\bin