summaryrefslogtreecommitdiffhomepage
path: root/.github
diff options
context:
space:
mode:
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build-windows.bat3
-rw-r--r--.github/workflows/cmake.yml66
-rw-r--r--.github/workflows/linux-package.yml77
3 files changed, 146 insertions, 0 deletions
diff --git a/.github/workflows/build-windows.bat b/.github/workflows/build-windows.bat
new file mode 100644
index 00000000..4571683e
--- /dev/null
+++ b/.github/workflows/build-windows.bat
@@ -0,0 +1,3 @@
+set path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\CMake\bin;C:\Program Files\Git\cmd;%GITHUB_WORKSPACE%/ninja-build
+"C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat" >nul && %*
+exit /b %ERRORLEVEL%
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
new file mode 100644
index 00000000..fc53f6d7
--- /dev/null
+++ b/.github/workflows/cmake.yml
@@ -0,0 +1,66 @@
+name: CMake
+
+on:
+ - push
+ - pull_request
+
+env:
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
+ BUILD_TYPE: Release
+
+jobs:
+ build:
+ # The CMake configure and build commands are platform agnostic and should work equally
+ # well on Windows or Mac. You can convert this to a matrix build if you need
+ # cross-platform coverage.
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, ubuntu-latest, windows-latest]
+ include:
+ - os: macos-latest
+ cmake: cmake
+ - os: ubuntu-latest
+ cmake: cmake
+ - os: windows-latest
+ cmake: .\.github\workflows\build-windows.bat cmake
+
+ steps:
+ - name: clone opentrack/opentrack
+ uses: actions/checkout@v2
+
+ - name: clone opentrack/depends
+ uses: actions/checkout@v2
+ with:
+ repository: opentrack/opentrack-depends
+ submodules: true
+ path: opentrack-depends
+
+ - uses: seanmiddleditch/gha-setup-ninja@master
+
+ - name: Install Linux Dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install libproc2-dev libopencv-dev libopencv-dev wine64-tools
+ sudo apt-get install qttools5-dev qtbase5-dev libqt5serialport5-dev qtbase5-private-dev
+ if: matrix.os == 'ubuntu-latest'
+
+ - name: Install Qt
+ uses: jurplel/install-qt-action@v3
+ with:
+ archives: qtbase qtimageformats qtgamepad qttools qtserialport qtmultimedia
+ if: matrix.os != 'ubuntu-latest'
+
+ - name: Configure
+ run: ${{matrix.cmake}} -GNinja -S ${{github.workspace}}/ -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DQt5_DIR=${{env.Qt5_DIR}} -DQt5Gui_DIR=${{env.Qt5_DIR}}/lib/cmake/Qt5Gui
+
+ - name: Build
+ run: ${{matrix.cmake}} --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install
+
+# - name: Upload build
+# uses: actions/upload-artifact@v3
+# with:
+# name: buildoutput
+# path: ${{github.workspace}}/build/
diff --git a/.github/workflows/linux-package.yml b/.github/workflows/linux-package.yml
new file mode 100644
index 00000000..bc622b6f
--- /dev/null
+++ b/.github/workflows/linux-package.yml
@@ -0,0 +1,77 @@
+name: Linuax Package
+on:
+ push:
+ tags:
+ - 'opentrack-*'
+ workflow_dispatch:
+env:
+ build_type: Release
+ onnx_version: 1.21.0
+ onnx_prefix: onnxruntime-linux-x64
+ file_name: '' # to disable warning in case of a linter
+ Qt5_DIR: '' # to disable warning in case of a linter
+jobs:
+ Package:
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Clone opentrack/opentrack
+ uses: actions/checkout@v4
+ - name: Clone opentrack/depends
+ uses: actions/checkout@v4
+ with:
+ repository: opentrack/opentrack-depends
+ submodules: true
+ path: opentrack-depends
+
+ - name: Install Dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install libprocps-dev libopencv-dev wine64-tools
+ wget -q https://github.com/microsoft/onnxruntime/releases/download/v${{env.onnx_version}}/${{env.onnx_prefix}}-${{env.onnx_version}}.tgz
+ tar xzf ${{env.onnx_prefix}}-${{env.onnx_version}}.tgz
+ - name: Install Qt
+ uses: jurplel/install-qt-action@v4
+ with:
+ version: 5.15
+ archives: icu qtbase qttools qtserialport
+
+ - name: Configure and Build
+ run: |
+ cmake -S . -B build \
+ -DCMAKE_BUILD_TYPE=${{env.build_type}} \
+ -DONNXRuntime_DIR=${{env.onnx_prefix}}-${{env.onnx_version}} \
+ -DQt5_DIR=${{env.Qt5_DIR}}
+ cmake --build build --config ${{env.build_type}} --target install -- -j $(nproc)
+
+ - name: Pack
+ run: |
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/${{env.onnx_prefix}}-${{env.onnx_version}}/lib
+
+ # required by linuxdeployqt
+ sudo apt-get install libfuse2
+ wget -q https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
+ chmod +x linuxdeployqt-*.AppImage
+ cd build/install/
+ ln -s $(pwd)/libexec/opentrack $(pwd)/lib
+ ../../linuxdeployqt-*.AppImage bin/opentrack -bundle-non-qt-libs -unsupported-allow-new-glibc
+ rm lib
+
+ echo '#!/bin/sh' >> opentrack
+ echo 'CURRENT_PATH="$(dirname "$(readlink -f "$0")")"' >> opentrack
+ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CURRENT_PATH/libexec/opentrack' >> opentrack
+ echo '"$CURRENT_PATH/bin/opentrack" "$@"' >> opentrack
+ chmod +x opentrack
+
+ if [[ ${{github.ref_name}} =~ ^opentrack.*$ ]]; then
+ file_name=${{github.ref_name}}-linux.tar.gz
+ else
+ file_name=opentrack-dev-linux.tar.gz
+ fi
+ echo "file_name=$file_name" >> $GITHUB_ENV
+
+ tar czf ../../$file_name .
+ - name: Upload
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{env.file_name}}
+ path: ${{env.file_name}}