jetbrains: rework following the Emacs builder

This commit moves a lot of the heavy lifting out of callPackage and back
into regular import, following conventions from upstream Nixpkgs. It
allows for a clearer and less magic definition of new packages,
particularly by downstream, as well, by exposing the *Build package
callers in the attribute set.
This commit is contained in:
2020-10-18 17:47:48 +11:00
parent 1a129ac179
commit 7959b877d9
8 changed files with 154 additions and 78 deletions

View File

@ -63,38 +63,25 @@ rec {
};
# A functional Jetbrains IDE-with-plugins package set.
jetbrains =
let
mkJetbrainsPlugins = import ./pkgs/applications/editors/jetbrains/common-plugins.nix {
inherit (pkgs) callPackage;
};
mkIdeaPlugins = import ./pkgs/applications/editors/jetbrains/idea-plugins.nix {
inherit (pkgs) callPackage;
};
builder = import ./pkgs/applications/editors/jetbrains/builder.nix {
inherit (pkgs) lib;
};
jbScope = pkgs.lib.makeScope pkgs.newScope (self: pkgs.lib.makeOverridable
({ jetbrainsPlugins ? mkJetbrainsPlugins
, ideaPlugins ? mkIdeaPlugins
}: ({ }
// jetbrainsPlugins // { inherit jetbrainsPlugins; }
// ideaPlugins // { inherit ideaPlugins; }
// {
jetbrainsWithPlugins = builder self;
}))
{ });
in
rec {
inherit (jbScope) jetbrainsWithPlugins;
clionWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.clion;
ideaCommunityWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.idea-community;
ideaUltimateWithPlugins = jetbrainsWithPlugins pkgs.jetbrains.idea-ultimate;
plugins = jbScope;
jetbrains = (pkgs.dontRecurseIntoAttrs rec {
jetbrainsPluginsFor = variant: import ./pkgs/top-level/jetbrains-plugins.nix {
inherit (pkgs) lib newScope stdenv fetchzip;
inherit variant;
};
pluginBuild = jetbrainsPlatforms: pkgs.callPackage ./pkgs/build-support/jetbrains/plugin.nix {
inherit jetbrains jetbrainsPlatforms;
};
clionPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.clion);
ideaCommunityPlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-community);
ideaUltimatePlugins = pkgs.dontRecurseIntoAttrs (jetbrainsPluginsFor pkgs.jetbrains.idea-ultimate);
clionWithPlugins = clionPlugins.jetbrainsWithPlugins;
ideaCommunityWithPlugins = ideaCommunityPlugins.jetbrainsWithPlugins;
ideaUltimateWithPlugins = ideaUltimatePlugins.jetbrainsWithPlugins;
});
libhl = pkgs.callPackage ./pkgs/development/libraries/libhl { };
mopidy-subidy = pkgs.callPackage ./pkgs/applications/audio/mopidy/subidy.nix {