diff options
author | Thomas Tuegel <ttuegel@mailbox.org> | 2017-02-25 14:05:22 -0600 |
---|---|---|
committer | Thomas Tuegel <ttuegel@mailbox.org> | 2017-02-27 11:49:21 -0600 |
commit | 68e0bc38a2cc09985ef5dde22c200010349ed731 (patch) | |
tree | 5995c59e811188eeb26f2ceb78f88b732876de8c /pkgs/build-support | |
parent | d446303d0bab3675d1d30fc9a75f17904780c360 (diff) | |
download | nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar.gz nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar.bz2 nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar.lz nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar.xz nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.tar.zst nixpkgs-68e0bc38a2cc09985ef5dde22c200010349ed731.zip |
Move kdeWrapper out of kdeFrameworks
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/kde/wrapper.nix | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/build-support/kde/wrapper.nix b/pkgs/build-support/kde/wrapper.nix new file mode 100644 index 00000000000..f5add12e8ec --- /dev/null +++ b/pkgs/build-support/kde/wrapper.nix @@ -0,0 +1,67 @@ +{ stdenv, lib, makeWrapper, buildEnv }: + +packages: + +let + packages_ = if builtins.isList packages then packages else [packages]; + + unwrapped = lib.concatMap (p: if builtins.isList p.unwrapped then p.unwrapped else [p.unwrapped]) packages_; + targets = lib.concatMap (p: p.targets) packages_; + paths = lib.concatMap (p: p.paths or []) packages_; + + name = + if builtins.length unwrapped == 1 + then (lib.head unwrapped).name + else "kde-application"; + meta = + if builtins.length unwrapped == 1 + then (lib.head unwrapped).meta + else {}; + + env = buildEnv { + inherit name meta; + paths = builtins.map lib.getBin (unwrapped ++ paths); + pathsToLink = [ "/bin" "/share" "/lib/qt5" "/etc/xdg" ]; + }; +in + +stdenv.mkDerivation { + inherit name meta; + preferLocalBuild = true; + + inherit unwrapped env targets; + + passthru = { + inherit targets paths; + unwrapped = if builtins.length unwrapped == 1 then lib.head unwrapped else unwrapped; + }; + + nativeBuildInputs = [ makeWrapper ]; + + buildCommand = '' + for t in $targets; do + good="" + for drv in $unwrapped; do + if [ -a "$drv/$t" ]; then + makeWrapper "$drv/$t" "$out/$t" \ + --argv0 '"$0"' \ + --suffix PATH : "$env/bin" \ + --prefix XDG_CONFIG_DIRS : "$env/etc/xdg" \ + --prefix XDG_DATA_DIRS : "$env/share" \ + --set QML_IMPORT_PATH "$env/lib/qt5/imports" \ + --set QML2_IMPORT_PATH "$env/lib/qt5/qml" \ + --set QT_PLUGIN_PATH "$env/lib/qt5/plugins" + good="1" + break + fi + done + if [ -z "$good" ]; then + echo "file or directory not found in derivations: $t" + exit 1 + fi + done + + mkdir -p "$out/nix-support" + echo "$unwrapped" > "$out/nix-support/propagated-user-env-packages" + ''; +} |