diff --git a/.github/workflows/dockcross.yml b/.github/workflows/dockcross.yml new file mode 100644 index 00000000..a0606b96 --- /dev/null +++ b/.github/workflows/dockcross.yml @@ -0,0 +1,72 @@ +name: Dockcross + +on: + push: + branches: + - "*" + paths-ignore: + - "**/README.md" + pull_request: + branches: + - "*" + +jobs: + image: + name: "Build ${{ matrix.image_name }} ${{ matrix.build_type }}" + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + # Remove images that you do not need + image_name: + [ + android-arm, + android-arm64, + android-x86, + android-x86_64, + linux-x86, + linux-x64, + linux-x64-clang, + linux-arm64, + linux-arm64-musl, + linux-arm64-full, + linux-armv5, + linux-armv5-musl, + linux-m68k-uclibc, + linux-s390x, + linux-x64-tinycc, + linux-armv6, + linux-armv6-lts, + linux-armv6-musl, + linux-armv7l-musl, + linux-armv7, + linux-armv7a, + linux-x86_64-full, + linux-mips, + linux-ppc64le, + linux-riscv64, + linux-riscv32, + linux-xtensa-uclibc, + windows-static-x86, + windows-static-x64, + windows-static-x64-posix, + windows-armv7, + windows-shared-x86, + windows-shared-x64, + windows-shared-x64-posix, + windows-arm64, + manylinux2014-x64, + manylinux2014-x86, + manylinux2014-aarch64, + web-wasm, + ] + # Disable MinSizeRel RelWithDebInfo Debug Release + build_type: [Debug] + steps: + - name: "Checkout Code" + uses: actions/checkout@v2 + with: + submodules: "recursive" + fetch-depth: 0 + - name: "build" + run: ./tools/dockcross-cmake-builder.sh ${{ matrix.image_name }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} diff --git a/tools/dockcross-cmake-builder.sh b/tools/dockcross-cmake-builder.sh new file mode 100755 index 00000000..c96b5988 --- /dev/null +++ b/tools/dockcross-cmake-builder.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +if (( $# >= 1 )); then + image=$1 + build_file=build-${image%:*} + shift 1 + + cmake_arg=$@ + echo "cmake arg: $cmake_arg" + + #echo "Pulling dockcross/$image" + #docker pull dockcross/"$image" + + echo "Make script dockcross-$image" + docker run --rm dockcross/"$image" > ./dockcross-"$image" + chmod +x ./dockcross-"$image" + + echo "Build $build_file" + ./dockcross-"$image" cmake -B "$build_file" -S . -G Ninja $cmake_arg + ./dockcross-"$image" ninja -C "$build_file" +else + echo "Usage: ${0##*/} " + exit 1 +fi