diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml new file mode 100644 index 0000000..0531560 --- /dev/null +++ b/.github/workflows/compile.yml @@ -0,0 +1,53 @@ +name: compile + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + release: + - "ubuntu:20.04" + - "ubuntu:22.04" + - "ubuntu:24.04" + - "ubuntu:rolling" + - "debian:oldstable-slim" + - "debian:stable-slim" + - "debian:testing-slim" + - "debian:unstable-slim" + + steps: + - uses: actions/checkout@v4 + + - name: Prepare ${{ matrix.release }} container + run: | + podman version + podman run --name stable -di --userns=keep-id:uid=1000,gid=1000 -v "$PWD":/home -w /home ${{ matrix.release }} bash + podman exec -i stable uname -a + podman exec -i stable id + podman exec -i -u root stable apt update + podman exec -e DEBIAN_FRONTEND='noninteractive' -i -u root stable apt install -o APT::Install-Suggests=false -qy \ + clang \ + cmake \ + gcc-arm-none-eabi \ + git \ + make + + - name: Configure & Build with arm-none-eabi-gcc + env: + toolchain: arm-none-eabi-gcc + run: | + podman exec -i stable cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=cmake/${toolchain}.cmake -B build-${toolchain} + podman exec -i stable cmake --build build-${toolchain} + + - name: Show logs + if: ${{ failure() }} + run: | + for log in build-*/CMakeFiles/{CMakeOutput.log,CMakeConfigureLog.yaml}; do \ + if [ -e ${log} ]; then \ + echo "---------------- ${log} ----------------"; \ + cat ${log}; \ + fi; \ + done diff --git a/cmake/arm-none-eabi-clang.cmake b/cmake/arm-none-eabi-clang.cmake new file mode 100644 index 0000000..6ff6e15 --- /dev/null +++ b/cmake/arm-none-eabi-clang.cmake @@ -0,0 +1,8 @@ +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_PROCESSOR arm) + +set(CMAKE_C_COMPILER clang) +set(CMAKE_C_COMPILER_TARGET arm-none-eabi) + +SET (CMAKE_C_COMPILER_WORKS 1) +SET (CMAKE_CXX_COMPILER_WORKS 1) diff --git a/cmake/arm-none-eabi-gcc.cmake b/cmake/arm-none-eabi-gcc.cmake new file mode 100644 index 0000000..1b0f873 --- /dev/null +++ b/cmake/arm-none-eabi-gcc.cmake @@ -0,0 +1,8 @@ +set(CMAKE_SYSTEM_NAME Generic) +set(CMAKE_SYSTEM_PROCESSOR arm) + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_C_COMPILER_TARGET arm-none-eabi) + +SET (CMAKE_C_COMPILER_WORKS 1) +SET (CMAKE_CXX_COMPILER_WORKS 1)