Explicitly link against pthreads #173
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 | |
'on': [push, pull_request] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
linux-gcc: | |
name: linux-gcc | |
runs-on: ubuntu-latest | |
steps: | |
- name: Update | |
run: sudo apt-get --yes update | |
- name: Install dependencies | |
run: sudo apt-get --yes install fluidsynth libfluidsynth-dev sordi gtk+2.0 libgtk2.0-dev libcairo2 lv2-dev | |
- name: Check out | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure | |
run: | | |
mkdir build && cd build | |
cmake -DCMAKE_INSTALL_PREFIX=../install-dir -DCMAKE_BUILD_TYPE=Release .. | |
- name: Build | |
run: cmake --build build | |
- name: Package | |
run: | | |
cd build | |
cpack -G TGZ --config CPackSourceConfig.cmake | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux | |
path: build/calf-*gz | |
linux-clang-with-lld: | |
name: linux-clang-with-lld # clang with LLVM's linker LLD | |
runs-on: ubuntu-latest | |
steps: | |
- name: Update | |
run: sudo apt-get --yes update | |
- name: Install dependencies | |
run: sudo apt-get --yes install fluidsynth libfluidsynth-dev sordi gtk+2.0 libgtk2.0-dev libcairo2 lv2-dev | |
- name: Check out | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure | |
run: > | |
mkdir build && cd build && | |
cmake .. | |
-DCMAKE_INSTALL_PREFIX=../install-dir | |
-DCMAKE_C_COMPILER=clang | |
-DCMAKE_CXX_COMPILER=clang++ | |
-DCMAKE_C_FLAGS="-fuse-ld=lld" | |
-DCMAKE_CXX_FLAGS="-fuse-ld=lld" | |
- name: Build | |
run: cmake --build build | |
macos: | |
name: macos | |
runs-on: macos-13 | |
steps: | |
- name: Install python3 | |
run: brew install --overwrite [email protected] | |
- name: Install dependencies | |
run: brew install automake fluid-synth gtk+ lv2 gtk-mac-integration expat | |
- name: Check out | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Configure | |
run: | | |
export LDFLAGS="-L$(brew --prefix)/lib" | |
export CPPFLAGS="-I$(brew --prefix expat)/include" | |
mkdir build && cd build | |
cmake -DCMAKE_INSTALL_PREFIX=../install-dir -DCMAKE_SHARED_LINKER_FLAGS="-L$(brew --prefix)/lib -Wl,-rpath,$(brew --prefix)/lib" -DCMAKE_CXX_FLAGS="-I$(brew --prefix)/include" -DCMAKE_BUILD_TYPE=Release .. | |
- name: Build | |
run: cmake --build build | |
- name: Package | |
run: | | |
cd build | |
cpack -G productbuild | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos | |
path: build/calf-*.pkg | |
msvc: | |
name: msvc | |
runs-on: windows-latest | |
steps: | |
- name: Check out | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Cache vcpkg dependencies | |
id: cache-deps | |
uses: actions/cache@v4 | |
with: | |
key: vcpkg-x64-${{ hashFiles('vcpkg.json') }} | |
restore-keys: | | |
vcpkg-x64- | |
path: build\vcpkg_installed | |
- name: Configure | |
run: | | |
mkdir build -Force | |
cmake ` | |
-B build ` | |
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake ` | |
-DCMAKE_BUILD_TYPE=Debug ` | |
. | |
- name: Build | |
run: cmake --build build --config Release | |
- name: Package | |
run: | | |
cd build | |
cpack -G NSIS -C Release | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows | |
path: build\calf-*.exe | |
# mingw-cross: | |
# strategy: | |
# matrix: | |
# compiler: | |
# - {bits: '32'} | |
# - {bits: '64'} | |
# name: mingw-${{matrix.compiler.bits}}-cross | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Check out | |
# uses: actions/checkout@v4 | |
# with: | |
# fetch-depth: 0 | |
# - name: Install MinGW | |
# run: | | |
# sudo dpkg --add-architecture i386 # for wine32 | |
# sudo apt-get update # due to new architecture | |
# sudo apt-get install -y mingw-w64 | |
# - name: Compile dependencies | |
# run: | | |
# calf_pwd=$PWD | |
# cd /tmp | |
# wget https://github.com/libexpat/libexpat/releases/download/R_2_5_0/expat-2.5.0.tar.bz2 | |
# tar xjf expat-2.5.0.tar.bz2 | |
# cd expat-2.5.0 | |
# ./buildconf.sh | |
# mkdir build | |
# cd build | |
# export CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov | |
# cmake -DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON .. | |
# make VERBOSE=1 CTEST_OUTPUT_ON_FAILURE=1 all | |
# sudo make install | |
# cd /tmp | |
# rm -rf /tmp/expat-2.5.0 | |
# wget https://github.com/FluidSynth/fluidsynth/archive/refs/tags/v2.3.4.tar.gz | |
# tar xfz v2.3.4.tar.gz | |
# cd fluidsynth-2.3.4 | |
# mkdir build | |
# cd build | |
# ls -la $calf_pwd/.. | |
# ls -la $calf_pwd | |
# ls -la $calf_pwd/cmake/toolchains | |
# export PKG_CONFIG_LIBDIR=/usr/x86_64-w64-mingw32/sys-root/mingw/lib/pkgconfig | |
# cmake -DCMAKE_TOOLCHAIN_FILE=$calf_pwd/cmake/toolchains/FluidSynth-${{matrix.compiler.bits}}.cmake -Denable-libsndfile=0 -Denable-dbus=0 -Denable-pulseaudio=0 -Denable-jack=0 .. | |
# sudo make install | |
# - name: Install dependencies | |
# run: | | |
# sudo add-apt-repository ppa:tobydox/mingw-w64 | |
# sudo apt update | |
# sudo apt-get install -y fluidsynth-mingw-w64 | |
# - name: Configure | |
# run: > | |
# mkdir build && cd build && | |
# PATH=/opt/mingw${{matrix.compiler.bits}}/bin:$PATH | |
# cmake .. | |
# -DCMAKE_INSTALL_PREFIX=../install | |
# -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/Ubuntu-MinGW-W64-${{matrix.compiler.bits}}.cmake | |
# -DCMAKE_PREFIX_PATH=/opt/mingw${{matrix.compiler.bits}} | |
# - name: Build | |
# run: cmake --build build |