Rewrite everything #289
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
name: Dockcross CI | |
on: | |
push: | |
branches: | |
- "*" | |
paths-ignore: | |
- "**.md" | |
pull_request: | |
branches: | |
- "*" | |
workflow_dispatch: | |
jobs: | |
build: | |
name: dockcross ${{ matrix.dockcross.image_name }} ${{ matrix.build_type }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
dockcross: | |
# Android images | |
- { image_name: android-arm, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
- { image_name: android-arm64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
- { image_name: android-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
- { image_name: android-x86_64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
# Web images | |
- { image_name: web-wasm, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
- { image_name: web-wasi, cmake_arg: "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS} -fno-exceptions' -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF -DENABLE_THREADPOOL=OFF" } | |
# Linux ARMv5 images | |
- { image_name: linux-armv5, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-armv5-musl, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# Linux ARMv6 images | |
- { image_name: linux-armv6, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-armv6-lts, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: linux-armv6-musl, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# linux ARMv7 images | |
- { image_name: linux-armv7, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-armv7-lts, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { image_name: linux-armv7a, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-armv7l-musl, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# Linux ARMv8 (64 bit) images | |
- { image_name: linux-arm64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-arm64-lts, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: linux-arm64-full, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: linux-arm64-musl, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# Linux x86 images | |
- { image_name: linux-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { image_name: linux-x64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { | |
image_name: linux-x64-clang, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { image_name: linux-x64-tinycc, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { image_name: linux-x86_64-full, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux s390 images | |
- { image_name: linux-s390x, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux mips images | |
- { image_name: linux-mips, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux PowerPC 64 images | |
- { image_name: linux-ppc64le, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { image_name: linux-ppc, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
#- { image_name: linux-ppc64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux xtensa images | |
- { image_name: linux-xtensa-uclibc, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux riscv images | |
- { image_name: linux-riscv32, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
- { image_name: linux-riscv64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Linux m68k images | |
- { image_name: linux-m68k-uclibc, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# ManyLinux images | |
#- { image_name: manylinux1-x64, cmake_arg: "-DCMAKE_CXX_STANDARD=14" } | |
#- { image_name: manylinux1-x86, cmake_arg: "-DCMAKE_CXX_STANDARD=14" } | |
#- { | |
# image_name: manylinux2010-x86, | |
# cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
# } | |
#- { | |
# image_name: manylinux2010-x64, | |
# cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
# } | |
#- { | |
# image_name: manylinux2014-x86, | |
# cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
# } | |
#- { | |
# image_name: manylinux2014-x64, | |
# cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
# } | |
# - { image_name: manylinux2014-aarch64, cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF" } | |
# Windows x86 images | |
- { | |
image_name: windows-static-x64, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-static-x64-posix, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-static-x86, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-shared-x64, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-shared-x64-posix, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-shared-x86, | |
cmake_arg: "-DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# Windows ARM images | |
- { | |
image_name: windows-armv7, | |
cmake_arg: "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
- { | |
image_name: windows-arm64, | |
cmake_arg: "-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DCMAKE_CXX_STANDARD=20 -DENABLE_OPENCL=OFF -DENABLE_CUDA=OFF -DENABLE_QT=OFF", | |
} | |
# Disable MinSizeRel RelWithDebInfo, Release, Debug | |
build_type: [Release] | |
steps: | |
- name: "Checkout Code" | |
uses: actions/checkout@v3 | |
with: | |
submodules: "recursive" | |
fetch-depth: 0 | |
- name: "Pull docker image: dockcross/${{ matrix.dockcross.image_name }}" | |
run: docker pull dockcross/${{ matrix.dockcross.image_name }}:latest | |
- name: "Make dockcross script: dockcross-${{ matrix.dockcross.image_name }}" | |
run: | | |
docker run --rm dockcross/${{ matrix.dockcross.image_name }} > ./dockcross-${{ matrix.dockcross.image_name }} | |
chmod +x ./dockcross-${{ matrix.dockcross.image_name }} | |
- name: "Config CMake build" | |
run: ./dockcross-${{ matrix.dockcross.image_name }} cmake -B build-${{ matrix.dockcross.image_name }} -S . -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.dockcross.cmake_arg }} | |
- name: "Build" | |
run: ./dockcross-${{ matrix.dockcross.image_name }} ninja -C build-${{ matrix.dockcross.image_name }} |