mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-12-23 22:31:46 +00:00
187 lines
5.4 KiB
YAML
187 lines
5.4 KiB
YAML
name: build
|
|
on: [push, pull_request]
|
|
jobs:
|
|
client:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler:
|
|
- {cc: gcc, cxx: g++}
|
|
- {cc: clang, cxx: clang++}
|
|
wayland_shell: [xdg-shell, libdecor]
|
|
build_type: [Release, Debug]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Install libdecor PPA
|
|
run: sudo add-apt-repository ppa:christianrauch/libdecoration
|
|
if: ${{ matrix.wayland_shell == 'libdecor' }}
|
|
- name: Install PipeWire repository
|
|
run: |
|
|
echo 'deb [trusted=yes] https://pipewire-ubuntu.quantum5.workers.dev ./' | sudo tee /etc/apt/sources.list.d/pipewire.list
|
|
- name: Update apt
|
|
run: |
|
|
sudo apt-get update
|
|
- name: Install client dependencies
|
|
run: |
|
|
sudo apt-get install \
|
|
binutils-dev \
|
|
libspice-protocol-dev nettle-dev \
|
|
libgl-dev libgles-dev \
|
|
libx11-dev libxss-dev libxi-dev libxinerama-dev libxcursor-dev libxpresent-dev \
|
|
libwayland-dev wayland-protocols libxkbcommon-dev \
|
|
libpipewire-0.3-dev libpulse-dev \
|
|
$([ '${{ matrix.wayland_shell }}' = libdecor ] && echo 'libdecor-dev libdbus-1-dev') \
|
|
$([ '${{ matrix.compiler.cc }}' = clang ] && echo 'clang-tools')
|
|
sudo pip3 install pyenchant
|
|
- name: Configure client
|
|
env:
|
|
CC: /usr/bin/${{ matrix.compiler.cc }}
|
|
CXX: /usr/bin/${{ matrix.compiler.cxx }}
|
|
run: |
|
|
mkdir client/build
|
|
cd client/build
|
|
cmake \
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
|
|
-DCMAKE_LINKER:FILEPATH=/usr/bin/ld \
|
|
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
|
|
-DENABLE_LIBDECOR=${{ matrix.wayland_shell == 'libdecor' }} \
|
|
..
|
|
- name: Build client
|
|
run: |
|
|
cd client/build
|
|
make -j$(nproc)
|
|
- name: Checking help spelling
|
|
run: ./client/build/looking-glass-client --help | ./doc/lgspell.py
|
|
- name: Check GL function calls
|
|
if: matrix.compiler.cc == 'clang'
|
|
run: WAYLAND_SHELL='${{ matrix.wayland_shell }}' ./gl-check
|
|
|
|
module:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Build kernel module
|
|
run: |
|
|
cd module
|
|
make
|
|
|
|
host-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Update apt
|
|
run: |
|
|
sudo apt-get update
|
|
- name: Install Linux host dependencies
|
|
run: |
|
|
sudo apt-get install binutils-dev libgl1-mesa-dev libxcb-xfixes0-dev
|
|
- name: Configure Linux host
|
|
run: |
|
|
mkdir host/build
|
|
cd host/build
|
|
cmake ..
|
|
- name: Build Linux host
|
|
run: |
|
|
cd host/build
|
|
make -j$(nproc)
|
|
|
|
host-windows-cross:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Update apt
|
|
run: |
|
|
sudo apt-get update
|
|
- name: Install Windows host cross-compile dependencies
|
|
run: |
|
|
sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 nsis
|
|
- name: Configure Windows host for cross-compile
|
|
run: |
|
|
mkdir host/build
|
|
cd host/build
|
|
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake ..
|
|
- name: Cross-compile Windows host
|
|
run: |
|
|
cd host/build
|
|
make -j$(nproc)
|
|
- name: Build Windows host installer
|
|
run: |
|
|
cd host/build
|
|
makensis platform/Windows/installer.nsi
|
|
- name: Build Windows host installer with IVSHMEM drivers
|
|
run: |
|
|
cd host/build
|
|
curl https://dl.quantum2.xyz/ivshmem.tar.gz | tar xz
|
|
makensis -DIVSHMEM platform/Windows/installer.nsi
|
|
|
|
host-windows-native:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Configure Windows host for native MinGW-w64
|
|
run: |
|
|
mkdir host\build
|
|
cd host\build
|
|
cmake -G "MinGW Makefiles" ..
|
|
- name: Build Windows host on native MinGW-w64
|
|
run: |
|
|
cd host\build
|
|
mingw32-make "-j$([Environment]::ProcessorCount)"
|
|
- name: Build Windows host installer
|
|
run: |
|
|
cd host\build
|
|
makensis -DBUILD_32BIT platform\Windows\installer.nsi
|
|
|
|
obs:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
cc: [gcc, clang]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Update apt
|
|
run: |
|
|
sudo apt-get update
|
|
- name: Install obs plugin dependencies
|
|
run: |
|
|
sudo apt-get install binutils-dev libobs-dev libgl1-mesa-dev
|
|
- name: Configure obs plugin
|
|
run: |
|
|
mkdir obs/build
|
|
cd obs/build
|
|
CC=/usr/bin/${{ matrix.cc }} cmake ..
|
|
- name: Build obs plugin
|
|
run: |
|
|
cd obs/build
|
|
make -j$(nproc)
|
|
|
|
docs:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
with:
|
|
submodules: recursive
|
|
- name: Update apt
|
|
run: |
|
|
sudo apt-get update
|
|
- name: Install docs dependencies
|
|
run: |
|
|
sudo apt-get install python3-sphinx python3-sphinx-rtd-theme
|
|
sudo pip3 install sphinxcontrib-spelling
|
|
- name: Build docs
|
|
run: |
|
|
cd doc
|
|
make dirhtml SPHINXOPTS='-b spelling -W' -j$(nproc)
|