diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/build-windows.bat | 3 | ||||
-rw-r--r-- | .github/workflows/cmake.yml | 66 | ||||
-rw-r--r-- | .github/workflows/linux-package.yml | 77 |
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}} |