CI MSYS2: choose ucrt64 and use pacboy #479
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: Build Pd Externals | |
on: [push, pull_request] | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: install Ubuntu packages | |
run: | | |
PACKAGES=( | |
libfftw3-dev | |
libmysofa-dev | |
puredata-dev | |
autogen | |
) | |
sudo apt-get install --no-install-recommends ${PACKAGES[@]} | |
- name: checkout ssr | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: ssr | |
- name: Build dependencies | |
working-directory: ssr/ci | |
run: | | |
sudo chown -R $(whoami):admin /usr/local | |
./build-small-libsndfile.sh | |
./build-small-libxml2.sh | |
sudo ldconfig | |
- name: build externals | |
working-directory: ssr/flext | |
run: | | |
make install DESTDIR=build PDLIBDIR= | |
- name: Fix pd_linux dependencies | |
working-directory: ssr/flext | |
run: | | |
sh pd-lib-builder-iem-ci/localdeps/localdeps.linux.sh build/ssr_*.pd_linux | |
- name: upload Linux externals | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-externals | |
path: ssr/flext/build/* | |
macos: | |
runs-on: macos-latest | |
steps: | |
- name: install macOS packages | |
run: | | |
PACKAGES=( | |
autogen | |
automake | |
fftw | |
SoundScapeRenderer/ssr/libmysofa | |
pkg-config | |
) | |
brew install ${PACKAGES[@]} | |
brew install --cask pd | |
- name: checkout ssr | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: ssr | |
- name: Build dependencies | |
working-directory: ssr/ci | |
run: | | |
sudo chown -R $(whoami):admin /usr/local | |
./build-small-libsndfile.sh | |
- name: build externals | |
working-directory: ssr/flext | |
run: | | |
make install DESTDIR=build PDLIBDIR= CPPFLAGS=-I/opt/homebrew/include LDFLAGS=-L/opt/homebrew/lib | |
- name: Fix pd_darwin dependencies | |
working-directory: ssr/flext | |
run: | | |
sh pd-lib-builder-iem-ci/localdeps/localdeps.macos.sh build/ssr_*.pd_darwin | |
- name: upload macOS externals | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-externals | |
path: ssr/flext/build/* | |
windows: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Install MSYS2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ucrt64 | |
release: false | |
path-type: inherit | |
install: >- | |
unzip | |
autogen | |
autotools | |
pacboy: >- | |
gcc:p | |
fftw:p | |
libmysofa:p | |
ntldd-git:p | |
- name: Install Pd | |
run: | | |
wget -q -O Pd.zip http://msp.ucsd.edu/Software/pd-0.51-3.msw.zip | |
rm -rf "${PROGRAMFILES}/pd" && mkdir -p "${PROGRAMFILES}/pd" | |
unzip -q Pd.zip -d "${PROGRAMFILES}/pd" | |
mv -v "${PROGRAMFILES}/pd"/*/* "${PROGRAMFILES}/pd" | |
rm -f Pd.zip | |
export PD="${PROGRAMFILES}/pd/bin/pd.com" | |
- name: checkout ssr | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: ssr | |
- name: Build dependencies | |
working-directory: ssr/ci | |
run: | | |
# https://github.com/msys2/MINGW-packages/issues/5803 | |
export LIBS=-lssp | |
./build-small-libsndfile.sh | |
./build-small-libxml2.sh | |
- name: build externals | |
working-directory: ssr/flext | |
run: | | |
make install DESTDIR=build PDLIBDIR= extension=m_amd64 | |
- name: Fix dll dependencies | |
working-directory: ssr/flext | |
run: | | |
sh pd-lib-builder-iem-ci/localdeps/localdeps.win.sh build/ssr_*.m_amd64 | |
- name: upload Windows externals | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-externals | |
path: ssr/flext/build/* | |
deken-package: | |
# Deken is not available on 22.04, | |
# see https://github.com/pure-data/deken/issues/260 | |
runs-on: ubuntu-20.04 | |
needs: [linux, macos, windows] | |
steps: | |
- name: Clone Git repository | |
uses: actions/checkout@v4 | |
with: | |
# check out all tags to get proper version in Deken package | |
fetch-depth: 0 | |
- name: Retrieve Linux externals | |
uses: actions/download-artifact@v4 | |
with: | |
name: linux-externals | |
path: ssr | |
- name: Retrieve macOS external | |
uses: actions/download-artifact@v4 | |
with: | |
name: macos-externals | |
path: ssr | |
- name: Retrieve Windows external | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-externals | |
path: ssr | |
- name: Install deken | |
run: | | |
sudo apt-get install --no-install-recommends deken | |
# work-arounds from https://github.com/pure-data/deken/issues/247: | |
mkdir ~/.deken | |
python3 -m pip install hy==0.19 | |
- name: Run deken | |
run: | | |
deken package -v $(git describe --tags --always) --objects flext/objects.txt ssr | |
- name: Upload deken package | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Deken package | |
path: "*.dek*" |