---
name: linux-mips64-gcc
on:
  push:
    paths:
      - .gitea/workflows/linux-mips64-gcc.yml
      - toolchains/mips64el-linux-gnuabi64.toolchain.cmake
      - 3party/**
      - include/**
      - src/**
      - tests/**
      - CMakeLists.txt
      - cmake/**
  pull_request:
    paths:
      - .gitea/workflows/linux-mips64-gcc.yml
      - toolchains/mips64el-linux-gnuabi64.toolchain.cmake
      - 3party/**
      - include/**
      - src/**
      - tests/**
      - CMakeLists.txt
      - cmake/**
concurrency:
  group: linux-mips64-gcc-${{ github.ref }}
  cancel-in-progress: true
permissions: read-all
jobs:
  linux-gcc-mips64el:
    runs-on: ubuntu-20.04
    strategy:
      matrix:
        build_type: [Debug, Release]
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
      - name: mips64el-gnuabi64-toolchain
        run: |
          sudo apt-get update -y
          sudo apt-get install -y cmake make g++-mips64el-linux-gnuabi64 qemu-user-binfmt
      - name: configure
        run: |
          mkdir build && cd build
          cmake .. -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DSLED_BUILD_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=../toolchains/mips64el-linux-gnuabi64.toolchain.cmake #-DCMAKE_CROSSCOMPILING_EMULATOR="qemu-mips64el;-L;/usr/mips64el-linux-gnuabi64"
      - name: build
        run: cmake --build build --target all -j `nproc`
      - name: test
        run: |-
          cd build 
          ln -sf /usr/mips64el-linux-gnuabi64/lib64/ld.so.1 /lib64/ld.so.1
          export LD_LIBRARY_PATH=/usr/mips64el-linux-gnuabi64/lib
          ctest --output-on-failure -j`nproc`
