[core] Add docs #13
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake build (SDK) | |
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", | |
score_sdk: "windows-sdk.zip" | |
} | |
- { | |
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", | |
score_sdk: "linux-sdk.zip" | |
} | |
- { | |
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", | |
score_sdk: "mac-sdk.zip" | |
} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
submodules: "recursive" | |
path: addon | |
- uses: suisei-cn/[email protected] | |
name: Download fetch-sdk script | |
with: | |
url: "https://github.com/ossia/score/raw/master/tools/fetch-sdk.sh" | |
target: . | |
- name: Install dependencies | |
shell: bash | |
run: | | |
${{ matrix.config.dependencies }} | |
- name: Download ossia SDK | |
shell: bash | |
run: | | |
chmod +x fetch-sdk.sh | |
./fetch-sdk.sh | |
- name: Download score headers | |
uses: robinraju/[email protected] | |
with: | |
repository: "ossia/score" | |
tag: "continuous" | |
fileName: ${{ matrix.config.score_sdk }} | |
- name: Extract score headers | |
shell: bash | |
run: | | |
cmake -E tar xzf ${{ matrix.config.score_sdk }} | |
- 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=../usr/lib/cmake/score \ | |
-DSCORE_SDK=$PWD/../usr \ | |
-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=../usr/lib/cmake/score \ | |
-DSCORE_SDK=$PWD/../usr \ | |
-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 | |
build-release/install/lib | |
upload: | |
name: Combine | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
submodules: "recursive" | |
path: addon | |
- name: Download all workflow run artifacts | |
uses: actions/download-artifact@v3 | |
- name: Create addon release | |
shell: bash | |
run: | | |
pwd | |
ls | |
find . | |
mkdir deploy | |
find . -name '*.so' -exec cp {} deploy/ \; | |
find . -name '*.dylib' -exec cp {} deploy/ \; | |
find . -name '*.dll' -exec cp {} deploy/ \; | |
ls deploy/ | |
cd deploy/ | |
WIN32_PLUGIN=$(basename *.dll) | |
LINUX_PLUGIN=$(basename *.so) | |
MACOS_PLUGIN=$(basename *.dylib) | |
cat ../addon/addon.json \ | |
| jq \ | |
--arg win64 "$WIN32_PLUGIN" \ | |
--arg linux64 "$LINUX_PLUGIN" \ | |
--arg darwin64 "$MACOS_PLUGIN" \ | |
'. + { "windows-amd64": $win64, "linux-amd64": $linux64, "darwin-amd64": $darwin64 }' \ | |
> localaddon.json | |
cat localaddon.json | |
cp -rf ../addon/LICENSE* . | |
cp -rf ../addon/README* . | |
- name: Upload release | |
uses: actions/upload-artifact@v3 | |
with: | |
name: plugin | |
path: deploy |