NymphCast Server (NCS) forms the core of the NymphCast project. It provides the software that is installed on the receiver system that is connected to the speakers, television or similar. See the NymphCast README for detailed instructions on installing and running NCS.
This document covers building NCS from source.
Note: the setup.sh
script in the project root automates this process.
A C++17-capable GCC, Clang or MSVC toolchain is required in addition to the below dependencies:
- NymphRPC
- LibNymphCast
- Ffmpeg (LibAV) (v4+)
- LibSDL2
- LibSDL2_Image
- LibPOCO (1.5+)
- libFreeType
- libFreeImage
- RapidJson
- Pkg-config
- libVLC
- libCurl
On Debian & derivatives:
sudo apt -y install git g++ libsdl2-image-dev libsdl2-dev libpoco-dev libswscale-dev libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev libpostproc-dev libswresample-dev pkg-config libfreetype6-dev libfreeimage-dev rapidjson-dev libcurl4-gnutls-dev
On Arch & derivatives:
sudo pacman -S --noconfirm --needed git sdl2 sdl2_image poco ffmpeg freetype2 freeimage rapidjson pkgconf curl
On Alpine & derivatives:
sudo apk add poco-dev sdl2-dev sdl2_image-dev ffmpeg-dev openssl-dev freetype-dev freeimage-dev rapidjson-dev alsa-lib-dev glew-dev nymphrpc-dev curl-dev pkg-config
On MSYS2:
pacman -S --noconfirm --needed git mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_image mingw-w64-x86_64-poco mingw-w64-x86_64-ffmpeg mingw-w64-x86_64-freetype mingw-w64-x86_64-freeimage mingw-w64-x86_64-rapidjson pkgconf curl
If using a compatible OS (e.g. Debian, Alpine Linux or Arch Linux), one can use the setup script:
- Run the
install_linux.sh
script in the project root to compile & install the binaries and set up a systemd/OpenRC service on Linux systems.
Or:
- Run the
setup.sh
script in the project root to perform the below tasks automatically.
Else, under Linux or MSYS2 (MinGW, Clang) use the manual procedure:
- Check-out NymphRPC elsewhere and build the library with
make lib
. - Install NymphRPC with
sudo make install
. - Check-out LibNymphCast elsewhere and build the library with
make
. - Install LibNymphCast with
sudo make install
. - Change to
NymphCast/src/server
and executemake
command. - Use
sudo make install
to install the server and associated files. - Use
sudo make install-systemd
(SystemD) orsudo make install-openrc
(OpenRC) to install the relevant service file.
In order to use Clang instead of GCC/MinGW, call make
as follows:
make TOOLCHAIN=clang
To compile the server with MSVC (2017, 2019 or 2022), ensure vcpkg is installed with the VCPKG_ROOT
environment variable defined, and call the provided .bat file from a native x64 MSVC shell:
Setup-NMake-vcpkg.bat
To remove intermediate build files:
Setup-NMake-vcpkg.bat clean
And to create an InnoSetup-based installer (with IS binaries on the system path):
Setup-NMake-vcpkg.bat package