From b0a52e4820709972108f01daaeedaa886be1739a Mon Sep 17 00:00:00 2001 From: qzylinra Date: Tue, 19 Aug 2025 06:13:41 +0800 Subject: [PATCH] flutter: update extraPackageConfigSetup --- .../build-flutter-application.nix | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix index 1cbec9d5ebec..4eb8f310f265 100644 --- a/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix +++ b/pkgs/development/compilers/flutter/build-support/build-flutter-application.nix @@ -109,18 +109,20 @@ let ''; }; - extraPackageConfigSetup = '' - # https://github.com/flutter/flutter/blob/3.13.8/packages/flutter_tools/lib/src/dart/pub.dart#L755 - if [ "$('${lib.getExe buildPackages.yq}' '.flutter.generate // false' pubspec.yaml)" = "true" ]; then - export TEMP_PACKAGES=$(mktemp) - '${lib.getExe buildPackages.jq}' '.packages |= . + [{ - name: "flutter_gen", - rootUri: "flutter_gen", - languageVersion: "2.12", - }]' "$out" > "$TEMP_PACKAGES" - cp "$TEMP_PACKAGES" "$out" - rm "$TEMP_PACKAGES" - unset TEMP_PACKAGES + # https://github.com/flutter/flutter/blob/edada7c56edf4a183c1735310e123c7f923584f1/packages/flutter_tools/lib/src/dart/pub.dart#L804 + extraPackageConfigSetup = lib.optionalString (lib.versionOlder flutter.version "3.34.0") '' + if [ "$("${lib.getExe buildPackages.yq}" '.flutter.generate // false' pubspec.yaml)" = "true" ]; then + if ! "${lib.getExe buildPackages.jq}" -e '.packages[] | select(.name == "flutter_gen")' "$out" >/dev/null 2>&1; then + export TEMP_PACKAGES=$(mktemp) + "${lib.getExe buildPackages.jq}" '.packages |= . + [{ + name: "flutter_gen", + rootUri: "flutter_gen", + languageVersion: "2.12" + }]' "$out" > "$TEMP_PACKAGES" + cp "$TEMP_PACKAGES" "$out" + rm "$TEMP_PACKAGES" + unset TEMP_PACKAGES + fi fi ''; };