summary refs log tree commit diff
path: root/pkgs/development/libraries/kde-frameworks/kinit/default.nix
blob: 42a1e157a9170575cdf7fd1c3b12dbd4f6b55303 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
  mkDerivation, lib, copyPathsToStore, writeScript,
  extra-cmake-modules, kdoctools,
  kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
}:

let inherit (lib) getLib; in

mkDerivation {
  name = "kinit";
  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
  outputs = [ "out" "dev" ];
  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
  buildInputs = [
    kconfig kcrash ki18n kio kservice kwindowsystem
  ];
  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
  CXXFLAGS = [
    ''-DNIXPKGS_KF5_KIOCORE=\"${getLib kio}/lib/libKF5KIOCore.so.5\"''
    ''-DNIXPKGS_KF5_PARTS=\"${getLib kparts}/lib/libKF5Parts.so.5\"''
    ''-DNIXPKGS_KF5_PLASMA=\"${getLib plasma-framework}/lib/libKF5Plasma.so.5\"''
  ];
  setupHook = writeScript "setup-hook.sh" ''
    kinitFixupOutputHook() {
        if [ $prefix != ''${!outputBin} ] && [ -d $prefix/lib ]; then
            mkdir -p ''${!outputBin}/lib
            find $prefix/lib -maxdepth 1 -name 'libkdeinit5_*.so' -exec ln -s \{\} ''${!outputBin}/lib \;
            rmdir --ignore-fail-on-non-empty ''${!outputBin}/lib
        fi
    }

    fixupOutputHooks+=(kinitFixupOutputHook)
  '';
}