# Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # Build STL targeting x86, x64, arm, arm64 variables: tmpDir: 'D:\Temp' buildOutputLocation: 'D:\build' pool: 'StlBuild-2022-06-28-T1518' stages: - stage: Code_Format displayName: 'Code Format' jobs: - job: Code_Format_Validation timeoutInMinutes: 20 displayName: 'Validation' steps: - script: | if exist "$(tmpDir)" ( rmdir /S /Q $(tmpDir) ) mkdir $(tmpDir) displayName: 'Setup TMP Directory' - checkout: self clean: true submodules: false - script: | cd $(Build.SourcesDirectory) git clean --quiet -x -d -f -f displayName: 'Clean after checkout' - script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=amd64 -arch=amd64 -no_logo cmake -G Ninja -S $(Build.SourcesDirectory)/tools -B $(tmpDir)/format-validate-build cmake --build $(tmpDir)/format-validate-build displayName: 'Build format and validation' timeoutInMinutes: 5 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=amd64 -arch=amd64 -no_logo cmake --build $(tmpDir)/format-validate-build --target run-format displayName: 'clang-format Files' timeoutInMinutes: 5 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=amd64 -arch=amd64 -no_logo cmake --build $(tmpDir)/format-validate-build --target run-validate displayName: 'Validate Files' timeoutInMinutes: 2 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - task: Powershell@2 displayName: 'Create Diff' inputs: filePath: azure-devops/create-prdiff.ps1 pwsh: false condition: succeededOrFailed() env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - stage: Build_And_Test_x64 dependsOn: Code_Format displayName: 'Build and Test' jobs: - template: azure-devops/native-build-test.yml parameters: targetPlatform: x64 vsDevCmdArch: amd64 - stage: Build_And_Test_x86 dependsOn: Build_And_Test_x64 displayName: 'Build and Test' jobs: - template: azure-devops/native-build-test.yml parameters: targetPlatform: x86 vsDevCmdArch: x86 - stage: Build_ARM dependsOn: Build_And_Test_x64 displayName: 'Build' jobs: - template: azure-devops/cross-build.yml parameters: targetPlatform: arm vsDevCmdArch: arm buildBenchmarking: 'OFF' - stage: Build_ARM64 dependsOn: Build_And_Test_x64 displayName: 'Build' jobs: - template: azure-devops/cross-build.yml parameters: targetPlatform: arm64 vsDevCmdArch: arm64