-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Run AARCH64 tests using qemu instead of a native runner
- Loading branch information
Showing
3 changed files
with
198 additions
and
141 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,142 +1,141 @@ | ||
# Azure test pipeline | ||
# Triggers build tests for Windows, Linux and MacOS for various configuarations | ||
|
||
trigger: | ||
- master | ||
- master | ||
|
||
jobs: | ||
- job: Linux | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'on' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Debug_AVX: | ||
buildConfig: 'Debug' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Release_AVX: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Release_AVX2: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
pool: | ||
vmImage: 'ubuntu-20.04' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Linux_ARM | ||
strategy: | ||
matrix: | ||
Debug_NEON: | ||
buildTargetArch: 'arm' | ||
buildConfig: 'Debug' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_NEON: | ||
buildTargetArch: 'arm' | ||
buildConfig: 'Release' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'ubuntu-20.04' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Linux_ARM64 | ||
strategy: | ||
matrix: | ||
Debug_NEON: | ||
buildConfig: 'Debug' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_NEON: | ||
buildConfig: 'Release' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
name: 'Linux ARM64' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: MacOS | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_SSE2: | ||
buildConfig: 'Release' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'macos-latest' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Windows | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'on' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Debug_AVX: | ||
buildConfig: 'Debug' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Release_AVX: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Release_AVX2: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'windows-2019' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Linux | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'on' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Debug_AVX: | ||
buildConfig: 'Debug' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Release_AVX: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
Release_AVX2: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'on' | ||
pool: | ||
vmImage: 'ubuntu-20.04' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Linux_ARM | ||
strategy: | ||
matrix: | ||
Debug_NEON: | ||
buildTargetArch: 'arm' | ||
buildConfig: 'Debug' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_NEON: | ||
buildTargetArch: 'arm' | ||
buildConfig: 'Release' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'ubuntu-20.04' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Linux_ARM64 | ||
strategy: | ||
matrix: | ||
Debug_NEON: | ||
buildTargetArch: 'aarch64' | ||
buildConfig: 'Debug' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_NEON: | ||
buildTargetArch: 'aarch64' | ||
buildConfig: 'Release' | ||
configVectorization: 'NEON' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'ubuntu-20.04' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: MacOS | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
Release_SSE2: | ||
buildConfig: 'Release' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'off' | ||
configGraphicsOpenGL: 'off' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'macos-latest' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml | ||
- job: Windows | ||
strategy: | ||
matrix: | ||
Debug_SSE2: | ||
buildConfig: 'Debug' | ||
configVectorization: 'SSE 2' | ||
configCodeCoverage: 'on' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Debug_AVX: | ||
buildConfig: 'Debug' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Release_AVX: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
Release_AVX2: | ||
buildConfig: 'Release' | ||
configVectorization: 'AVX 2' | ||
configCodeCoverage: 'off' | ||
configGraphicsD3D12: 'on' | ||
configGraphicsOpenGL: 'on' | ||
configGraphicsEGL: 'off' | ||
pool: | ||
vmImage: 'windows-2019' | ||
steps: | ||
- template: ci/azure-pipeline-generic.yml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Source: https://github.com/vpetrigo/arm-cmake-toolchains | ||
set(CMAKE_SYSTEM_NAME Linux) | ||
set(CMAKE_SYSTEM_PROCESSOR aarch64) | ||
|
||
if(MINGW OR CYGWIN OR WIN32) | ||
set(UTIL_SEARCH_CMD where) | ||
elseif(UNIX OR APPLE) | ||
set(UTIL_SEARCH_CMD which) | ||
endif() | ||
|
||
set(TOOLCHAIN_TRIPLE aarch64-linux-gnu) | ||
set(TOOLCHAIN_PREFIX ${TOOLCHAIN_TRIPLE}-) | ||
|
||
execute_process( | ||
COMMAND ${UTIL_SEARCH_CMD} ${TOOLCHAIN_PREFIX}gcc | ||
OUTPUT_VARIABLE BINUTILS_PATH | ||
OUTPUT_STRIP_TRAILING_WHITESPACE | ||
) | ||
get_filename_component(ARM_TOOLCHAIN_DIR ${BINUTILS_PATH} DIRECTORY) | ||
|
||
# Without that flag CMake is not able to pass test compilation check | ||
if(${CMAKE_VERSION} VERSION_EQUAL "3.6.0" OR ${CMAKE_VERSION} VERSION_GREATER "3.6") | ||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) | ||
else() | ||
set(CMAKE_EXE_LINKER_FLAGS_INIT "--specs=nosys.specs") | ||
endif() | ||
|
||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) | ||
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER}) | ||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++) | ||
|
||
set(CMAKE_OBJCOPY ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}objcopy CACHE INTERNAL "objcopy tool") | ||
set(CMAKE_SIZE_UTIL ${ARM_TOOLCHAIN_DIR}/${TOOLCHAIN_PREFIX}size CACHE INTERNAL "size tool") | ||
|
||
# Theoretically, sysroot limits the search of libraries to the installation location of the cross-compilation SDK. | ||
# For some reason SYSROOT is applied twice on Ubuntu, thus we ignore SYSROOT | ||
# set(CMAKE_SYSROOT ${ARM_TOOLCHAIN_DIR}/../${TOOLCHAIN_TRIPLE}) | ||
set(CMAKE_SYSROOT /) | ||
set(CMAKE_FIND_ROOT_PATH ${BINUTILS_PATH}) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | ||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | ||
|
||
# Configure the emulator | ||
set(CMAKE_CROSSCOMPILING_EMULATOR qemu-aarch64 -L ${ARM_TOOLCHAIN_DIR}/../${TOOLCHAIN_TRIPLE}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters