diff options
author | Thomas Tuegel <ttuegel@mailbox.org> | 2017-05-26 15:44:36 -0500 |
---|---|---|
committer | Thomas Tuegel <ttuegel@mailbox.org> | 2017-06-18 08:44:45 -0500 |
commit | 8538d75734e4776807203b66f91a281f4da4e801 (patch) | |
tree | 9c019aa8f56873c38b9267d56dce05a07570dc1e /pkgs/desktops/plasma-5/default.nix | |
parent | 7f95d4834f772607fb4c9b2ffa4611ccd0a1006f (diff) | |
download | nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar.gz nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar.bz2 nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar.lz nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar.xz nixlib-8538d75734e4776807203b66f91a281f4da4e801.tar.zst nixlib-8538d75734e4776807203b66f91a281f4da4e801.zip |
plasma5: fixup inputs and outputs
Diffstat (limited to 'pkgs/desktops/plasma-5/default.nix')
-rw-r--r-- | pkgs/desktops/plasma-5/default.nix | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix index 10d5a152f130..e101d4e14c57 100644 --- a/pkgs/desktops/plasma-5/default.nix +++ b/pkgs/desktops/plasma-5/default.nix @@ -36,21 +36,44 @@ let mirror = "mirror://kde"; }; + mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {}; + packages = self: with self; let + + propagate = out: + let setupHook = { writeScript }: + writeScript "setup-hook.sh" '' + # Propagate $${out} output + propagatedUserEnvPkgs+=" @${out}@" + + # Propagate $dev so that this setup hook is propagated + # But only if there is a separate $dev output + if [ "$outputDev" != out ]; then + if [ -n "$crossConfig" ]; then + propagatedBuildInputs+=" @dev@" + else + propagatedNativeBuildInputs+=" @dev@" + fi + fi + ''; + in callPackage setupHook {}; + + propagateBin = propagate "bin"; + callPackage = self.newScope { mkDerivation = args: let inherit (args) name; sname = args.sname or name; inherit (srcs."${sname}") src version; - mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {}; - in - mkDerivation (args // { - name = "${name}-${version}"; - inherit src; - outputs = args.outputs or [ "out" "dev" ]; + outputs = args.outputs or [ "out" ]; + hasBin = lib.elem "bin" outputs; + hasDev = lib.elem "dev" outputs; + + defaultSetupHook = if hasBin && hasDev then propagateBin else null; + setupHook = args.setupHook or defaultSetupHook; meta = { license = with lib.licenses; [ @@ -60,8 +83,13 @@ let maintainers = with lib.maintainers; [ ttuegel ]; homepage = "http://www.kde.org"; } // (args.meta or {}); + in + mkDerivation (args // { + name = "${name}-${version}"; + inherit meta outputs setupHook src; }); }; + in { bluedevil = callPackage ./bluedevil.nix {}; breeze-gtk = callPackage ./breeze-gtk.nix {}; |