-
Notifications
You must be signed in to change notification settings - Fork 7
100 lines (87 loc) · 4.05 KB
/
cmake.yml
File metadata and controls
100 lines (87 loc) · 4.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
name: rsav-compile
on: [workflow_dispatch]
env:
BUILD_TYPE: Release
BUILD_DIR: build
PROJECT_NAME: RSAlgorithmicVerb
PRODUCT_NAME: RSAlgorithmicVerb
DISPLAY: :0 # linux pluginval needs this
# BUILD_TYPE: Release
defaults:
run:
shell: bash
jobs:
build:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false # show all errors for each platform (vs. cancel jobs on error)
matrix:
os: [ubuntu-latest] #[macos-latest, ubuntu-latest, windows-latest]
# include:
# - name: Linux
# os: ubuntu-latest
# pluginval-binary: ./pluginval
# extra-flags: -G Ninja
# - name: macOS
# os: macos-latest
# pluginval-binary: pluginval.app/Contents/MacOS/pluginval
# extra-flags: -G Ninja -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"
# - name: Windows
# os: windows-latest
# pluginval-binary: ./pluginval.exe
steps:
# Use clang on Linux so we don't introduce a 3rd compiler (Windows and macOS use MSVC and Clang)
# - name: Set up Clang
# if: runner.os == 'Linux'
# uses: egor-tensin/setup-clang@v1
# This also starts up our "fake" display (Xvfb), needed for pluginval
- name: Install JUCE's Linux Deps
if: runner.os == 'Linux'
# Official list of Linux deps: https://github.com/juce-framework/JUCE/blob/develop/docs/Linux%20Dependencies.md
run: |
sudo apt-get update && sudo apt install libasound2-dev libjack-jackd2-dev \
ladspa-sdk \
libcurl4-openssl-dev \
libfreetype-dev libfontconfig1-dev \
libx11-dev libxcomposite-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev \
libwebkit2gtk-4.1-dev \
libglu1-mesa-dev mesa-common-dev
sudo /usr/bin/Xvfb $DISPLAY &
- name: "Preparation"
uses: actions/checkout@v2
- name: "(JUCE) Clone Repository"
uses: actions/checkout@v2
with:
repository: juce-framework/JUCE
path: ${{runner.workspace}}/RSAlgorithmicVerb/JUCE
- name: "Create Build Environment"
working-directory: ${{runner.workspace}}/RSAlgorithmicVerb
run: cmake -S . -B build
- name: "Build"
working-directory: ${{runner.workspace}}/RSAlgorithmicVerb
run: cmake --build build --config Release
# https://github.com/sudara/cmake-includes/blob/1f5ccb8c040d0a7ec489fdab11831ff310df1077/GitHubENV.cmake#L4
# - name: Read in .env from CMake # see GitHubENV.cmake
# run: |
# cat .env # show us the config
# cat .env >> $GITHUB_ENV # pull in our PRODUCT_NAME, etc
# - name: Set additional env vars for next steps
# run: |
# ARTIFACTS_PATH=${{ env.BUILD_DIR }}/${{ env.PROJECT_NAME }}_artefacts/${{ env.BUILD_TYPE }}
# echo "ARTIFACTS_PATH=$ARTIFACTS_PATH" >> $GITHUB_ENV
# echo "VST3_PATH=$ARTIFACTS_PATH/VST3/${{ env.PRODUCT_NAME }}.vst3" >> $GITHUB_ENV
# echo "AU_PATH=$ARTIFACTS_PATH/AU/${{ env.PRODUCT_NAME }}.component" >> $GITHUB_ENV
# echo "AUV3_PATH=$ARTIFACTS_PATH/AUv3/${{ env.PRODUCT_NAME }}.appex" >> $GITHUB_ENV
# echo "CLAP_PATH=$ARTIFACTS_PATH/CLAP/${{ env.PRODUCT_NAME }}.clap" >> $GITHUB_ENV
# echo "STANDALONE_PATH=$ARTIFACTS_PATH/Standalone/${{ env.PRODUCT_NAME }}.app" >> $GITHUB_ENV
# echo "ARTIFACT_NAME=${{ env.PRODUCT_NAME }}-${{ env.VERSION }}-${{ matrix.name }}" >> $GITHUB_ENV
# - name: Pluginval
# run: |
# curl -LO "https://github.com/Tracktion/pluginval/releases/download/v1.0.3/pluginval_${{ matrix.name }}.zip"
# 7z x pluginval_${{ matrix.name }}.zip
# ${{ matrix.pluginval-binary }} --strictness-level 10 --verbose --validate "${{ env.VST3_PATH }}"
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: "RSAlgorithmicVerb_${{ runner.os }}"
path: ${{runner.workspace}}/RSAlgorithmicVerb/build/RSAlgorithmicVerb_artefacts/