diff options
Diffstat (limited to 'pkgs/build-support/agda/default.nix')
-rw-r--r-- | pkgs/build-support/agda/default.nix | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/pkgs/build-support/agda/default.nix b/pkgs/build-support/agda/default.nix index a513d50d04c..6e9aef5499a 100644 --- a/pkgs/build-support/agda/default.nix +++ b/pkgs/build-support/agda/default.nix @@ -28,16 +28,24 @@ in # There is no Hackage for Agda so we require src. inherit (self) src name; + isAgdaPackage = true; + buildInputs = [ Agda ] ++ self.buildDepends; buildDepends = []; + + buildDependsAgda = filter + (dep: dep ? isAgdaPackage && dep.isAgdaPackage) + self.buildDepends; + buildDependsAgdaShareAgda = map (x: x + "/share/agda") self.buildDependsAgda; + # Not much choice here ;) LANG = "en_US.UTF-8"; LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive"; everythingFile = "Everything.agda"; - propagatedBuildInputs = self.buildDepends; - propagatedUserEnvPkgs = self.buildDepends; + propagatedBuildInputs = self.buildDependsAgda; + propagatedUserEnvPkgs = self.buildDependsAgda; # Immediate source directories under which modules can be found. sourceDirectories = [ ]; @@ -50,13 +58,13 @@ in topSourceDirectories = [ "src" ]; # FIXME: `dirOf self.everythingFile` is what we really want, not hardcoded "./" - includeDirs = let r = map (x: x + "/share/agda") self.buildDepends; - d = self.sourceDirectories ++ self.topSourceDirectories; - in r ++ d ++ [ "." ]; + includeDirs = self.buildDependsAgdaShareAgda + ++ self.sourceDirectories ++ self.topSourceDirectories + ++ [ "." ]; buildFlags = unwords (map (x: "-i " + x) self.includeDirs); # We expose this as a mere convenience for any tools. - AGDA_PACKAGE_PATH = concatMapStrings (x: x + ":") self.buildDepends; + AGDA_PACKAGE_PATH = concatMapStrings (x: x + ":") self.buildDependsAgdaShareAgda; # Makes a wrapper available to the user. Very useful in # nix-shell where all dependencies are -i'd. |