109 lines
2.3 KiB
Nix
109 lines
2.3 KiB
Nix
{
|
|
pkgs,
|
|
flake
|
|
}:
|
|
|
|
let
|
|
qtCustom = (with pkgs.qt515_8;
|
|
# TODO:check the required modules
|
|
env "qt-custom-${qtbase.version}" ([
|
|
qtbase
|
|
qtdeclarative
|
|
qtquickcontrols
|
|
qtquickcontrols2
|
|
qtsvg
|
|
qtmultimedia
|
|
qtwebview
|
|
qttools
|
|
qtwebchannel
|
|
qtgraphicaleffects
|
|
qtwebengine
|
|
qtlocation
|
|
]));
|
|
|
|
in pkgs.mkShell {
|
|
name = "status-desktop-build-shell";
|
|
|
|
# TODO:check the required packages
|
|
buildInputs = with pkgs; [
|
|
# dev and CI
|
|
bash curl wget git file unzip jq lsb-release which cacert gnupg
|
|
linuxdeployqt appimagekit
|
|
libglvnd # TODO: Qt 5.15.2 fix, review after upgrade
|
|
cmake_3_19 gnumake pkg-config gnugrep qtCustom
|
|
go_1_21 go-bindata mockgen protobuf3_20 protoc-gen-go
|
|
pcre nss pcsclite extra-cmake-modules
|
|
xorg.libxcb xorg.libX11 libxkbcommon
|
|
# dev machine only
|
|
nixUnstable # for flake support TODO: remove with nixpkgs upgrade
|
|
nixgl.auto.nixGLDefault
|
|
gdb figlet
|
|
] ++ (with gst_all_1; [
|
|
gst-libav gstreamer
|
|
gst-plugins-bad gst-plugins-base
|
|
gst-plugins-good gst-plugins-ugly
|
|
]);
|
|
|
|
# Avoid terminal issues.
|
|
TERM = "xterm";
|
|
LANG = "en_US.UTF-8";
|
|
LANGUAGE = "en_US.UTF-8";
|
|
|
|
QTDIR = qtCustom;
|
|
# TODO: still needed?
|
|
# https://github.com/NixOS/nixpkgs/pull/109649
|
|
QT_INSTALL_PLUGINS = "${qtCustom}/${pkgs.qt515_8.qtbase.qtPluginPrefix}";
|
|
|
|
shellHook = ''
|
|
export MAKEFLAGS="-j$NIX_BUILD_CORES"
|
|
export PATH="${pkgs.lddWrapped}/bin:$PATH"
|
|
figlet -t "${flake.description}"
|
|
'';
|
|
|
|
LIBKRB5_PATH = pkgs.libkrb5;
|
|
QTWEBENGINE_PATH = pkgs.qt515_8.qtwebengine.out;
|
|
GSTREAMER_PATH = pkgs.gst_all_1.gstreamer;
|
|
NSS_PATH = pkgs.nss;
|
|
|
|
# Used for linuxdeployqt
|
|
# TODO:check which deps are needed
|
|
LD_LIBRARY_PATH = with pkgs; lib.makeLibraryPath (
|
|
[
|
|
libudev0-shim # this only needed to run, not build
|
|
alsaLib
|
|
expat
|
|
fontconfig
|
|
freetype
|
|
gcc-unwrapped
|
|
glib
|
|
gmp
|
|
harfbuzz
|
|
libglvnd
|
|
libkrb5
|
|
libpng
|
|
libpulseaudio
|
|
libxkbcommon
|
|
openexr
|
|
openssl
|
|
p11-kit
|
|
zlib
|
|
] ++ (with xorg; [
|
|
libICE
|
|
libSM
|
|
libX11
|
|
libXrender
|
|
libxcb
|
|
xcbutil
|
|
xcbutilimage
|
|
xcbutilkeysyms
|
|
xcbutilrenderutil
|
|
xcbutilwm
|
|
]) ++ (with gst_all_1; [
|
|
gst-plugins-base
|
|
gst-plugins-good
|
|
gst-plugins-bad
|
|
gst-plugins-ugly
|
|
gstreamer
|
|
]));
|
|
}
|