summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTheodore Chang <tlcfem@gmail.com>2025-05-06 18:48:39 +0200
committerGitHub <noreply@github.com>2025-05-06 16:48:39 +0000
commit6aae766520d7cbf493fce6b6f1595f8c96b71fbe (patch)
tree555730514cb794ee0ebfb44bd586b6b34a3f0501
parent590838230a52277aef006e7f2e52fda814cca077 (diff)
Update CMake workflow for Ubuntu 22.04 and ONNXRuntime integration (#2026)
-rw-r--r--.github/workflows/linux-package.yml77
1 files changed, 77 insertions, 0 deletions
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}}