2021-03-01 12:03:35 -06:00
|
|
|
name: Build and test on Linux
|
2021-03-02 07:20:57 -06:00
|
|
|
on: [push, pull_request]
|
2022-10-13 15:32:01 -05:00
|
|
|
concurrency:
|
|
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
|
|
cancel-in-progress: true
|
2021-03-01 12:03:35 -06:00
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- ubuntu-20.04
|
2022-09-10 10:19:52 -05:00
|
|
|
- ubuntu-22.04
|
2021-03-01 12:03:35 -06:00
|
|
|
x11: [ON, OFF]
|
2022-12-09 17:28:40 +00:00
|
|
|
wayland: [ON, OFF]
|
2021-03-01 12:03:35 -06:00
|
|
|
compiler:
|
|
|
|
- clang
|
|
|
|
- gcc
|
|
|
|
compiler_version:
|
2022-09-10 10:23:48 -05:00
|
|
|
- 9
|
2021-03-01 12:03:35 -06:00
|
|
|
- 10
|
2021-04-18 10:51:43 -05:00
|
|
|
- 11
|
2022-09-10 10:19:52 -05:00
|
|
|
- 12
|
|
|
|
- 13
|
|
|
|
- 14
|
2021-03-01 12:03:35 -06:00
|
|
|
exclude:
|
2022-09-10 10:23:48 -05:00
|
|
|
- compiler: gcc
|
|
|
|
compiler_version: 12
|
2021-04-18 10:51:43 -05:00
|
|
|
- compiler: gcc
|
2022-09-10 10:19:52 -05:00
|
|
|
compiler_version: 13
|
|
|
|
- compiler: gcc
|
|
|
|
compiler_version: 14
|
2022-09-10 10:23:48 -05:00
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: gcc
|
|
|
|
compiler_version: 11
|
2022-09-10 10:25:34 -05:00
|
|
|
- compiler: clang
|
|
|
|
compiler_version: 9
|
2022-09-10 10:23:48 -05:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2021-03-01 12:03:35 -06:00
|
|
|
compiler_version: 10
|
2022-09-10 10:23:48 -05:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2021-04-18 10:53:59 -05:00
|
|
|
compiler_version: 11
|
2022-09-10 10:23:48 -05:00
|
|
|
- os: ubuntu-22.04
|
|
|
|
compiler: clang
|
2022-09-10 10:19:52 -05:00
|
|
|
compiler_version: 12
|
2022-09-10 10:23:48 -05:00
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: clang
|
|
|
|
compiler_version: 13
|
|
|
|
- os: ubuntu-20.04
|
|
|
|
compiler: clang
|
|
|
|
compiler_version: 14
|
2021-03-01 12:03:35 -06:00
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
2021-04-18 10:46:00 -05:00
|
|
|
- run: sudo apt-get -qq update
|
2021-03-01 12:03:35 -06:00
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get install -yqq --no-install-recommends \
|
|
|
|
audacious-dev \
|
|
|
|
cmake \
|
|
|
|
gawk \
|
|
|
|
lcov \
|
|
|
|
libaudclient-dev \
|
|
|
|
libcairo2-dev \
|
|
|
|
libcurl4-gnutls-dev \
|
|
|
|
libcurl4-gnutls-dev \
|
2022-09-10 10:32:55 -05:00
|
|
|
libdbus-glib-1-dev \
|
2021-03-01 12:03:35 -06:00
|
|
|
libglib2.0-dev \
|
|
|
|
libical-dev \
|
|
|
|
libimlib2-dev \
|
|
|
|
libircclient-dev \
|
2021-03-02 12:27:59 -06:00
|
|
|
libiw-dev \
|
2021-03-01 12:03:35 -06:00
|
|
|
liblua5.3-dev \
|
|
|
|
libmicrohttpd-dev \
|
|
|
|
libmysqlclient-dev \
|
|
|
|
libpulse-dev \
|
|
|
|
librsvg2-dev \
|
|
|
|
libsystemd-dev \
|
2022-12-09 17:28:40 +00:00
|
|
|
libwayland-bin \
|
|
|
|
libwayland-dev \
|
2021-03-01 12:03:35 -06:00
|
|
|
libx11-dev \
|
|
|
|
libxdamage-dev \
|
|
|
|
libxext-dev \
|
|
|
|
libxft-dev \
|
|
|
|
libxinerama-dev \
|
|
|
|
libxml2-dev \
|
|
|
|
libxmmsclient-dev \
|
|
|
|
libxnvctrl-dev \
|
2022-12-09 17:28:40 +00:00
|
|
|
ncurses-dev \
|
|
|
|
wayland-protocols
|
2022-09-10 10:30:17 -05:00
|
|
|
- name: Install libc++
|
|
|
|
if: matrix.compiler == 'clang'
|
|
|
|
run: |
|
|
|
|
sudo apt-get install -yqq --no-install-recommends \
|
|
|
|
libc++-${{ matrix.compiler_version }}-dev \
|
|
|
|
libc++abi-${{ matrix.compiler_version }}-dev
|
2021-03-01 12:03:35 -06:00
|
|
|
- name: Checkout
|
2022-10-13 20:47:26 +00:00
|
|
|
uses: actions/checkout@v3
|
2021-03-01 12:03:35 -06:00
|
|
|
- name: Configure with CMake
|
|
|
|
run: |
|
2022-10-06 13:38:20 -05:00
|
|
|
set -x # show the commands we're running
|
2021-03-01 12:03:35 -06:00
|
|
|
[[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang-${{ matrix.compiler_version }}
|
|
|
|
[[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++-${{ matrix.compiler_version }}
|
|
|
|
|
|
|
|
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc-${{ matrix.compiler_version }}
|
|
|
|
[[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++-${{ matrix.compiler_version }}
|
|
|
|
|
|
|
|
|
|
|
|
# Enable librsvg by default, disable for older versions of Ubuntu
|
2022-09-10 12:03:39 -05:00
|
|
|
# because we need librsvg>=2.52
|
2021-03-01 12:03:35 -06:00
|
|
|
RSVG_ENABLED=ON
|
2022-09-10 12:03:39 -05:00
|
|
|
[[ "${{ matrix.os }}" == "ubuntu-20.04"* ]] && RSVG_ENABLED=OFF
|
2021-03-01 12:03:35 -06:00
|
|
|
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. \
|
|
|
|
-DBUILD_AUDACIOUS=ON \
|
|
|
|
-DBUILD_HTTP=ON \
|
2021-03-02 12:27:59 -06:00
|
|
|
-DBUILD_ICAL=ON \
|
2021-03-01 12:03:35 -06:00
|
|
|
-DBUILD_ICONV=ON \
|
2021-03-02 12:27:59 -06:00
|
|
|
-DBUILD_IRC=ON \
|
|
|
|
-DBUILD_IRC=ON \
|
2021-03-01 12:03:35 -06:00
|
|
|
-DBUILD_JOURNAL=ON \
|
2021-03-02 12:27:59 -06:00
|
|
|
-DBUILD_LUA_CAIRO=ON \
|
|
|
|
-DBUILD_LUA_IMLIB2=ON \
|
|
|
|
-DBUILD_LUA_RSVG=${RSVG_ENABLED} \
|
|
|
|
-DBUILD_MYSQL=ON \
|
|
|
|
-DBUILD_NVIDIA=ON \
|
|
|
|
-DBUILD_PULSEAUDIO=ON \
|
2021-03-01 12:03:35 -06:00
|
|
|
-DBUILD_RSS=ON \
|
2021-03-02 12:27:59 -06:00
|
|
|
-DBUILD_TESTS=ON \
|
|
|
|
-DBUILD_WLAN=ON \
|
2022-12-09 17:28:40 +00:00
|
|
|
-DBUILD_WAYLAND=${{ matrix.wayland }}\
|
2021-03-02 12:27:59 -06:00
|
|
|
-DBUILD_X11=${{ matrix.x11 }} \
|
|
|
|
-DBUILD_XMMS2=ON \
|
|
|
|
-DCMAKE_C_COMPILER=$CC \
|
|
|
|
-DCMAKE_CXX_COMPILER=$CXX \
|
|
|
|
-DMAINTAINER_MODE=ON
|
2021-03-01 12:03:35 -06:00
|
|
|
- name: Compile
|
|
|
|
working-directory: build
|
|
|
|
run: make -j5
|
|
|
|
- name: Test
|
|
|
|
working-directory: build
|
|
|
|
run: make test
|