Prebuilt dependencies for LizardByte projects.
Find a file
2026-07-20 22:49:43 -04:00
.github chore(deps): update vmactions/freebsd-vm action to v1.5.2 (#735) 2026-07-19 10:44:39 -04:00
cmake chore(deps): Update CPM.cmake to v0.43.1 (#724) 2026-07-06 11:06:34 -04:00
patches/FFmpeg fix(ffmpeg/vulkan): destroy leaked VkImageViews during encoder uninit (#728) 2026-07-13 09:20:51 -04:00
third-party/FFmpeg chore(deps): bump FFmpeg/nv-codec-headers from e844e5b to 0a6fba9 (#736) 2026-07-20 22:49:43 -04:00
.gitignore fix!: publish to GitHub releases instead of dist branch (#604) 2026-02-09 18:31:49 -05:00
.gitmodules chore: change FFmpeg submodule branch to release/8.1 (#665) 2026-04-19 22:46:44 -04:00
.sonarcloud.properties chore: add sonar property files (#729) 2026-07-13 09:25:51 -04:00
attributes feat(build): make this a fullblown cmake project (#370) 2024-10-30 08:33:48 -04:00
CMakeLists.txt build(deps)!: remove Boost (#690) 2026-05-24 20:57:20 -04:00
LICENSE docs: add readme and license (#360) 2024-10-08 07:37:23 -04:00
msys2.cmd.in build: add windows arm64 build (#420) 2025-05-23 23:41:01 +00:00
package-lock.cmake chore(deps): update dependency intel/libva to v2.24.1 (#726) 2026-07-08 09:23:16 -04:00
README.md build(deps)!: remove Boost (#690) 2026-05-24 20:57:20 -04:00
renovate.json chore: update global workflows (#684) 2026-05-15 19:40:56 -04:00
sonar-project.properties chore: add sonar property files (#729) 2026-07-13 09:25:51 -04:00

build-deps

GitHub Workflow Status

This is a common set of pre-compiled dependencies for LizardByte/Sunshine.

Usage

  1. Add this repository as a submodule to your project.

    git submodule add https://github.com/LizardByte/build-deps.git third-party/build-deps
    cd third-party/build-deps
    git submodule update --init --recursive
    checkout dist
    

License

This repo is licensed under the MIT License, but this does not cover submodules or patches. Please see the individual projects for their respective licenses.

Build

Checkout

git clone --recurse-submodules https://github.com/LizardByte/build-deps.git

You can reduce the size of the repo by setting the depth to 1:

git clone --recurse-submodules --depth 1 https://github.com/LizardByte/build-deps.git

If you have already cloned the repository without submodules, you can initialize them with the following command:

cd build-deps
git submodule update --init --recursive

Line Endings

On Windows, you must copy the .gitattributes file to .git/modules/third-party/FFmpeg/x264/info/attributes, see https://stackoverflow.com/a/23671157/11214013 for more info.

Then run the following commands:

cd third-party/FFmpeg/x264
git checkout HEAD -- .

Dependencies

FreeBSD

pkg install -y \
  devel/autoconf \
  devel/automake \
  devel/cmake \
  devel/git \
  devel/gmake \
  devel/nasm \
  devel/ninja \
  devel/pkgconf \
  multimedia/libass \
  multimedia/libv4l \
  multimedia/libva \
  multimedia/v4l_compat \
  print/freetype2 \
  security/gnutls \
  shells/bash \
  x11/libxcb \
  x11/libX11 \
  x11/libXfixes

Linux

Debian/Ubuntu
sudo apt install -y \
    autoconf \
    automake \
    build-essential \
    cmake \
    git-core \
    libass-dev \
    libfreetype6-dev \
    libgnutls28-dev \
    libmp3lame-dev \
    libnuma-dev \
    libopus-dev \
    libsdl2-dev \
    libtool \
    libvorbis-dev \
    libxcb1-dev \
    libxcb-shm0-dev \
    libxcb-xfixes0-dev \
    make \
    meson \
    nasm \
    ninja-build \
    pkg-config \
    texinfo \
    wget \
    zlib1g-dev

Alpine

apk add --no-cache \
    autoconf \
    automake \
    bash \
    build-base \
    cmake \
    git \
    libdrm-dev \
    libtool \
    libx11-dev \
    libxcb-dev \
    libxext-dev \
    libxfixes-dev \
    libxrandr-dev \
    linux-headers \
    mesa-dev \
    nasm \
    numactl-dev \
    pkgconf \
    wayland-dev

macOS

brew install \
    automake \
    fdk-aac \
    git \
    lame \
    libass \
    libtool \
    libvorbis \
    libvpx \
    nasm \
    ninja \
    opus \
    pkg-config \
    sdl \
    shtool \
    texi2html \
    theora \
    wget \
    xvid

Windows

Cross-compilation is not supported on Windows. You must build on the target architecture.

First, install MSYS2.

x86_64 / amd64

Open the UCRT64 shell and run the following commands:

pacman -Syu
pacman -S \
    diffutils \
    git \
    make \
    patch \
    pkg-config \
    mingw-w64-ucrt-x86_64-binutils \
    mingw-w64-ucrt-x86_64-cmake \
    mingw-w64-ucrt-x86_64-gcc \
    mingw-w64-ucrt-x86_64-make \
    mingw-w64-ucrt-x86_64-nasm \
    mingw-w64-ucrt-x86_64-ninja \
    mingw-w64-ucrt-x86_64-onevpl
aarch64 / arm64

Open the CLANGARM64 shell and run the following commands:

pacman -Syu
pacman -S \
    diffutils \
    git \
    make \
    patch \
    pkg-config \
    mingw-w64-clang-aarch64-binutils \
    mingw-w64-clang-aarch64-cmake \
    mingw-w64-clang-aarch64-gcc \
    mingw-w64-clang-aarch64-make \
    mingw-w64-clang-aarch64-nasm \
    mingw-w64-clang-aarch64-ninja \
    mingw-w64-clang-aarch64-onevpl

Configure

Use the Unix Makefiles generator for Linux and macOS, and the MSYS Makefiles generator for Windows.

Standard

mkdir -p ./build/dist
cmake \
    -B ./build \
    -S . \
    -G "<generator>" \
    -DCMAKE_INSTALL_PREFIX=./build/dist

Cross Compile

mkdir -p ./build/dist
cmake \
    -B ./build \
    -S . \
    -G "<generator>" \
    -DCMAKE_INSTALL_PREFIX=./build/dist \
    -DCMAKE_TOOLCHAIN_FILE=./cmake/toolchains/<target>.cmake

Windows

On Windows, the environment is sometimes not properly passed to the make subprocesses. To account for this, there are three options. If the default does not work, you can try passing in the following flags:

-DMSYS2_OPTION=3

Valid options are, 1, 2, and 3. The default is 1.

Build

On FreeBSD, use gmake instead of make.

make -C build

Install

⚠️ It is critical that the -DCMAKE_INSTALL_PREFIX is set to the path where you want to install the dependencies.

make -C build install