Attempt to cross-compile for arm64 Linux

This commit is contained in:
Siarhei Fedartsou 2022-10-15 13:03:01 +02:00
parent d143de597d
commit 5bc283d6b2
2 changed files with 332 additions and 314 deletions

View File

@ -144,357 +144,367 @@ jobs:
strategy: strategy:
matrix: matrix:
include: include:
- name: gcc-9-debug-cov # - name: gcc-9-debug-cov
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000 # CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
ENABLE_COVERAGE: ON # ENABLE_COVERAGE: ON
- name: gcc-9-debug-asan-ubsan # - name: gcc-9-debug-asan-ubsan
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CUCUMBER_TIMEOUT: 20000 # CUCUMBER_TIMEOUT: 20000
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
ENABLE_SANITIZER: ON # ENABLE_SANITIZER: ON
TARGET_ARCH: x86_64-asan-ubsan # TARGET_ARCH: x86_64-asan-ubsan
OSRM_CONNECTION_RETRIES: 10 # OSRM_CONNECTION_RETRIES: 10
OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5 # OSRM_CONNECTION_EXP_BACKOFF_COEF: 1.5
- name: clang-6.0-debug # - name: clang-6.0-debug
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
- name: clang-11.0-debug-clang-tidy # - name: clang-11.0-debug-clang-tidy
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-22.04 # runs-on: ubuntu-22.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: clang-14 # CCOMPILER: clang-14
CXXCOMPILER: clang++-14 # CXXCOMPILER: clang++-14
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_CLANG_TIDY: ON # ENABLE_CLANG_TIDY: ON
- name: conan-linux-debug-asan-ubsan # - name: conan-linux-debug-asan-ubsan
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-11 # CCOMPILER: clang-11
CXXCOMPILER: clang++-11 # CXXCOMPILER: clang++-11
ENABLE_CONAN: ON # ENABLE_CONAN: ON
ENABLE_SANITIZER: ON # ENABLE_SANITIZER: ON
- name: conan-linux-release # - name: conan-linux-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: gcc-11-release # - name: gcc-11-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-11 # CCOMPILER: gcc-11
CXXCOMPILER: g++-11 # CXXCOMPILER: g++-11
ENABLE_BENCHMARKS: ON # ENABLE_BENCHMARKS: ON
- name: gcc-10-release # - name: gcc-10-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-10 # CCOMPILER: gcc-10
CXXCOMPILER: g++-10 # CXXCOMPILER: g++-10
- name: gcc-9-release # - name: gcc-9-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
CXXFLAGS: -Wno-cast-function-type # CXXFLAGS: -Wno-cast-function-type
- name: gcc-9-conan-release-i686 # - name: gcc-9-conan-release-i686
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-9 # CCOMPILER: gcc-9
CFLAGS: "-m32 -msse2 -mfpmath=sse" # CFLAGS: "-m32 -msse2 -mfpmath=sse"
CXXCOMPILER: g++-9 # CXXCOMPILER: g++-9
CXXFLAGS: "-m32 -msse2 -mfpmath=sse" # CXXFLAGS: "-m32 -msse2 -mfpmath=sse"
TARGET_ARCH: i686 # TARGET_ARCH: i686
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: gcc-8-release # - name: gcc-8-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-8 # CCOMPILER: gcc-8
CXXCOMPILER: g++-8 # CXXCOMPILER: g++-8
CXXFLAGS: -Wno-cast-function-type # CXXFLAGS: -Wno-cast-function-type
- name: gcc-7-release # - name: gcc-7-release
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: gcc-7 # CCOMPILER: gcc-7
CXXCOMPILER: g++-7 # CXXCOMPILER: g++-7
- name: conan-macos-x64-release-node-12 # - name: conan-macos-x64-release-node-12
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-14 # - name: conan-macos-x64-release-node-14
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: conan-macos-x64-release-node-16 # - name: conan-macos-x64-release-node-16
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
- name: conan-macos-arm64-release-node-16 # - name: conan-macos-arm64-release-node-16
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: macos-11 # runs-on: macos-11
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON # ENABLE_APPLE_SILICON: ON
- name: gcc-7-release-shared # - name: gcc-7-release-shared
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TOOLS: ON # BUILD_TOOLS: ON
BUILD_TYPE: Release # BUILD_TYPE: Release
BUILD_SHARED_LIBS: ON # BUILD_SHARED_LIBS: ON
CCOMPILER: gcc-7 # CCOMPILER: gcc-7
CXXCOMPILER: g++-7 # CXXCOMPILER: g++-7
- name: node-12-conan-linux-release # - name: node-12-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-12-conan-linux-debug # - name: node-12-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 12 # node: 12
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-release # - name: node-14-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-14-conan-linux-debug # - name: node-14-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 14 # node: 14
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Debug
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-arm64-release
- name: node-16-conan-linux-release
build_node_package: true build_node_package: true
continue-on-error: false continue-on-error: false
node: 16 node: 16
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
BUILD_TYPE: Release BUILD_TYPE: Release
CCOMPILER: clang-6.0 CCOMPILER: aarch64-linux-gnu-gcc
CXXCOMPILER: clang++-6.0 CXXCOMPILER: aarch64-linux-gnu-g++
ENABLE_CONAN: ON ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON NODE_PACKAGE_TESTS_ONLY: ON
- name: node-16-conan-linux-debug # - name: node-16-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: false # continue-on-error: false
node: 16 # node: 16
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: conan-macos-x64-release-node-latest # - name: node-16-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: false
node: latest # node: 16
runs-on: macos-11 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Debug
CCOMPILER: clang # CCOMPILER: clang-6.0
CXXCOMPILER: clang++ # CXXCOMPILER: clang++-6.0
CUCUMBER_TIMEOUT: 60000 # ENABLE_CONAN: ON
ENABLE_ASSERTIONS: ON # NODE_PACKAGE_TESTS_ONLY: ON
ENABLE_CONAN: ON
- name: conan-macos-arm64-release-node-latest # - name: conan-macos-x64-release-node-latest
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: macos-11 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON
- name: node-latest-conan-linux-release # - name: conan-macos-arm64-release-node-latest
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: ubuntu-20.04 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++
ENABLE_CONAN: ON # CUCUMBER_TIMEOUT: 60000
NODE_PACKAGE_TESTS_ONLY: ON # ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON
- name: node-latest-conan-linux-debug # - name: node-latest-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: latest # node: latest
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
- name: conan-macos-x64-release-node-lts # - name: node-latest-conan-linux-debug
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: latest
runs-on: macos-11 # runs-on: ubuntu-20.04
BUILD_TYPE: Release # BUILD_TYPE: Debug
CCOMPILER: clang # CCOMPILER: clang-6.0
CXXCOMPILER: clang++ # CXXCOMPILER: clang++-6.0
CUCUMBER_TIMEOUT: 60000 # ENABLE_CONAN: ON
ENABLE_ASSERTIONS: ON # NODE_PACKAGE_TESTS_ONLY: ON
ENABLE_CONAN: ON
- name: conan-macos-arm64-release-node-lts # - name: conan-macos-x64-release-node-lts
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: macos-11 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang # CCOMPILER: clang
CXXCOMPILER: clang++ # CXXCOMPILER: clang++
CUCUMBER_TIMEOUT: 60000 # CUCUMBER_TIMEOUT: 60000
ENABLE_ASSERTIONS: ON # ENABLE_ASSERTIONS: ON
ENABLE_CONAN: ON # ENABLE_CONAN: ON
ENABLE_APPLE_SILICON: ON
- name: node-lts-conan-linux-release # - name: conan-macos-arm64-release-node-lts
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: ubuntu-20.04 # runs-on: macos-11
BUILD_TYPE: Release # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++
ENABLE_CONAN: ON # CUCUMBER_TIMEOUT: 60000
NODE_PACKAGE_TESTS_ONLY: ON # ENABLE_ASSERTIONS: ON
# ENABLE_CONAN: ON
# ENABLE_APPLE_SILICON: ON
- name: node-lts-conan-linux-debug # - name: node-lts-conan-linux-release
build_node_package: true # build_node_package: true
continue-on-error: true # continue-on-error: true
node: "lts/*" # node: "lts/*"
runs-on: ubuntu-20.04 # runs-on: ubuntu-20.04
BUILD_TYPE: Debug # BUILD_TYPE: Release
CCOMPILER: clang-6.0 # CCOMPILER: clang-6.0
CXXCOMPILER: clang++-6.0 # CXXCOMPILER: clang++-6.0
ENABLE_CONAN: ON # ENABLE_CONAN: ON
NODE_PACKAGE_TESTS_ONLY: ON # NODE_PACKAGE_TESTS_ONLY: ON
# - name: node-lts-conan-linux-debug
# build_node_package: true
# continue-on-error: true
# node: "lts/*"
# runs-on: ubuntu-20.04
# BUILD_TYPE: Debug
# CCOMPILER: clang-6.0
# CXXCOMPILER: clang++-6.0
# ENABLE_CONAN: ON
# NODE_PACKAGE_TESTS_ONLY: ON
name: ${{ matrix.name}} name: ${{ matrix.name}}
continue-on-error: ${{ matrix.continue-on-error }} continue-on-error: ${{ matrix.continue-on-error }}
@ -576,6 +586,7 @@ jobs:
run: | run: |
python3 -m pip install conan==1.53.0 python3 -m pip install conan==1.53.0
sudo apt-get update -y && sudo apt-get -y install gcc-aarch64-linux-gnu
# ccache # ccache
if [[ "${RUNNER_OS}" == "Linux" ]]; then if [[ "${RUNNER_OS}" == "Linux" ]]; then
sudo apt-get update -y && sudo apt-get install ccache sudo apt-get update -y && sudo apt-get install ccache

View File

@ -1,5 +1,12 @@
cmake_minimum_required(VERSION 3.2) cmake_minimum_required(VERSION 3.2)
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
set(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_STANDARD_REQUIRED TRUE)