From bc82281e01e50c5049059530e99635934be78da6 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Sat, 28 Oct 2023 21:52:36 +1100 Subject: [PATCH] buildDartApplication: Generate Dart wrapper with symlinkJoin --- .../dart/build-dart-application/default.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index 76328e5645f6..1a98f98fb8e6 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, callPackage, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }: +{ lib, stdenv, callPackage, fetchDartDeps, writeText, symlinkJoin, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }: { sdkSetupScript ? "" , pubGetScript ? "dart pub get" @@ -36,11 +36,15 @@ let dartDeps = (fetchDartDeps.override { - dart = runCommand "dart-fod" { nativeBuildInputs = [ makeWrapper ]; } '' - mkdir -p "$out/bin" - makeWrapper "${dart}/bin/dart" "$out/bin/dart" \ - --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt" - ''; + dart = symlinkJoin { + name = "dart-fod"; + paths = [ dart ]; + nativeBuildInputs = [ makeWrapper ]; + postBuild = '' + wrapProgram "$out/bin/dart" \ + --add-flags "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt" + ''; + }; }) { buildDrvArgs = args; inherit sdkSetupScript pubGetScript vendorHash pubspecLockFile;