status-react/nix/desktop/default.nix

44 lines
1.2 KiB
Nix

{ stdenv, pkgs, target-os }:
with pkgs;
with stdenv;
let
targetLinux = {
"linux" = true;
"" = isLinux;
}.${target-os} or false;
targetDarwin = {
"macos" = true;
"" = isDarwin;
}.${target-os} or false;
targetWindows = {
"windows" = true;
"" = isLinux;
}.${target-os} or false;
linuxPlatform = callPackage ./linux { };
darwinPlatform = callPackage ./macos { };
windowsPlatform = callPackage ./windows { };
in
{
buildInputs = [
cmake
extra-cmake-modules
file
] ++ lib.optional targetLinux linuxPlatform.buildInputs
++ lib.optional targetDarwin darwinPlatform.buildInputs
++ lib.optional (! targetWindows) qt5.full
++ lib.optional targetWindows windowsPlatform.buildInputs;
shellHook = (if target-os == "windows" then ''
unset QT_PATH
'' else ''
export QT_PATH="${qt5.full}"
export QT_BASEBIN_PATH="${qt5.qtbase.bin}"
export PATH="${stdenv.lib.makeBinPath [ qt5.full ]}:$PATH"
'') +
lib.optionalString targetLinux linuxPlatform.shellHook +
lib.optionalString targetDarwin darwinPlatform.shellHook +
lib.optionalString targetWindows windowsPlatform.shellHook;
}