From df1bef18e09b2984a8acecc904087ba044e62154 Mon Sep 17 00:00:00 2001 From: Tristan Ross Date: Mon, 17 Jun 2024 19:20:21 -0700 Subject: [PATCH] flutter: use engine dart when available --- .../compilers/flutter/engine/dart.nix | 13 ++++++++++++ .../compilers/flutter/engine/default.nix | 4 +++- .../compilers/flutter/engine/package.nix | 8 +++++-- .../development/compilers/flutter/flutter.nix | 21 ++++++++++++------- 4 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 pkgs/development/compilers/flutter/engine/dart.nix diff --git a/pkgs/development/compilers/flutter/engine/dart.nix b/pkgs/development/compilers/flutter/engine/dart.nix new file mode 100644 index 000000000000..c872113f4a90 --- /dev/null +++ b/pkgs/development/compilers/flutter/engine/dart.nix @@ -0,0 +1,13 @@ +{ engine, runCommand }: +runCommand "flutter-engine-${engine.version}-dart" { + version = engine.dartSdkVersion; + + inherit engine; + inherit (engine) outName; + + meta = engine.meta // { + description = "Dart SDK compiled from the Flutter Engine"; + }; +} '' + ln -s ${engine}/out/$outName/dart-sdk $out +'' diff --git a/pkgs/development/compilers/flutter/engine/default.nix b/pkgs/development/compilers/flutter/engine/default.nix index a381a7d8530e..d9ced1c7574b 100644 --- a/pkgs/development/compilers/flutter/engine/default.nix +++ b/pkgs/development/compilers/flutter/engine/default.nix @@ -44,7 +44,9 @@ stdenv.mkDerivation ( dartSdkVersion isOptimized runtimeMode - outName; + outName + dart + ; inherit altRuntimeMode; dontUnpack = true; diff --git a/pkgs/development/compilers/flutter/engine/package.nix b/pkgs/development/compilers/flutter/engine/package.nix index a295210eee62..0f7c592899d2 100644 --- a/pkgs/development/compilers/flutter/engine/package.nix +++ b/pkgs/development/compilers/flutter/engine/package.nix @@ -60,7 +60,7 @@ let outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}"; in -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}"; inherit version @@ -307,6 +307,10 @@ stdenv.mkDerivation { runHook postInstall ''; + passthru = { + dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; }; + }; + meta = { # Very broken on Darwin broken = stdenv.isDarwin; @@ -321,4 +325,4 @@ stdenv.mkDerivation { "aarch64-darwin" ]; }; -} +}) diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 757766d03152..79c51979b1ce 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -19,19 +19,13 @@ , git , which , jq -, flutterTools ? callPackage ./flutter-tools.nix { - inherit dart version; - flutterSrc = src; - inherit patches; - inherit pubspecLock; - systemPlatform = stdenv.hostPlatform.system; - } +, flutterTools ? null }@args: let engine = if args.useNixpkgsEngine or false then callPackage ./engine/default.nix { - dartSdkVersion = dart.version; + dartSdkVersion = args.dart.version; flutterVersion = version; version = engineVersion; hashes = engineHashes; @@ -40,6 +34,17 @@ let runtimeModes = engineRuntimeModes; } else null; + dart = if args.useNixpkgsEngine or false then + engine.dart else args.dart; + + flutterTools = args.flutterTools or (callPackage ./flutter-tools.nix { + inherit dart version; + flutterSrc = src; + inherit patches; + inherit pubspecLock; + systemPlatform = stdenv.hostPlatform.system; + }); + unwrapped = stdenv.mkDerivation { name = "flutter-${version}-unwrapped";