# Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception parameters: - name: hostArch type: string - name: targetArch type: string - name: targetPlatform type: string - name: buildOutputLocationVar type: string default: buildOutputLocation - name: benchmarkBuildOutputLocationVar type: string default: benchmarkBuildOutputLocation - name: cmakeAdditionalFlags type: string default: '' steps: - task: PowerShell@2 displayName: 'Get Test Parallelism' timeoutInMinutes: 1 inputs: targetType: inline script: | $testParallelism = $env:NUMBER_OF_PROCESSORS Write-Host "##vso[task.setvariable variable=testParallelism;]$testParallelism" - script: | if exist "$(${{ parameters.buildOutputLocationVar }})" ( rmdir /S /Q "$(${{ parameters.buildOutputLocationVar }})" ) call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo cmake ${{ parameters.cmakeAdditionalFlags}} -G Ninja ^ -DCMAKE_CXX_COMPILER=cl ^ -DCMAKE_BUILD_TYPE=Release ^ -DLIT_FLAGS=$(litFlags) ^ -DSTL_USE_ANALYZE=ON ^ -S $(Build.SourcesDirectory) -B $(${{ parameters.buildOutputLocationVar }}) displayName: 'Configure the STL' timeoutInMinutes: 2 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo cmake --build $(${{ parameters.buildOutputLocationVar }}) displayName: 'Build the STL' timeoutInMinutes: 10 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - script: | if exist "$(${{ parameters.benchmarkBuildOutputLocationVar }})" ( rmdir /S /Q "$(${{ parameters.benchmarkBuildOutputLocationVar }})" ) call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo cmake ${{ parameters.cmakeAdditionalFlags}} -G Ninja ^ -DCMAKE_CXX_COMPILER=cl ^ -DCMAKE_BUILD_TYPE=Release ^ -DSTL_BINARY_DIR=$(${{ parameters.buildOutputLocationVar }}) ^ -S $(Build.SourcesDirectory)/benchmarks -B $(${{ parameters.benchmarkBuildOutputLocationVar }}) displayName: 'Configure the benchmarks' timeoutInMinutes: 2 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } condition: ne('${{ parameters.benchmarkBuildOutputLocationVar }}', '') - script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo cmake --build $(${{ parameters.benchmarkBuildOutputLocationVar }}) displayName: 'Build the benchmarks' timeoutInMinutes: 10 env: { TMP: $(tmpDir), TEMP: $(tmpDir) } condition: ne('${{ parameters.benchmarkBuildOutputLocationVar }}', '')