128 lines
3.8 KiB
YAML
128 lines
3.8 KiB
YAML
name: CMake build (dev)
|
|
|
|
on: push
|
|
|
|
jobs:
|
|
build:
|
|
name: ${{ matrix.config.name }}
|
|
runs-on: ${{ matrix.config.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- {
|
|
name: "Windows",
|
|
os: windows-latest,
|
|
path: "/c/ossia-sdk/llvm/bin",
|
|
common_flags: "-GNinja -DCMAKE_C_COMPILER=c:/ossia-sdk/llvm/bin/clang.exe -DCMAKE_CXX_COMPILER=c:/ossia-sdk/llvm/bin/clang++.exe -DCMAKE_UNITY_BUILD=1",
|
|
debug_flags: "-DCMAKE_BUILD_TYPE=Debug",
|
|
release_flags: "-DCMAKE_BUILD_TYPE=Release",
|
|
dependencies: "choco install -y ninja",
|
|
sdk: "/c/ossia-sdk",
|
|
}
|
|
- {
|
|
name: "Ubuntu",
|
|
os: ubuntu-latest,
|
|
path: "/opt/ossia-sdk/llvm/bin",
|
|
common_flags: "-DCMAKE_C_COMPILER=/opt/ossia-sdk/llvm/bin/clang -DCMAKE_CXX_COMPILER=/opt/ossia-sdk/llvm/bin/clang++ -DCMAKE_UNITY_BUILD=1",
|
|
debug_flags: "-DCMAKE_BUILD_TYPE=Debug",
|
|
release_flags: "-DCMAKE_BUILD_TYPE=Release",
|
|
dependencies: "sudo apt install libgl-dev libgl1-mesa-dev libegl1-mesa-dev libdrm-dev libxcomposite-dev libxkbcommon-dev libxkbcommon-x11-dev libwayland-dev libxcb-*-dev libX11-*-dev libz-dev libtinfo5 libxext-dev",
|
|
sdk: "/opt/ossia-sdk",
|
|
}
|
|
- {
|
|
name: "macOS",
|
|
os: macos-latest,
|
|
common_flags: "-DCMAKE_UNITY_BUILD=1",
|
|
debug_flags: "-DCMAKE_BUILD_TYPE=Debug",
|
|
release_flags: "-DCMAKE_BUILD_TYPE=Release",
|
|
sdk: "/opt/ossia-sdk-x86_64",
|
|
}
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
with:
|
|
submodules: "recursive"
|
|
path: addon
|
|
|
|
- name: Checkout score
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: ossia/score
|
|
submodules: "recursive"
|
|
path: score
|
|
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
${{ matrix.config.dependencies }}
|
|
|
|
- name: Download SDK
|
|
shell: bash
|
|
run: |
|
|
cd score
|
|
tools/fetch-sdk.sh
|
|
|
|
- name: Build debug
|
|
shell: bash
|
|
run: |
|
|
mkdir build-debug
|
|
cd build-debug
|
|
|
|
if [[ "${{ matrix.config.path }}" != "" ]]; then
|
|
export PATH=${{ matrix.config.path }}:$PATH
|
|
fi
|
|
|
|
cmake ../addon \
|
|
-DCMAKE_MODULE_PATH=../score/cmake \
|
|
-DSCORE_SOURCE_DIR=../score \
|
|
-DOSSIA_SDK=${{ matrix.config.sdk }} \
|
|
${{ matrix.config.common_flags }} \
|
|
${{ matrix.config.debug_flags }}
|
|
|
|
cmake --build .
|
|
|
|
- name: Build release
|
|
shell: bash
|
|
run: |
|
|
mkdir build-release
|
|
cd build-release
|
|
|
|
if [[ "${{ matrix.config.path }}" != "" ]]; then
|
|
export PATH=${{ matrix.config.path }}:$PATH
|
|
fi
|
|
|
|
cmake ../addon \
|
|
-DCMAKE_MODULE_PATH=../score/cmake \
|
|
-DSCORE_SOURCE_DIR=../score \
|
|
-DOSSIA_SDK=${{ matrix.config.sdk }} \
|
|
-DCMAKE_INSTALL_PREFIX=install \
|
|
${{ matrix.config.common_flags }} \
|
|
${{ matrix.config.release_flags }}
|
|
|
|
cmake --build .
|
|
cmake --build . --target install
|
|
|
|
- name: Upload release
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: plugin-${{ matrix.config.os }}
|
|
path: |
|
|
build-release/install/plugins
|
|
|
|
upload:
|
|
name: Combine
|
|
needs: build
|
|
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Download all workflow run artifacts
|
|
uses: actions/download-artifact@v3
|
|
|
|
- name: ls
|
|
shell: bash
|
|
run: |
|
|
pwd
|
|
ls
|
|
find .
|
|
|