mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-25 23:07:18 +00:00
20b2130596
With checkout v1, it checks out all the repository history, which takes ~20 seconds to complete with all the submodules that we have. With v2, takes <10 seconds to complete the checkout by virtue of checking out only the latest commit. For some cursed reason, spell check starts failing if docs uses v2 checkout, but doesn't fail if it uses v1.
192 lines
5.5 KiB
YAML
192 lines
5.5 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@v2
|
|
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 libxkbcommon-dev \
|
|
libsamplerate0-dev libpipewire-0.3-dev libpulse-dev \
|
|
$([ '${{ matrix.wayland_shell }}' = libdecor ] && echo 'libdecor-0-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@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: Build kernel module
|
|
run: |
|
|
cd module
|
|
make
|
|
|
|
host-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- 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 Linux host dependencies
|
|
run: |
|
|
sudo apt-get install binutils-dev libxcb-xfixes0-dev \
|
|
libpipewire-0.3-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@v2
|
|
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@v2
|
|
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@v2
|
|
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)
|