# Base configuration for linux cross-compilation.
# SPDX-FileCopyrightText: The Eigen Authors
# SPDX-License-Identifier: MPL-2.0
.build:linux:cross:
  needs: []
  extends: .common:linux:cross
  stage: build
  variables:
    EIGEN_CI_BUILD_TARGET: buildtests
  script:
    - . ci/scripts/build.linux.script.sh
  tags:
    - saas-linux-2xlarge-amd64
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
  cache:
    key: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG-BUILD"
    paths:
      - ${EIGEN_CI_BUILDDIR}/

######## x86-64 ################################################################

.build:linux:cross:x86-64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: x86_64
    EIGEN_CI_CROSS_TARGET_TRIPLE: x86_64-linux-gnu

# GCC-10 (stable recent version)
build:linux:cross:x86-64:gcc-10:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10
    EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-10

# GCC-13 for AVX512-FP16 (_Float16 support).
build:linux:cross:x86-64:gcc-13:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_C_COMPILER: gcc-13
    EIGEN_CI_CXX_COMPILER: g++-13
    EIGEN_CI_CROSS_INSTALL: g++-13-x86-64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-13
    EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-13

build:linux:cross:x86-64:gcc-10:avx:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"

build:linux:cross:x86-64:gcc-10:avx2:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"

build:linux:cross:x86-64:gcc-10:avx512dq:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"

# AVX512-FP16 builds are split into official/unsupported because building all
# tests exceeds the 3-hour GitLab SaaS shared-runner timeout.
.build:linux:cross:x86-64:gcc-13:avx512fp16:
  extends: build:linux:cross:x86-64:gcc-13:default
  # Disable cache: uploading the build directory takes ~35 minutes and the
  # savings from cache hits do not compensate for the upload cost.
  cache: []
  variables:
    # Force -O2 via EIGEN_TEST_CUSTOM_CXX_FLAGS (appended after the default
    # Release -O3 -DNDEBUG; last -O wins). GCC bug at -O3 generates invalid
    # masked vmovsh with {z} on memory stores for _Float16 operations
    # (zero-masking on memory destinations is architecturally illegal in
    # AVX-512).
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512FP16=on -DEIGEN_TEST_AVX512DQ=on -DEIGEN_TEST_F16C=on -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-O2"

build:linux:cross:x86-64:gcc-13:avx512fp16:official:
  extends: .build:linux:cross:x86-64:gcc-13:avx512fp16
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:cross:x86-64:gcc-13:avx512fp16:unsupported:
  extends: .build:linux:cross:x86-64:gcc-13:avx512fp16
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

# Clang-14 (stable recent version)
build:linux:cross:x86-64:clang-14:default:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-14

build:linux:cross:x86-64:clang-14:avx2:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"

build:linux:cross:x86-64:clang-14:avx512dq:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"

# Generic vector extension backend.
build:linux:cross:x86-64:clang-19:generic:avx512dq:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
    EIGEN_CI_ADDITIONAL_ARGS: >
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-mfma;-mavx512dq;-DEIGEN_VECTORIZE_GENERIC=1

# Nightly and all-tests full test suite in C++20 mode.
build:linux:cross:x86-64:clang-19:cxx20:nightly:
  extends: .build:linux:cross:x86-64
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_CXX_STANDARD=20
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"

build:linux:docs:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: any
    EIGEN_CI_BUILD_TARGET: doc
    EIGEN_CI_INSTALL: ca-certificates clang flex python3 bison graphviz
    EIGEN_CI_C_COMPILER: clang
    EIGEN_CI_CXX_COMPILER: clang++
    EIGEN_CI_BEFORE_SCRIPT: ". ci/scripts/build_and_install_doxygen.sh Release_1_13_2"
  tags:
    - saas-linux-medium-amd64
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"


######## Sanitizers ############################################################

# ASAN/UBSAN builds are split into official/unsupported because the
# instrumented executables are too large to upload as a single artifact.
.build:linux:cross:x86-64:clang-19:default:asan-ubsan:
  extends: .build:linux:cross:x86-64
  # Disable cache for ASAN builds: instrumented .o files are so large that
  # downloading the cache can take longer than a clean build from scratch.
  cache: []
  timeout: 2h
  variables:
    EIGEN_CI_INSTALL: clang-19 libclang-rt-19-dev
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19 libclang-rt-19-dev
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=address,undefined;-fno-omit-frame-pointer;-fno-sanitize-recover=undefined
      -DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=address,undefined

build:linux:cross:x86-64:clang-19:default:asan-ubsan:official:
  extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:cross:x86-64:clang-19:default:asan-ubsan:unsupported:
  extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

######## NVHPC #################################################################

# NVHPC (nvc++) uses NVIDIA's HPC SDK container image with the compilers
# pre-installed. We override EIGEN_CI_INSTALL to avoid trying to apt-get
# install the compiler.
# Split into official/unsupported because nvc++ is so slow that the full
# build exceeds the 3-hour GitLab SaaS shared-runner timeout.
.build:linux:x86-64:nvhpc-26.1:
  extends: .build:linux:cross:x86-64
  image: nvcr.io/nvidia/nvhpc:26.1-devel-cuda13.1-ubuntu24.04
  variables:
    EIGEN_CI_C_COMPILER: nvc
    EIGEN_CI_CXX_COMPILER: nvc++
    EIGEN_CI_INSTALL: ""
    EIGEN_CI_CROSS_INSTALL: ""
    # NVHPC's compiler frontend is very memory-hungry with template-heavy code.
    # The 2xlarge runner has 128 GB, so 16 jobs gives ~8 GB per process.
    # The shuffled-batch build strategy spreads memory-hungry targets across
    # batches, preventing simultaneous OOM-prone compilations.
    EIGEN_CI_BUILD_JOBS: "16"
    EIGEN_CI_FALLBACK_JOBS: "4"

build:linux:x86-64:nvhpc-26.1:default:official:
  extends: .build:linux:x86-64:nvhpc-26.1
  variables:
    EIGEN_CI_BUILD_TARGET: BuildOfficial

build:linux:x86-64:nvhpc-26.1:default:unsupported:
  extends: .build:linux:x86-64:nvhpc-26.1
  variables:
    EIGEN_CI_BUILD_TARGET: BuildUnsupported

######## CUDA ##################################################################

.build:linux:cuda:
  extends: .build:linux:cross:x86-64
  # CUDA images and compiler packages vary enough that a cached CMake build
  # directory can retain stale compiler-feature detection across pipeline runs.
  cache: []
  variables:
    # Additional flags passed to the cuda compiler.
    EIGEN_CI_CUDA_CXX_FLAGS: ""
    # Compute architectures present in the GitLab CI runners.
    # SaaS GPU runners have Tesla T4 (sm_75).
    EIGEN_CI_CUDA_COMPUTE_ARCH: "75"
    EIGEN_CI_BUILD_TARGET: buildtests_gpu
    EIGEN_CI_TEST_CUDA_CLANG: "off"
    EIGEN_CI_TEST_CUDA_NVC: "off"
    EIGEN_CI_ADDITIONAL_ARGS:
      -DEIGEN_TEST_CUDA=on
      -DEIGEN_CUDA_CXX_FLAGS=${EIGEN_CI_CUDA_CXX_FLAGS}
      -DEIGEN_CUDA_COMPUTE_ARCH=${EIGEN_CI_CUDA_COMPUTE_ARCH}
      -DEIGEN_TEST_CUDA_CLANG=${EIGEN_CI_TEST_CUDA_CLANG}
      -DEIGEN_TEST_CUDA_NVC=${EIGEN_CI_TEST_CUDA_NVC}
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/gpu-tests/"
  tags:
    # Build on regular linux to limit GPU cost.
    - saas-linux-2xlarge-amd64

# ---- CUDA 11.5 + oldest supported compilers ---------------------------------
# clang-14 fully supports up to CUDA 11.5.  CUDA 11.5 images are Ubuntu 20.04
# only, which lacks clang-14 and cmake >= 3.17.  EIGEN_CI_BEFORE_SCRIPT adds
# the LLVM apt repo (for clang-14) and installs cmake via pip.

build:linux:cuda-11.5:gcc-10:
  extends: .build:linux:cuda
  image: nvidia/cuda:11.5.2-devel-ubuntu20.04
  before_script:
    # Ubuntu 20.04 has cmake 3.16; Eigen requires 3.17+. Pull a newer
    # cmake from Kitware's official apt repo for focal.
    - apt-get update -y > /dev/null
    - apt-get install -y --no-install-recommends wget gnupg ca-certificates > /dev/null
    - wget -qO - https://apt.kitware.com/keys/kitware-archive-latest.asc
        | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main'
        > /etc/apt/sources.list.d/kitware.list
    - apt-get update -y > /dev/null
    - . ci/scripts/common.linux.before_script.sh
  variables:
    EIGEN_CI_INSTALL: gcc-10 g++-10
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10

build:linux:cuda-11.5:clang-14:
  extends: build:linux:cuda-11.5:gcc-10
  before_script:
    # Ubuntu 20.04 lacks clang-14 and has cmake 3.16. Add both the LLVM
    # apt repo (for clang-14) and Kitware's apt repo (for cmake >= 3.17)
    # before running common.linux.before_script.sh, which apt-installs
    # cmake + the requested compiler.
    - apt-get update -y > /dev/null
    - apt-get install -y --no-install-recommends wget gnupg ca-certificates > /dev/null
    - wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key
        | gpg --dearmor -o /usr/share/keyrings/llvm-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/focal/ llvm-toolchain-focal-14 main'
        > /etc/apt/sources.list.d/llvm-14.list
    - wget -qO - https://apt.kitware.com/keys/kitware-archive-latest.asc
        | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg
    - echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main'
        > /etc/apt/sources.list.d/kitware.list
    - apt-get update -y > /dev/null
    - . ci/scripts/common.linux.before_script.sh
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_TEST_CUDA_CLANG: "on"

# ---- New: latest CUDA + newest compilers, sm_75;sm_90 ----------------------
# sm_75 (T4) coverage comes from every job; sm_90 only from newer CUDA.

# GCC-13, CUDA-12.6 (nvcc)
# CUDA 12.6 nvcc only supports gcc up to 13.
build:linux:cuda-12.6:gcc-13:
  extends: .build:linux:cuda
  image: nvidia/cuda:12.6.3-devel-ubuntu24.04
  variables:
    EIGEN_CI_C_COMPILER: gcc-13
    EIGEN_CI_CXX_COMPILER: g++-13
    EIGEN_CI_CUDA_COMPUTE_ARCH: "75;90"

# Clang-19, CUDA-12.6 (clang as CUDA compiler)
# Clang CUDA support lags behind nvcc; clang-19 supports up to CUDA 12.x.
build:linux:cuda-12.6:clang-19:
  extends: .build:linux:cuda
  image: nvidia/cuda:12.6.3-devel-ubuntu24.04
  variables:
    EIGEN_CI_INSTALL: clang-19
    EIGEN_CI_C_COMPILER: clang-19
    EIGEN_CI_CXX_COMPILER: clang++-19
    EIGEN_CI_TEST_CUDA_CLANG: "on"
    EIGEN_CI_CUDA_COMPUTE_ARCH: "75;90"


######### HIP ##################################################################
# Note: these are currently build-only, until we get an AMD-supported runner.

# ROCm HIP
build:linux:rocm-latest:gcc-11:
  extends: .build:linux:cross
  image: rocm/dev-ubuntu-24.04:6.3.1
  variables:
    EIGEN_CI_C_COMPILER: gcc-11
    EIGEN_CI_CXX_COMPILER: g++-11
    EIGEN_CI_BUILD_TARGET: buildtests_gpu
    EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_HIP=on
  rules:
    - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
    - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/gpu-tests/"
  cache: [] # Disable cache for ROCm, since it fails whenever the image updates.


######## Arm ###################################################################

.build:linux:cross:arm:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: arm
    EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf
    EIGEN_CI_ADDITIONAL_ARGS: >
      -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv7-a;-mfpu=neon-vfpv4
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-arm-static;-L;/usr/arm-linux-gnueabihf

build:linux:cross:arm:gcc-10:default:
  extends: .build:linux:cross:arm
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: arm-linux-gnueabihf-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: arm-linux-gnueabihf-g++-10

build:linux:cross:arm:clang-14:default:
  extends: .build:linux:cross:arm
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-14 qemu-user-static

######## aarch64 ###############################################################

.build:linux:cross:aarch64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: aarch64
    EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu
    EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+fp16
  tags:
    - saas-linux-large-arm64

build:linux:cross:aarch64:gcc-10:default:
  extends: .build:linux:cross:aarch64
  variables:
    EIGEN_CI_C_COMPILER: gcc-10
    EIGEN_CI_CXX_COMPILER: g++-10
    EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu
    EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-10
    EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-10

build:linux:cross:aarch64:clang-14:default:
  extends: .build:linux:cross:aarch64
  variables:
    EIGEN_CI_INSTALL: clang-14
    EIGEN_CI_C_COMPILER: clang-14
    EIGEN_CI_CXX_COMPILER: clang++-14
    EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu clang-14

######## ppc64le ###############################################################

.build:linux:cross:ppc64le:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: ppc64le
    EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-ppc64le-static;-L;/usr/powerpc64le-linux-gnu

build:linux:cross:ppc64le:gcc-14:default:
  extends: .build:linux:cross:ppc64le
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: powerpc64le-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: powerpc64le-linux-gnu-g++-14

build:linux:cross:ppc64le:clang-16:default:
  extends: .build:linux:cross:ppc64le
  variables:
    EIGEN_CI_C_COMPILER: clang-16
    EIGEN_CI_CXX_COMPILER: clang++-16
    EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu clang-16 qemu-user-static

######## loongarch64 #################################################

.build:linux:cross:loongarch64:
  extends: .build:linux:cross
  variables:
    EIGEN_CI_TARGET_ARCH: loongarch64
    EIGEN_CI_CROSS_TARGET_TRIPLE: loongarch64-linux-gnu

# GCC-14 (minimum on Ubuntu 24)
build:linux:cross:loongarch64:gcc-14:default:
  extends: .build:linux:cross:loongarch64
  variables:
    EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static
    EIGEN_CI_CROSS_C_COMPILER: loongarch64-linux-gnu-gcc-14
    EIGEN_CI_CROSS_CXX_COMPILER: loongarch64-linux-gnu-g++-14
    EIGEN_CI_ADDITIONAL_ARGS: >-
      -DCMAKE_SYSTEM_NAME=Linux
      -DCMAKE_CROSSCOMPILING_EMULATOR=qemu-loongarch64-static;-L;/usr/loongarch64-linux-gnu
      -DEIGEN_TEST_LSX=on

######## MR Smoke Tests ########################################################

build:linux:cross:x86-64:gcc-10:default:smoketest:
  extends: build:linux:cross:x86-64:gcc-10:default
  variables:
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  tags:
    - saas-linux-medium-amd64

build:linux:cross:x86-64:clang-14:default:smoketest:
  extends: build:linux:cross:x86-64:clang-14:default
  variables:
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  tags:
    - saas-linux-medium-amd64

build:linux:aarch64:gcc-10:default:smoketest:
  extends: build:linux:cross:aarch64:gcc-10:default
  variables:
    EIGEN_CI_BUILD_TARGET: buildsmoketests
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
  tags:
    - saas-linux-medium-arm64
