Skip to content
Awawa edited this page Jul 17, 2024 · 96 revisions

Available methods for building HyperHDR:

1. Native build

2. Any supported Linux build on any system using Docker

3. Github Action (easiest)


1. Native build

Preparing build environment

Debian/Ubuntu

sudo apt-get update

sudo apt-get install build-essential cmake git libayatana-appindicator3-dev libasound2-dev wget unzip pkg-config
libegl-dev libflatbuffers-dev flatbuffers-compiler libftdi1-dev libgl-dev libglvnd-dev liblzma-dev libgtk-3-dev
libpipewire-0.3-dev libqt5serialport5-dev libssl-dev libx11-dev libsystemd-dev libturbojpeg0-dev libusb-1.0-0-dev 
libzstd-dev python3 pkg-config qtbase5-dev

For Raspberry Pi CEC support (optional)

sudo apt-get install libcec-dev libp8-platform-dev libudev-dev

Fedora

sudo dnf -y group install "C Development Tools and Libraries" "Development Tools"

sudo dnf -y install cmake chrpath git alsa-lib-devel flatbuffers-devel flatbuffers-compiler fedora-packager
mesa-libEGL-devel libftdi-c++-devel mesa-libGL-devel gtk3-devel libglvnd-devel libayatana-appindicator-gtk3-devel 
pipewire-devel qt5-qtserialport-devel qt5-qtbase-devel openssl-devel turbojpeg-devel libusb1-devel libX11-devel
libzstd-devel pkg-config wget xz-devel systemd-devel unzip

Arch Linux

sudo pacman -Syy

sudo pacman -S base-devel qt5-base openssl chrpath cmake flatbuffers git alsa-lib gtk3
libayatana-appindicator libftdi libglvnd libjpeg-turbo qt5-serialport wayland libx11
freetds libfbclient mariadb-libs postgresql-libs pipewire python mesa dpkg xz fakeroot
binutils pkgfile bash systemd-libs wget unzip

Windows

We assume a 64bit Windows 10. Install the following;

  • Git (Check during installation: Add to PATH)
  • CMake (Windows win64-x64 Installer) (Check during installation: Add to PATH)
  • Visual Studio 2022 Community Edition
    • Select 'Desktop development with C++'
    • On the right, just select MSVC v143 VS 2022 C++ x64/x86-Buildtools and latest Windows 10 SDK. Everything else is not needed, but you can stay with default selection.
  • OpenSSL (for QT5.15-6.2: OpenSSL v1.1.1, for QT6: OpenSSL 3)
  • libjpeg-turbo
  • Python 3 (Windows x86-64 executable installer) (Check during installation: Add to PATH and Debug Symbols)
    • Open a console window and execute pip install aqtinstall.
    • Now we can download Qt to C:\Qt mkdir c:\Qt && aqt install -O c:\Qt 6.2.2 windows desktop win64_msvc2019_64 -m qtserialport
    • May need to add Qt path before compiling, for example: set CMAKE_PREFIX_PATH=C:\Qt\6.2.2\msvc2019_64\lib\cmake\ or for older set Qt5_Dir=C:\Qt\5.15.2\msvc2019_64\lib\cmake\Qt5\
  • Optional for package creation: NSIS 3.x (direct link)

Hint: after you execute the configuration command in the build folder (for example cmake -DCMAKE_BUILD_TYPE=Release ..) you should receive *.sln solution project file that can be opened in Visual Studio. Select hyperhdr project as default for the solution to run it after compilation.

macOs

First install brew manager.
Next: brew install qt@6 cmake xz pkg-config

Compiling and installing HyperHDR

Linux/macOS: the general quick & recommended way

git clone --recursive https://github.com/awawa-dev/HyperHDR.git hyperhdr
cd hyperhdr
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j $(nproc)

# if this get stucked and dmesg says out of memory try:
make -j 2

# Run it from the build directory
bin/hyperhdr -d

# BUILD INSTALLERS (recommended method to install HyperHDR)
cpack
# or compile and build the package using one command
cmake --build . --target package --config Release

Windows: the general quick & recommended way

git clone --recursive https://github.com/awawa-dev/HyperHDR.git hyperhdr
cd hyperhdr
mkdir build
cd buil
# You might need to setup MSVC env first
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
# Maintainers: to build the HyperHDR installer, install NSIS and define environment variable:  
# set VCINSTALLDIR="C:\Program Files\Microsoft Visual Studio\2022\Community\VC"
cmake -DPLATFORM=windows -G "Visual Studio 17 2022" -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --config Release -- -maxcpucount

# Run it from the build directory
bin/Release/hyperhdr -d

LibreELEC

You can find the add-on sources here on branches of my LibreELEC fork: https://github.com/awawa-dev/LibreELEC.tv/ For example libreelec-11.0-hyperhdr branch. Adjust HyperHDR package properties in packages/addons/service/hyperhdr/package.mk Follow LibreELEC's manual on how to build the image. For example:

LibreELEC 11/RPi:

PROJECT=RPi ARCH=arm DEVICE=RPi4 make image
PROJECT=RPi DEVICE=RPi4 ARCH=arm ./scripts/create_addon hyperhdr

LibreELEC 12/RPi:

PROJECT=RPi ARCH=aarch64 DEVICE=RPi4 make image
PROJECT=RPi DEVICE=RPi4 ARCH=aarch64 ./scripts/create_addon hyperhdr

PC(x86_64):

PROJECT=Generic ARCH=x86_64 DEVICE=Generic make image
PROJECT=Generic DEVICE=Generic ARCH=x86_64 ./scripts/create_addon hyperhdr