lol
1{
2 mkDerivation, lib, copyPathsToStore, writeScript,
3 extra-cmake-modules, kdoctools,
4 kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
5}:
6
7let inherit (lib) getLib; in
8
9mkDerivation {
10 name = "kinit";
11 meta = { maintainers = [ lib.maintainers.ttuegel ]; };
12 nativeBuildInputs = [ extra-cmake-modules kdoctools ];
13 buildInputs = [
14 kconfig kcrash ki18n kio kservice kwindowsystem
15 ];
16 patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
17 NIX_CFLAGS_COMPILE = [
18 ''-DNIXPKGS_KF5_KIOCORE="${getLib kio}/lib/libKF5KIOCore.so.5"''
19 ''-DNIXPKGS_KF5_PARTS="${getLib kparts}/lib/libKF5Parts.so.5"''
20 ''-DNIXPKGS_KF5_PLASMA="${getLib plasma-framework}/lib/libKF5Plasma.so.5"''
21 ];
22 postFixup = ''
23 moveToOutput "lib/libexec/kf5/start_kdeinit" "$bin"
24 '';
25 setupHook = writeScript "setup-hook.sh" ''
26 kinitFixupOutputHook() {
27 if [ $prefix != ''${!outputBin} ] && [ -d $prefix/lib ]; then
28 mkdir -p ''${!outputBin}/lib
29 find $prefix/lib -maxdepth 1 -name 'libkdeinit5_*.so' -exec ln -s \{\} ''${!outputBin}/lib \;
30 rmdir --ignore-fail-on-non-empty ''${!outputBin}/lib
31 fi
32 }
33
34 fixupOutputHooks+=(kinitFixupOutputHook)
35 '';
36}