# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # # https://go.microsoft.com/fwlink/?LinkID=512686 # Builds the library and test suite. schedules: - cron: "45 6 * * *" displayName: 'Nightly build' branches: include: - main # GitHub Actions handles test suite for CI/PR trigger: none pr: branches: include: - main paths: include: - build/UVAtlas-GitHub-Test-Dev17.yml resources: repositories: - repository: self type: git ref: refs/heads/main - repository: dxMeshRepo name: Microsoft/DirectXMesh type: github endpoint: microsoft ref: refs/heads/main - repository: dxTexRepo name: Microsoft/DirectXTex type: github endpoint: microsoft ref: refs/heads/main - repository: testRepo name: walbourn/uvatlastest type: github endpoint: microsoft ref: refs/heads/main name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) pool: vmImage: windows-2022 variables: Codeql.Enabled: false VC_PATH: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC' jobs: - job: DESKTOP_BUILD displayName: 'Win32 Desktop' timeoutInMinutes: 60 cancelTimeoutInMinutes: 1 workspace: clean: all steps: - checkout: self clean: true fetchTags: false path: 's/UVAtlas' - checkout: dxMeshRepo displayName: Fetch DirectXMesh clean: true fetchTags: false fetchDepth: 1 path: 's/DirectXMesh' - checkout: dxTexRepo displayName: Fetch DirectXTex clean: true fetchTags: false fetchDepth: 1 path: 's/DirectXTex' - checkout: testRepo displayName: Fetch Tests clean: true fetchTags: false fetchDepth: 1 path: 's/UVAtlas/Tests' - task: VSBuild@1 displayName: Build solution xtuvatlas_Desktop_2022.sln 32dbg inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: x86 configuration: Debug msbuildArchitecture: x64 - task: VSBuild@1 displayName: Build solutionxtuvatlas_Desktop_2022.sln 32rel inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: x86 configuration: Release msbuildArchitecture: x64 - task: VSBuild@1 displayName: Build solution xtuvatlas_Desktop_2022.sln 64dbg inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: x64 configuration: Debug msbuildArchitecture: x64 - task: VSBuild@1 displayName: Build solution xtuvatlas_Desktop_2022.sln 64rel inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: x64 configuration: Release msbuildArchitecture: x64 - task: VSBuild@1 displayName: Build solution xtuvatlas_Desktop_2022.sln arm64dbg inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: ARM64 configuration: Debug msbuildArchitecture: x64 - task: VSBuild@1 displayName: Build solution xtuvatlas_Desktop_2022.sln arm64rel inputs: solution: UVAtlas/Tests/xtuvatlas_Desktop_2022.sln vsVersion: 17.0 msbuildArgs: /p:PreferredToolArchitecture=x64 platform: ARM64 configuration: Release msbuildArchitecture: x64 - job: CMAKE_BUILD displayName: 'CMake BUILD_TESTING=ON' timeoutInMinutes: 120 workspace: clean: all steps: - checkout: self clean: true fetchTags: false path: 's/UVAtlas' - checkout: dxMeshRepo displayName: Fetch DirectXMesh clean: true fetchTags: false fetchDepth: 1 path: 's/DirectXMesh' - checkout: dxTexRepo displayName: Fetch DirectXTex clean: true fetchTags: false fetchDepth: 1 path: 's/DirectXTex' - checkout: testRepo displayName: Fetch Tests clean: true fetchTags: false fetchDepth: 1 path: 's/UVAtlas/Tests' - task: CmdLine@2 displayName: Setup environment for CMake to use VS inputs: script: | call "$(VC_PATH)\Auxiliary\Build\vcvars64.bat" echo ##vso[task.setvariable variable=WindowsSdkVerBinPath;]%WindowsSdkVerBinPath% echo ##vso[task.prependpath]%VSINSTALLDIR%Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja 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: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=x64-Debug - task: CMake@1 displayName: CMake (MSVC; x64-Debug) Build inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/x64-Debug -v - task: DeleteFiles@1 inputs: Contents: 'out' - task: CMake@1 displayName: CMake (MSVC; x64-Release) Config inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=x64-Release - task: CMake@1 displayName: CMake (MSVC; x64-Release) Build inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/x64-Release -v - task: DeleteFiles@1 inputs: Contents: 'out' - task: CMake@1 displayName: CMake (clang/LLVM; x64-Debug) Config inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=x64-Debug-Clang - task: CMake@1 displayName: CMake (clang/LLVM; x64-Debug) Build inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/x64-Debug-Clang -v - task: DeleteFiles@1 inputs: Contents: 'out' - task: CMake@1 displayName: CMake (clang/LLVM; x64-Release) Config inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=x64-Release-Clang - task: CMake@1 displayName: CMake (clang/LLVM; x64-Release) Build inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/x64-Release-Clang -v - task: DeleteFiles@1 inputs: Contents: 'out' - task: CmdLine@2 displayName: Switch compiler to ARM64 inputs: script: | call "$(VC_PATH)\Auxiliary\Build\vcvarsamd64_arm64.bat" echo ##vso[task.setvariable variable=LIB;]%LIB% - task: CMake@1 displayName: CMake (clang/LLVM; arm64-Debug) Config inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=arm64-Debug-Clang - task: CMake@1 displayName: CMake (clang/LLVM; arm64-Debug) Build inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/arm64-Debug-Clang -v - task: DeleteFiles@1 inputs: Contents: 'out' - task: CMake@1 displayName: CMake (clang/LLVM; arm64-Release) Config inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --preset=arm64-Release-Clang - task: CMake@1 # This is disabled to avoid an ICE with clang v15.0.1 displayName: CMake (clang/LLVM; arm64-Release) Build enabled: false inputs: cwd: $(Build.SourcesDirectory)/UVAtlas cmakeArgs: --build out/build/arm64-Release-Clang -v