2021-12-19 23:12:25 +01:00
|
|
|
name: 'MinedMap'
|
|
|
|
on: ['push', 'pull_request', 'workflow_dispatch']
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
name: 'Build MinedMap (${{ matrix.host }})'
|
|
|
|
runs-on: 'ubuntu-20.04'
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
host:
|
|
|
|
- 'x86_64-linux-gnu'
|
|
|
|
- 'x86_64-w64-mingw32'
|
|
|
|
include:
|
|
|
|
- host: 'x86_64-linux-gnu'
|
|
|
|
label: 'x86_64-linux-gnu'
|
|
|
|
packages: ['g++', 'libpng-dev']
|
|
|
|
prefix: '/usr'
|
|
|
|
build_libpng: false
|
|
|
|
- host: 'x86_64-w64-mingw32'
|
|
|
|
label: 'Win64'
|
|
|
|
packages: ['g++-mingw-w64-x86-64', 'libz-mingw-w64-dev']
|
|
|
|
prefix: '/usr/x86_64-w64-mingw32'
|
|
|
|
build_libpng: true
|
2021-12-21 23:55:27 +01:00
|
|
|
- host: 'i686-w64-mingw32'
|
|
|
|
label: 'Win32'
|
|
|
|
packages: ['g++-mingw-w64-i686', 'libz-mingw-w64-dev']
|
|
|
|
prefix: '/usr/i686-w64-mingw32'
|
|
|
|
build_libpng: true
|
2021-12-19 23:12:25 +01:00
|
|
|
|
|
|
|
env:
|
|
|
|
CMAKE_TOOLCHAIN_FILE: '${{ github.workspace }}/.github/toolchains/${{ matrix.host }}.cmake'
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: 'Checkout'
|
|
|
|
uses: 'actions/checkout@v2'
|
|
|
|
|
|
|
|
- name: 'Get version'
|
|
|
|
id: 'tag'
|
|
|
|
run: |
|
|
|
|
set -o pipefail
|
|
|
|
git fetch --prune --unshallow
|
|
|
|
git describe --abbrev=7 --match='v*' | sed 's/^v/::set-output name=tag::/'
|
|
|
|
|
|
|
|
- name: 'Dependencies (apt)'
|
|
|
|
run: |
|
|
|
|
sudo apt-get -y update
|
|
|
|
sudo apt-get -y install ninja-build ${{ join(matrix.packages, ' ') }}
|
|
|
|
sudo apt-get -y clean
|
|
|
|
|
|
|
|
- name: 'Dependencies (libpng)'
|
|
|
|
if: '${{ matrix.build_libpng }}'
|
|
|
|
run: |
|
|
|
|
pkgver=1.6.37
|
|
|
|
pkghash=505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca
|
|
|
|
|
|
|
|
mkdir -p build/libpng
|
|
|
|
cd build/libpng
|
|
|
|
wget http://downloads.sourceforge.net/sourceforge/libpng/libpng-$pkgver.tar.xz
|
|
|
|
echo "$pkghash libpng-$pkgver.tar.xz" | sha256sum -c -
|
|
|
|
tar xf libpng-$pkgver.tar.xz
|
|
|
|
cd libpng-$pkgver
|
|
|
|
./configure \
|
|
|
|
--prefix=${{ matrix.prefix }} \
|
|
|
|
--host=${{ matrix.host }} \
|
|
|
|
--disable-shared
|
|
|
|
make -j$(nproc)
|
|
|
|
sudo make install
|
|
|
|
sudo rm ${{ matrix.prefix }}/lib/libpng*.la
|
|
|
|
|
|
|
|
- name: 'Build'
|
|
|
|
uses: lukka/run-cmake@v10
|
|
|
|
with:
|
|
|
|
configurePreset: 'ninja'
|
|
|
|
buildPreset: 'ninja-release'
|
|
|
|
|
|
|
|
- name: 'Install'
|
|
|
|
run: |
|
|
|
|
export DESTDIR="$(pwd)/build/install"
|
|
|
|
ninja -C builds/ninja -f build-RelWithDebInfo.ninja install/strip
|
|
|
|
|
|
|
|
pkgdir='build/pkg/MinedMap-${{ steps.tag.outputs.tag }}-${{ matrix.label }}'
|
|
|
|
mkdir -p "$pkgdir"
|
|
|
|
cp "$DESTDIR/usr/local/bin"/* "$pkgdir"/
|
|
|
|
|
|
|
|
- name: 'Archive'
|
|
|
|
uses: 'actions/upload-artifact@v2'
|
|
|
|
with:
|
|
|
|
name: 'MinedMap-${{ steps.tag.outputs.tag }}-${{ matrix.label }}'
|
|
|
|
path: 'build/pkg'
|
2021-12-19 23:19:56 +01:00
|
|
|
|
|
|
|
viewer:
|
|
|
|
name: 'Package viewer'
|
|
|
|
runs-on: 'ubuntu-20.04'
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: 'Checkout'
|
|
|
|
uses: 'actions/checkout@v2'
|
|
|
|
|
|
|
|
- name: 'Get version'
|
|
|
|
id: 'tag'
|
|
|
|
run: |
|
|
|
|
set -o pipefail
|
|
|
|
git fetch --prune --unshallow
|
|
|
|
git describe --abbrev=7 --match='v*' | sed 's/^v/::set-output name=tag::/'
|
|
|
|
|
|
|
|
- name: 'Install'
|
|
|
|
run: |
|
|
|
|
pkgdir='build/pkg/MinedMap-${{ steps.tag.outputs.tag }}-viewer'
|
|
|
|
mkdir -p "$pkgdir"
|
|
|
|
cp -r viewer/* "$pkgdir"/
|
|
|
|
|
|
|
|
- name: 'Archive'
|
|
|
|
uses: 'actions/upload-artifact@v2'
|
|
|
|
with:
|
|
|
|
name: 'MinedMap-${{ steps.tag.outputs.tag }}-viewer'
|
|
|
|
path: 'build/pkg'
|