about summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorhacker1024 <hacker1024@users.sourceforge.net>2023-10-29 01:16:08 +1100
committerFlafyDev <flafyarazi@gmail.com>2023-12-26 18:48:08 +0200
commit2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c (patch)
treed05ced737a6f26671f0aad77af48d55e84f7f3c1 /pkgs/build-support
parentcf55bc7300560f63f4e76521dbd163a00b060769 (diff)
downloadnixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar.gz
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar.bz2
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar.lz
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar.xz
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.tar.zst
nixlib-2bd3e5d779f31c751cf2f23e98fc4dbe74f4328c.zip
buildDartApplication: Use package source builders and setup hooks instead of package overrides
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/dart/build-dart-application/default.nix21
-rw-r--r--pkgs/build-support/dart/pub2nix/pubspec-lock.nix21
2 files changed, 17 insertions, 25 deletions
diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix
index 2e99479c9bb0..ccecbe6fd3e8 100644
--- a/pkgs/build-support/dart/build-dart-application/default.nix
+++ b/pkgs/build-support/dart/build-dart-application/default.nix
@@ -44,7 +44,6 @@
 
 , runtimeDependencies ? [ ]
 , extraWrapProgramArgs ? ""
-, customPackageOverrides ? { }
 , autoDepsList ? false
 , depsListFile ? null
 , pubspecLock
@@ -143,25 +142,7 @@ let
 
     meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; };
   });
-
-  packageOverrideRepository = (callPackage ../../../development/compilers/dart/package-overrides { }) // customPackageOverrides;
-  productPackages = if depsList == null then [ ] else depsList;
 in
 assert !(builtins.isString dartOutputType && dartOutputType != "") ->
 throw "dartOutputType must be a non-empty string";
-builtins.foldl'
-  (prev: package:
-  if packageOverrideRepository ? ${package.name}
-  then
-    prev.overrideAttrs
-      (packageOverrideRepository.${package.name} {
-        inherit (package)
-          name
-          version
-          kind
-          source
-          dependencies;
-      })
-  else prev)
-  baseDerivation
-  productPackages
+baseDerivation
diff --git a/pkgs/build-support/dart/pub2nix/pubspec-lock.nix b/pkgs/build-support/dart/pub2nix/pubspec-lock.nix
index 3b9e50400264..fac096de31f7 100644
--- a/pkgs/build-support/dart/pub2nix/pubspec-lock.nix
+++ b/pkgs/build-support/dart/pub2nix/pubspec-lock.nix
@@ -1,4 +1,5 @@
 { lib
+, callPackage
 , fetchurl
 , fetchgit
 , runCommand
@@ -22,6 +23,14 @@
   # Functions to generate SDK package sources.
   # The function names should match the SDK names, and the package name is given as an argument.
 , sdkSourceBuilders ? { }
+
+  # Functions that create custom package source derivations.
+  #
+  # The function names should match the package names, and the package version,
+  # source, and source files are given in an attribute set argument.
+  #
+  # The passthru of the source derivation should be propagated.
+, customSourceBuilders ? { }
 }:
 
 let
@@ -77,20 +86,22 @@ let
   addDependencySourceUtils = dependencySource: details: dependencySource.overrideAttrs ({ passthru, ... }: {
     passthru = passthru // {
       inherit (details) version;
-      packagePath = dependencySource + "/${dependencySource.packageRoot}";
     };
   });
 
+  sourceBuilders = callPackage ../../../development/compilers/dart/package-source-builders { } // customSourceBuilders;
+
   dependencySources = lib.filterAttrs (name: src: src != null) (builtins.mapAttrs
     (name: details:
-      addDependencySourceUtils
-        (({
+      (sourceBuilders.${name} or ({ src, ... }: src)) {
+        inherit (details) version source;
+        src = ((addDependencySourceUtils (({
           "hosted" = mkHostedDependencySource;
           "git" = mkGitDependencySource;
           "path" = mkPathDependencySource;
           "sdk" = mkSdkDependencySource;
-        }.${details.source} name) details)
-        details)
+        }.${details.source} name) details)) details);
+      })
     pubspecLock.packages);
 in
 {