Skip to content

Add logic to autodetect compiler and fix build with clang on linux #7

Add logic to autodetect compiler and fix build with clang on linux

Add logic to autodetect compiler and fix build with clang on linux #7

Workflow file for this run

name: build
on: [push, pull_request]
env:
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
WITH_LTO: false
jobs:
macos-11:
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- name: Set up dependencies
run: |
brew install fluid-synth liblo libmagic libsndfile pkg-config pyqt@5 qt@5 sdl2
- name: make features
run: make features
- name: make
run: make -j $(sysctl -n hw.logicalcpu)
ubuntu-20_04:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo apt-get install -yqq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yqq g++-multilib libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
- name: make features
run: make features
- name: make
run: make -j $(nproc)
- name: make posix32
run: make posix32 -j $(nproc)
ubuntu-22_04:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
- name: Set up dependencies
run: |
sudo apt-get install -yqq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yqq g++-multilib libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
- name: make features
run: make features
- name: make
run: make -j $(nproc)
- name: make posix32
run: make posix32 -j $(nproc)
ubuntu-clang-20_04:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libpcre2-8-0/focal libpcre2-16-0/focal libpcre2-32-0/focal libpcre2-posix2/focal
- name: Set up dependencies
run: |
sudo apt-get install -yqq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yqq clang lld libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
- name: make features
run: make CC=clang CXX=clang++ LDFLAGS="-fuse-ld=lld" features
- name: make
run: make CC=clang CXX=clang++ LDFLAGS="-fuse-ld=lld" -j $(nproc)
ubuntu-clang-22_04:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Fix GitHub's mess
run: |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386
- name: Set up dependencies
run: |
sudo apt-get install -yqq libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev pkg-config pyqt5-dev-tools qtbase5-dev
sudo apt-get install -yqq clang lld libx11-6:i386 libxext6:i386
# Fix 32bit bridge build
sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
sudo ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so
- name: make features
run: make CC=clang CXX=clang++ LDFLAGS="-fuse-ld=lld" features
- name: make
run: make CC=clang CXX=clang++ LDFLAGS="-fuse-ld=lld" -j $(nproc)
wasm:
runs-on: ubuntu-22.04
env:
EMSCRIPTEN_VERSION: 3.1.27
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Set up cache
id: cache
uses: actions/cache@v3
with:
path: |
~/emsdk
key: emsdk-v1
- name: Set up dependencies
run: |
[ -d ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
cd ~/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }}
- name: make
env:
AR: emar
CC: emcc
CXX: em++
NM: emnm
RANLIB: emranlib
STRIP: emstrip
PKG_CONFIG: false
run: |
source ~/emsdk/emsdk_env.sh
make features
make -j $(nproc)