diff --git a/CMakeLists.txt b/CMakeLists.txt index 63385f2..392382e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -185,7 +185,7 @@ install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/.nuget/${PROJECT_NAME}-config.cmake.in +configure_package_config_file(${CMAKE_CURRENT_SOURCE_DIR}/build/${PROJECT_NAME}-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PACKAGE_NAME}) diff --git a/build/DirectXTex-GitHub-CMake-Dev17.yml b/build/DirectXTex-GitHub-CMake-Dev17.yml new file mode 100644 index 0000000..b87c79b --- /dev/null +++ b/build/DirectXTex-GitHub-CMake-Dev17.yml @@ -0,0 +1,138 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library using CMake. + +schedules: +- cron: "0 5 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +variables: + VS_GENERATOR: 'Visual Studio 17 2022' + WIN10_SDK: '10.0.19041.0' + WIN11_SDK: '10.0.22000.0' + +pool: + vmImage: windows-2022 + +jobs: +- job: CMAKE_BUILD + displayName: CMake using VS Generator + steps: + - checkout: self + clean: true + fetchTags: false + - task: CMake@1 + displayName: 'CMake (MSVC): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build x64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build x64 Release' + inputs: + cwd: '' + cmakeArgs: --build out -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (MSVC): Config x86' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A Win32 -B out2 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build x86 Debug' + inputs: + cwd: '' + cmakeArgs: --build out2 -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build x86 Release' + inputs: + cwd: '' + cmakeArgs: --build out2 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (MSVC): Config ARM64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM64 -B out3 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build ARM64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out3 -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build ARM64 Release' + inputs: + cwd: '' + cmakeArgs: --build out3 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (UWP): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out4 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0' + - task: CMake@1 + displayName: 'CMake (UWP): Build x64' + inputs: + cwd: '' + cmakeArgs: --build out4 -v + - task: CMake@1 + displayName: 'CMake (UWP): Config ARM' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM -B out5 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0' + - task: CMake@1 + displayName: 'CMake (UWP): Build ARM' + inputs: + cwd: '' + cmakeArgs: --build out5 -v + - task: CMake@1 + displayName: 'CMake (ClangCl): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -T clangcl -B out6 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK)' + - task: CMake@1 + displayName: 'CMake (ClangCl): Build x64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out6 -v --config Debug + - task: CMake@1 + displayName: 'CMake (ClangCl): Build x64 Release' + inputs: + cwd: '' + cmakeArgs: --build out6 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (ClangCl): Config ARM64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM64 -T clangcl -B out7 -DCMAKE_SYSTEM_VERSION=$(WIN11_SDK)' + - task: CMake@1 + displayName: 'CMake (ClangCl): Build ARM64' + inputs: + cwd: '' + cmakeArgs: --build out7 -v --config Debug + - task: CMake@1 + displayName: 'CMake (Win10): Config' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out8 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=ON' + - task: CMake@1 + displayName: 'CMake (Win10): Build' + inputs: + cwd: '' + cmakeArgs: --build out8 -v --config Debug diff --git a/build/DirectXTex-GitHub-CMake.yml b/build/DirectXTex-GitHub-CMake.yml new file mode 100644 index 0000000..3a89cd6 --- /dev/null +++ b/build/DirectXTex-GitHub-CMake.yml @@ -0,0 +1,138 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library using CMake. + +schedules: +- cron: "0 5 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +variables: + VS_GENERATOR: 'Visual Studio 16 2019' + WIN10_SDK: '10.0.19041.0' + WIN11_SDK: '10.0.22000.0' + +pool: + vmImage: windows-2019 + +jobs: +- job: CMAKE_BUILD + displayName: CMake using VS Generator + steps: + - checkout: self + clean: true + fetchTags: false + - task: CMake@1 + displayName: 'CMake (MSVC): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build x64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build x64 Release' + inputs: + cwd: '' + cmakeArgs: --build out -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (MSVC): Config x86' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A Win32 -B out2 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build x86 Debug' + inputs: + cwd: '' + cmakeArgs: --build out2 -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build x86 Release' + inputs: + cwd: '' + cmakeArgs: --build out2 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (MSVC): Config ARM64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM64 -B out3 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=OFF' + - task: CMake@1 + displayName: 'CMake (MSVC): Build ARM64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out3 -v --config Debug + - task: CMake@1 + displayName: 'CMake (MSVC): Build ARM64 Release' + inputs: + cwd: '' + cmakeArgs: --build out3 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (UWP): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out4 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0' + - task: CMake@1 + displayName: 'CMake (UWP): Build x64' + inputs: + cwd: '' + cmakeArgs: --build out4 -v + - task: CMake@1 + displayName: 'CMake (UWP): Config ARM' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM -B out5 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION=10.0' + - task: CMake@1 + displayName: 'CMake (UWP): Build ARM' + inputs: + cwd: '' + cmakeArgs: --build out5 -v + - task: CMake@1 + displayName: 'CMake (ClangCl): Config x64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -T clangcl -B out6 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK)' + - task: CMake@1 + displayName: 'CMake (ClangCl): Build x64 Debug' + inputs: + cwd: '' + cmakeArgs: --build out6 -v --config Debug + - task: CMake@1 + displayName: 'CMake (ClangCl): Build x64 Release' + inputs: + cwd: '' + cmakeArgs: --build out6 -v --config RelWithDebInfo + - task: CMake@1 + displayName: 'CMake (ClangCl): Config ARM64' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A ARM64 -T clangcl -B out7 -DCMAKE_SYSTEM_VERSION=$(WIN11_SDK)' + - task: CMake@1 + displayName: 'CMake (ClangCl): Build ARM64' + inputs: + cwd: '' + cmakeArgs: --build out7 -v --config Debug + - task: CMake@1 + displayName: 'CMake (Win10): Config' + inputs: + cwd: '' + cmakeArgs: '-G "$(VS_GENERATOR)" -A x64 -B out8 -DCMAKE_SYSTEM_VERSION=$(WIN10_SDK) -DBUILD_DX12=ON' + - task: CMake@1 + displayName: 'CMake (Win10): Build' + inputs: + cwd: '' + cmakeArgs: --build out8 -v --config Debug diff --git a/build/DirectXTex-GitHub-Dev17.yml b/build/DirectXTex-GitHub-Dev17.yml new file mode 100644 index 0000000..26eb805 --- /dev/null +++ b/build/DirectXTex-GitHub-Dev17.yml @@ -0,0 +1,189 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library for Windows Desktop and UWP. + +schedules: +- cron: "0 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: + - main + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: windows-2022 + +jobs: +- job: DESKTOP_BUILD + displayName: 'Win32 Desktop' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022.sln 32dbg + inputs: + solution: DirectXTex_Desktop_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022.sln 32rel + inputs: + solution: DirectXTex_Desktop_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022.sln 64dbg + inputs: + solution: DirectXTex_Desktop_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022.sln 64rel + inputs: + solution: DirectXTex_Desktop_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln 32dbg + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln 32rel + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln 64dbg + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln 64rel + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln arm64dbg + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2022_Win10.sln arm64rel + inputs: + solution: DirectXTex_Desktop_2022_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release + msbuildArchitecture: x64 + +- job: UWP_BUILD + displayName: 'Universal Windows Platform (UWP)' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln 32dbg + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln 32rel + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln 64dbg + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln 64rel + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln armdbg + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln armrel + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln arm64dbg + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2022.sln arm64rel + inputs: + solution: DirectXTex_Windows10_2022.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release + msbuildArchitecture: x64 diff --git a/build/DirectXTex-GitHub-MinGW.yml b/build/DirectXTex-GitHub-MinGW.yml new file mode 100644 index 0000000..7bba828 --- /dev/null +++ b/build/DirectXTex-GitHub-MinGW.yml @@ -0,0 +1,226 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library and test suite using the MinGW compiler. + +schedules: +- cron: "0 5 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: windows-2022 + +variables: + VCPKG_CMAKE_DIR: '$(VCPKG_ROOT)/scripts/buildsystems/vcpkg.cmake' + GITHUB_PAT: $(GITHUBPUBLICTOKEN) + WIN11_SDK: '10.0.22000.0' + URL_MINGW32: https://github.com/brechtsanders/winlibs_mingw/releases/download/12.2.0-14.0.6-10.0.0-ucrt-r2/winlibs-i686-posix-dwarf-gcc-12.2.0-llvm-14.0.6-mingw-w64ucrt-10.0.0-r2.zip + HASH_MINGW32: 'fcd1e11b896190da01c83d5b5fb0d37b7c61585e53446c2dab0009debc3915e757213882c35e35396329338de6f0222ba012e23a5af86932db45186a225d1272' + URL_MINGW64: https://github.com/brechtsanders/winlibs_mingw/releases/download/12.2.0-14.0.6-10.0.0-ucrt-r2/winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-14.0.6-mingw-w64ucrt-10.0.0-r2.zip + HASH_MINGW64: '6694e552d73195b57f283645ab78cb0180f4d957b5501a83e6b4f2679dfad13a8e85e1df6f7b061ea4431fbd2bb0c8f2ac3a1dd810489c1a8d1665b226df8092' + +jobs: +- job: MINGW32_BUILD + displayName: 'Minimalist GNU for Windows (MinGW32)' + steps: + - checkout: self + clean: true + fetchTags: false + - task: CmdLine@2 + # We can use the preinstalled vcpkg instead of the latest when MS Hosted updates their vcpkg to the newer DirectX-Headers + displayName: Fetch VCPKG + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/vcpkg.git + workingDirectory: $(Build.SourcesDirectory) + - task: CmdLine@2 + displayName: VCPKG Bootstrap + inputs: + script: | + call bootstrap-vcpkg.bat + echo ##vso[task.setvariable variable=VCPKG_DEFAULT_TRIPLET;]x86-mingw-static + echo ##vso[task.setvariable variable=VCPKG_DEFAULT_HOST_TRIPLET;]x86-mingw-static + + workingDirectory: $(Build.SourcesDirectory)\vcpkg + - task: PowerShell@2 + # We install GCC 12.2 as the MS Hosted only offers 11.2 + displayName: Install MinGW32 + inputs: + targetType: inline + script: | + $ProgressPreference = 'SilentlyContinue' + Write-Host "Downloading winlibs..." + Invoke-WebRequest -Uri "$(URL_MINGW32)" -OutFile "gw32.zip" + Write-Host "Downloaded." + $fileHash = Get-FileHash -Algorithm SHA512 gw32.zip | ForEach { $_.Hash} | Out-String + $filehash = $fileHash.Trim() + Write-Host "##[debug]SHA512: " $fileHash + if ($fileHash -ne '$(HASH_MINGW32)') { + Write-Error -Message "##[error]Computed hash does not match!" -ErrorAction Stop + } + Write-Host "Extracting winlibs..." + Expand-Archive -LiteralPath 'gw32.zip' + Write-Host "Extracted." + Write-Host "Added to path: $env:BUILD_SOURCESDIRECTORY\gw32\mingw32\bin" + Write-Host "##vso[task.prependpath]$env:BUILD_SOURCESDIRECTORY\gw32\mingw32\bin" + $sdkroot = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' | Select-Object -ExpandProperty KitsRoot10 + $windows11sdk = "{0}bin\$(WIN11_SDK)\" -f $sdkroot + if (Test-Path "$windows11sdk") { + Write-Host "##vso[task.setvariable variable=WindowsSdkVerBinPath;]$windows11sdk" + } + else { + Write-Error -Message "##[error]Can't find Windows SDK ($(WIN11_SDK))" -ErrorAction Stop + } + + workingDirectory: $(Build.SourcesDirectory) + - task: BatchScript@1 + displayName: CompileShaders + inputs: + filename: DirectXTex/Shaders/CompileShaders.cmd + workingFolder: $(Build.SourcesDirectory)\DirectXTex\Shaders + - task: BatchScript@1 + displayName: HLSL + inputs: + filename: DDSView/hlsl.cmd + workingFolder: $(Build.SourcesDirectory)\DDSView + - task: CmdLine@2 + displayName: GCC version + inputs: + script: g++ --version + - task: CmdLine@2 + # The error checks are commented out due to a bug with vcpkg not returning 0 on success. + displayName: VCPKG install headers + inputs: + script: | + call vcpkg install directxmath + REM @if ERRORLEVEL 1 goto error + call vcpkg install directx-headers + REM @if ERRORLEVEL 1 goto error + :finish + @echo --- VCPKG COMPLETE --- + exit /b 0 + :error + @echo --- ERROR: VCPKG FAILED --- + exit /b 1 + + workingDirectory: $(Build.SourcesDirectory)\vcpkg + - task: CMake@1 + displayName: CMake (MinGW32) + inputs: + cwd: '' + cmakeArgs: -B out -DCMAKE_BUILD_TYPE="Debug" -DDIRECTX_ARCH=x86 -DCMAKE_TOOLCHAIN_FILE="$(VCPKG_CMAKE_DIR)" -DCMAKE_CXX_COMPILER="g++.exe" -G "MinGW Makefiles" -DVCPKG_TARGET_TRIPLET=x86-mingw-static -DUSE_PREBUILT_SHADERS=ON -DCOMPILED_SHADERS=$(Build.SourcesDirectory)\DirectXTex\Shaders\Compiled -DCOMPILED_DDSVIEW_SHADERS=$(Build.SourcesDirectory)\DDSView\Shaders + - task: CMake@1 + displayName: CMake (MinGW32) Build + inputs: + cwd: '' + cmakeArgs: --build out + +- job: MINGW64_BUILD + displayName: 'Minimalist GNU for Windows (MinGW-W64) BUILD_TESTING=ON' + steps: + - checkout: self + clean: true + fetchTags: false + - task: CmdLine@2 + displayName: Fetch VCPKG + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/vcpkg.git + workingDirectory: $(Build.SourcesDirectory) + - task: CmdLine@2 + displayName: Fetch Tests + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/walbourn/directxtextest.git Tests + - task: CmdLine@2 + displayName: VCPKG Bootstrap + inputs: + script: | + call bootstrap-vcpkg.bat + echo ##vso[task.setvariable variable=VCPKG_DEFAULT_TRIPLET;]x64-mingw-static + echo ##vso[task.setvariable variable=VCPKG_DEFAULT_HOST_TRIPLET;]x64-mingw-static + + workingDirectory: $(Build.SourcesDirectory)\vcpkg + - task: PowerShell@2 + displayName: Install MinGW-W64 + inputs: + targetType: inline + script: | + $ProgressPreference = 'SilentlyContinue' + Write-Host "Downloading winlibs..." + Invoke-WebRequest -Uri "$(URL_MINGW64)" -OutFile "gw64.zip" + Write-Host "Downloaded." + $fileHash = Get-FileHash -Algorithm SHA512 gw64.zip | ForEach { $_.Hash} | Out-String + $filehash = $fileHash.Trim() + Write-Host "##[debug]SHA512: " $fileHash + if ($fileHash -ne '$(HASH_MINGW64)') { + Write-Error -Message "##[error]Computed hash does not match!" -ErrorAction Stop + } + Write-Host "Extracting winlibs..." + Expand-Archive -LiteralPath 'gw64.zip' + Write-Host "Extracted." + Write-Host "Added to path: $env:BUILD_SOURCESDIRECTORY\gw64\mingw64\bin" + Write-Host "##vso[task.prependpath]$env:BUILD_SOURCESDIRECTORY\gw64\mingw64\bin" + $sdkroot = Get-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' | Select-Object -ExpandProperty KitsRoot10 + $windows11sdk = "{0}bin\$(WIN11_SDK)\" -f $sdkroot + $windows11x64sdk = "{0}bin\$(WIN11_SDK)\x64" -f $sdkroot + if (Test-Path "$windows11sdk") { + Write-Host "##vso[task.setvariable variable=WindowsSdkVerBinPath;]$windows11sdk" + Write-Host "##vso[task.prependpath]$windows11x64sdk" + } + else { + Write-Error -Message "##[error]Can't find Windows SDK ($(WIN11_SDK))" -ErrorAction Stop + } + + workingDirectory: $(Build.SourcesDirectory) + - task: BatchScript@1 + displayName: CompileShaders.cmd + inputs: + filename: DirectXTex/Shaders/CompileShaders.cmd + workingFolder: $(Build.SourcesDirectory)\DirectXTex\Shaders + - task: BatchScript@1 + displayName: HLSL + inputs: + filename: DDSView/hlsl.cmd + workingFolder: $(Build.SourcesDirectory)\DDSView + - task: CmdLine@2 + displayName: GCC version + inputs: + script: g++ --version + - task: CmdLine@2 + displayName: VCPKG install headers + inputs: + script: | + call vcpkg install directxmath + REM @if ERRORLEVEL 1 goto error + call vcpkg install directx-headers + REM @if ERRORLEVEL 1 goto error + :finish + @echo --- VCPKG COMPLETE --- + exit /b 0 + :error + @echo --- ERROR: VCPKG FAILED --- + exit /b 1 + + workingDirectory: $(Build.SourcesDirectory)\vcpkg + - task: CMake@1 + displayName: CMake (MinGW-W64) + inputs: + cwd: '' + cmakeArgs: -B out -DCMAKE_BUILD_TYPE="Debug" -DDIRECTX_ARCH=x64 -DCMAKE_TOOLCHAIN_FILE="$(VCPKG_CMAKE_DIR)" -DCMAKE_CXX_COMPILER="g++.exe" -G "MinGW Makefiles" -DVCPKG_TARGET_TRIPLET=x64-mingw-static -DUSE_PREBUILT_SHADERS=ON -DCOMPILED_SHADERS=$(Build.SourcesDirectory)\DirectXTex\Shaders\Compiled -DCOMPILED_DDSVIEW_SHADERS=$(Build.SourcesDirectory)\DDSView\Shaders + - task: CMake@1 + displayName: CMake (MinGW-W64) Build + inputs: + cwd: '' + cmakeArgs: --build out diff --git a/build/DirectXTex-GitHub-Test-Dev17.yml b/build/DirectXTex-GitHub-Test-Dev17.yml new file mode 100644 index 0000000..3924e1d --- /dev/null +++ b/build/DirectXTex-GitHub-Test-Dev17.yml @@ -0,0 +1,250 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library and test suite. + +schedules: +- cron: "30 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: windows-2022 + +variables: + GITHUB_PAT: $(GITHUBPUBLICTOKEN) + +jobs: +- job: DESKTOP_BUILD + displayName: 'Win32 Desktop for x64/x86' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: DeleteFiles@1 + displayName: Delete files from Tests + inputs: + SourceFolder: Tests + Contents: '**' + RemoveSourceFolder: true + RemoveDotFiles: true + - task: CmdLine@2 + displayName: Fetch Tests + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/walbourn/directxtextest.git Tests + workingDirectory: $(Build.SourcesDirectory) + failOnStderr: true + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022.sln 32dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022.sln 32rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022.sln 64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022.sln 64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln 32dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln 32rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln 64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln 64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln arm64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + msbuildArchitecture: x64 + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2022_Win10.sln arm64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2022_Win10.sln + vsVersion: 17.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release + msbuildArchitecture: x64 + +- job: CMAKE_BUILD + displayName: 'CMake BUILD_TESTING=ON' + timeoutInMinutes: 120 + steps: + - checkout: self + clean: true + fetchTags: false + - task: DeleteFiles@1 + displayName: Delete files from Tests + inputs: + SourceFolder: Tests + Contents: '**' + RemoveSourceFolder: true + RemoveDotFiles: true + - task: CmdLine@2 + displayName: Fetch Tests + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/walbourn/directxtextest.git Tests + workingDirectory: $(Build.SourcesDirectory) + failOnStderr: true + - task: CmdLine@2 + displayName: Setup environment for CMake to use VS + inputs: + script: | + @echo off + pushd "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" + for /f "delims=" %%x in ('.\vswhere.exe -latest -property InstallationPath') do set VSPATH=%%x + popd + call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" x64 + echo ##vso[task.prependpath]%VCINSTALLDIR%Tools\Llvm\x64\bin + echo ##vso[task.prependpath]%WindowsSdkBinPath%x64 + echo ##vso[task.prependpath]%WindowsSdkVerBinPath%x64 + echo ##vso[task.prependpath]%VCToolsInstallDir%bin\Hostx64\x64 + echo ##vso[task.setvariable variable=EXTERNAL_INCLUDE;]%EXTERNAL_INCLUDE% + echo ##vso[task.setvariable variable=INCLUDE;]%INCLUDE% + echo ##vso[task.setvariable variable=LIB;]%LIB% + + - task: CMake@1 + displayName: CMake (MSVC; x64-Debug) Config + inputs: + cwd: '' + cmakeArgs: --preset=x64-Debug + - task: CMake@1 + displayName: CMake (MSVC; x64-Debug) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/x64-Debug -v + - task: CMake@1 + displayName: CMake (MSVC; x64-Release) Config + inputs: + cwd: '' + cmakeArgs: --preset=x64-Release + - task: CMake@1 + displayName: CMake (MSVC; x64-Release) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/x64-Release -v + - task: CMake@1 + displayName: CMake (clang/LLVM; x64-Debug) Config + inputs: + cwd: '' + cmakeArgs: --preset=x64-Debug-Clang + - task: CMake@1 + displayName: CMake (clang/LLVM; x64-Debug) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/x64-Debug-Clang -v + - task: CMake@1 + displayName: CMake (clang/LLVM; x64-Release) Config + inputs: + cwd: '' + cmakeArgs: --preset=x64-Release-Clang + - task: CMake@1 + displayName: CMake (clang/LLVM; x64-Release) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/x64-Release-Clang -v + - task: CmdLine@2 + displayName: Set LIB for ARM64 + inputs: + script: | + @echo off + pushd "C:\Program Files (x86)\Microsoft Visual Studio\Installer\" + for /f "delims=" %%x in ('.\vswhere.exe -latest -property InstallationPath') do set VSPATH=%%x + popd + call "%VSPATH%\VC\Auxiliary\Build\vcvarsall.bat" arm64 + echo ##vso[task.setvariable variable=LIB;]%LIB% + + - task: CMake@1 + displayName: CMake (clang/LLVM; arm64-Debug) Config + inputs: + cwd: '' + cmakeArgs: --preset=arm64-Debug-Clang + - task: CMake@1 + displayName: CMake (clang/LLVM; arm64-Debug) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/arm64-Debug-Clang -v + - task: CMake@1 + displayName: CMake (clang/LLVM; arm64-Release) Config + inputs: + cwd: '' + cmakeArgs: --preset=arm64-Release-Clang + - task: CMake@1 + displayName: CMake (clang/LLVM; arm64-Release) Build + inputs: + cwd: '' + cmakeArgs: --build out/build/arm64-Release-Clang -v diff --git a/build/DirectXTex-GitHub-Test.yml b/build/DirectXTex-GitHub-Test.yml new file mode 100644 index 0000000..f97a981 --- /dev/null +++ b/build/DirectXTex-GitHub-Test.yml @@ -0,0 +1,131 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library and test suite. + +schedules: +- cron: "30 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: windows-2019 + +variables: + GITHUB_PAT: $(GITHUBPUBLICTOKEN) + +jobs: +- job: DESKTOP_BUILD + displayName: 'Win32 Desktop for x64/x86' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: DeleteFiles@1 + displayName: Delete files from Tests + inputs: + SourceFolder: Tests + Contents: '**' + RemoveSourceFolder: true + RemoveDotFiles: true + - task: CmdLine@2 + displayName: Fetch Tests + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/walbourn/directxtextest.git Tests + workingDirectory: $(Build.SourcesDirectory) + failOnStderr: true + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019.sln 32dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019.sln 32rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019.sln 64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019.sln 64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln 32dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln 32rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln 64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln 64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln arm64dbg + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Tests_Desktop_2019_Win10.sln arm64rel + inputs: + solution: Tests/DirectXTex_Tests_Desktop_2019_Win10.sln + vsVersion: 16.0 + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release diff --git a/build/DirectXTex-GitHub-WSL-11.yml b/build/DirectXTex-GitHub-WSL-11.yml new file mode 100644 index 0000000..efdb08c --- /dev/null +++ b/build/DirectXTex-GitHub-WSL-11.yml @@ -0,0 +1,101 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library for Windows Subsystem for Linux (WSL) + +schedules: +- cron: "0 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: ubuntu-22.04 + +variables: + GITHUB_PAT: $(GITHUBPUBLICTOKEN) + DEST_DIR: $(DESTDIR) + +jobs: +- job: BUILD_WSL + displayName: 'Windows Subsystem for Linux (WSL)' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: CmdLine@2 + displayName: Fetch directx-headers + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/DirectX-Headers.git directx-headers + - task: CMake@1 + displayName: CMake DirectX-Headers + inputs: + cwd: directx-headers + cmakeArgs: . -DDXHEADERS_BUILD_TEST=OFF -DDXHEADERS_BUILD_GOOGLE_TEST=OFF + - task: CMake@1 + displayName: CMake DirectX-Headers (Build) + inputs: + cwd: directx-headers + cmakeArgs: --build . -v + - task: CMake@1 + displayName: CMake DirectX-Headers (Install) + inputs: + cwd: directx-headers + cmakeArgs: --install . + - task: CmdLine@2 + displayName: Fetch directxmath + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/DirectXMath.git directxmath + - task: CMake@1 + displayName: CMake DirectXMath + inputs: + cwd: directxmath + cmakeArgs: . + - task: CMake@1 + displayName: CMake DirectXMath (Build) + inputs: + cwd: directxmath + cmakeArgs: --build . -v + - task: CMake@1 + displayName: CMake DirectXMath (Install) + inputs: + cwd: directxmath + cmakeArgs: --install . + - task: PowerShell@2 + displayName: Fetch SAL.H + inputs: + targetType: inline + script: | + $ProgressPreference = 'SilentlyContinue' + Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/corert/master/src/Native/inc/unix/sal.h -o $(DEST_DIR)usr/local/include/sal.h + $fileHash = Get-FileHash -Algorithm SHA512 $(DEST_DIR)usr/local/include/sal.h | ForEach { $_.Hash} | Out-String + $filehash = $fileHash.Trim() + Write-Host "##[debug]SHA512: " $filehash + if ($fileHash -ne "1643571673195d9eb892d2f2ac76eac7113ef7aa0ca116d79f3e4d3dc9df8a31600a9668b7e7678dfbe5a76906f9e0734ef8d6db0903ccc68fc742dd8238d8b0") { + Write-Error -Message "##[error]Computed hash does not match!" -ErrorAction Stop + } + + - task: CMake@1 + displayName: CMake DirectXTex + inputs: + cwd: '' + cmakeArgs: -B out -DCMAKE_PREFIX_PATH=$(DEST_DIR)usr/local/share;$(DEST_DIR)usr/local/cmake + - task: CMake@1 + displayName: CMake DirectXTex (Build) + inputs: + cwd: '' + cmakeArgs: --build out -v diff --git a/build/DirectXTex-GitHub-WSL.yml b/build/DirectXTex-GitHub-WSL.yml new file mode 100644 index 0000000..a09c314 --- /dev/null +++ b/build/DirectXTex-GitHub-WSL.yml @@ -0,0 +1,101 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library for Windows Subsystem for Linux (WSL) + +schedules: +- cron: "0 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: none + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: ubuntu-20.04 + +variables: + GITHUB_PAT: $(GITHUBPUBLICTOKEN) + DEST_DIR: $(DESTDIR) + +jobs: +- job: BUILD_WSL + displayName: 'Windows Subsystem for Linux (WSL)' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: CmdLine@2 + displayName: Fetch directx-headers + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/DirectX-Headers.git directx-headers + - task: CMake@1 + displayName: CMake DirectX-Headers + inputs: + cwd: directx-headers + cmakeArgs: . -DDXHEADERS_BUILD_TEST=OFF -DDXHEADERS_BUILD_GOOGLE_TEST=OFF + - task: CMake@1 + displayName: CMake DirectX-Headers (Build) + inputs: + cwd: directx-headers + cmakeArgs: --build . -v + - task: CMake@1 + displayName: CMake DirectX-Headers (Install) + inputs: + cwd: directx-headers + cmakeArgs: --install . + - task: CmdLine@2 + displayName: Fetch directxmath + inputs: + script: git clone --quiet https://%GITHUB_PAT%@github.com/microsoft/DirectXMath.git directxmath + - task: CMake@1 + displayName: CMake DirectXMath + inputs: + cwd: directxmath + cmakeArgs: . + - task: CMake@1 + displayName: CMake DirectXMath (Build) + inputs: + cwd: directxmath + cmakeArgs: --build . -v + - task: CMake@1 + displayName: CMake DirectXMath (Install) + inputs: + cwd: directxmath + cmakeArgs: --install . + - task: PowerShell@2 + displayName: Fetch SAL.H + inputs: + targetType: inline + script: | + $ProgressPreference = 'SilentlyContinue' + Invoke-WebRequest -Uri https://raw.githubusercontent.com/dotnet/corert/master/src/Native/inc/unix/sal.h -o $(DEST_DIR)usr/local/include/sal.h + $fileHash = Get-FileHash -Algorithm SHA512 $(DEST_DIR)usr/local/include/sal.h | ForEach { $_.Hash} | Out-String + $filehash = $fileHash.Trim() + Write-Host "##[debug]SHA512: " $filehash + if ($fileHash -ne "1643571673195d9eb892d2f2ac76eac7113ef7aa0ca116d79f3e4d3dc9df8a31600a9668b7e7678dfbe5a76906f9e0734ef8d6db0903ccc68fc742dd8238d8b0") { + Write-Error -Message "##[error]Computed hash does not match!" -ErrorAction Stop + } + + - task: CMake@1 + displayName: CMake DirectXTex + inputs: + cwd: '' + cmakeArgs: -B out -DCMAKE_PREFIX_PATH=$(DEST_DIR)usr/local/share;$(DEST_DIR)usr/local/cmake + - task: CMake@1 + displayName: CMake DirectXTex (Build) + inputs: + cwd: '' + cmakeArgs: --build out -v diff --git a/build/DirectXTex-GitHub.yml b/build/DirectXTex-GitHub.yml new file mode 100644 index 0000000..af9557e --- /dev/null +++ b/build/DirectXTex-GitHub.yml @@ -0,0 +1,171 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248926 + +# Builds the library for Windows Desktop and UWP. + +schedules: +- cron: "0 3 * * *" + displayName: 'Nightly build' + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: refs/heads/main + trigger: + - main + +name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) + +pool: + vmImage: windows-2019 + +jobs: +- job: DESKTOP_BUILD + displayName: 'Win32 Desktop' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019.sln 32dbg + inputs: + solution: DirectXTex_Desktop_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019.sln 32rel + inputs: + solution: DirectXTex_Desktop_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019.sln 64dbg + inputs: + solution: DirectXTex_Desktop_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019.sln 64rel + inputs: + solution: DirectXTex_Desktop_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln 32dbg + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln 32rel + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln 64dbg + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln 64rel + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln arm64dbg + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Desktop_2019_Win10.sln arm64rel + inputs: + solution: DirectXTex_Desktop_2019_Win10.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release + +- job: UWP_BUILD + displayName: 'Universal Windows Platform (UWP)' + timeoutInMinutes: 120 + cancelTimeoutInMinutes: 1 + steps: + - checkout: self + clean: true + fetchTags: false + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln 32dbg + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln 32rel + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x86 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln 64dbg + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln 64rel + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: x64 + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln armdbg + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln armrel + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM + configuration: Release + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln arm64dbg + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Debug + - task: VSBuild@1 + displayName: Build solution DirectXTex_Windows10_2019.sln arm64rel + inputs: + solution: DirectXTex_Windows10_2019.sln + msbuildArgs: /p:PreferredToolArchitecture=x64 + platform: ARM64 + configuration: Release diff --git a/.nuget/DirectXTex-config.cmake.in b/build/DirectXTex-config.cmake.in similarity index 100% rename from .nuget/DirectXTex-config.cmake.in rename to build/DirectXTex-config.cmake.in diff --git a/.nuget/versioninfo.ps1 b/build/versioninfo.ps1 similarity index 100% rename from .nuget/versioninfo.ps1 rename to build/versioninfo.ps1