flutter: refactor and reduce derivation size
Instead of copying the whole dart derivation to bin/cache/dart-sdk directory, just symlink it. Also, make sure that the flutter is build from dart passed as a parameter. Before: /nix/store/p3avfmvd0yrjpwwml7vvqbjin5vacx2k-flutter-stable-1.22.0 2084894968 After: /nix/store/750k4z1yj5xsw7ymmwvn7cfjjzkaygzg-flutter-stable-1.22.0 1647047080
This commit is contained in:
parent
a03f012956
commit
bbbe322b1a
@ -12,7 +12,6 @@
|
|||||||
, cacert
|
, cacert
|
||||||
, coreutils
|
, coreutils
|
||||||
, git
|
, git
|
||||||
, makeWrapper
|
|
||||||
, runCommand
|
, runCommand
|
||||||
, stdenv
|
, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
@ -43,7 +42,7 @@ let
|
|||||||
sha256 = sha256Hash;
|
sha256 = sha256Hash;
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper git ];
|
buildInputs = [ git ];
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
@ -58,28 +57,27 @@ let
|
|||||||
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
|
SNAPSHOT_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.snapshot"
|
||||||
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
|
STAMP_PATH="$FLUTTER_ROOT/bin/cache/flutter_tools.stamp"
|
||||||
SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
|
SCRIPT_PATH="$FLUTTER_TOOLS_DIR/bin/flutter_tools.dart"
|
||||||
DART_SDK_PATH="$FLUTTER_ROOT/bin/cache/dart-sdk"
|
DART_SDK_PATH="${dart}"
|
||||||
|
|
||||||
DART="$DART_SDK_PATH/bin/dart"
|
|
||||||
PUB="$DART_SDK_PATH/bin/pub"
|
|
||||||
|
|
||||||
HOME=../.. # required for pub upgrade --offline, ~/.pub-cache
|
HOME=../.. # required for pub upgrade --offline, ~/.pub-cache
|
||||||
# path is relative otherwise it's replaced by /build/flutter
|
# path is relative otherwise it's replaced by /build/flutter
|
||||||
|
|
||||||
(cd "$FLUTTER_TOOLS_DIR" && "$PUB" upgrade --offline)
|
(cd "$FLUTTER_TOOLS_DIR" && ${dart}/bin/pub upgrade --offline)
|
||||||
|
|
||||||
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
|
local revision="$(cd "$FLUTTER_ROOT"; git rev-parse HEAD)"
|
||||||
"$DART" --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
|
${dart}/bin/dart --snapshot="$SNAPSHOT_PATH" --packages="$FLUTTER_TOOLS_DIR/.packages" "$SCRIPT_PATH"
|
||||||
echo "$revision" > "$STAMP_PATH"
|
echo "$revision" > "$STAMP_PATH"
|
||||||
echo -n "${version}" > version
|
echo -n "${version}" > version
|
||||||
|
|
||||||
rm -rf bin/cache/{artifacts,downloads}
|
rm -rf bin/cache/{artifacts,dart-sdk,downloads}
|
||||||
rm -f bin/cache/*.stamp
|
rm -f bin/cache/*.stamp
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r . $out
|
cp -r . $out
|
||||||
|
mkdir -p $out/bin/cache/
|
||||||
|
ln -sf ${dart} $out/bin/cache/dart-sdk
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -155,8 +153,4 @@ runCommand drvName
|
|||||||
|
|
||||||
echo -n "$startScript" > $out/bin/${pname}
|
echo -n "$startScript" > $out/bin/${pname}
|
||||||
chmod +x $out/bin/${pname}
|
chmod +x $out/bin/${pname}
|
||||||
|
|
||||||
mkdir -p $out/bin/cache/dart-sdk/
|
|
||||||
cp -r ${dart}/* $out/bin/cache/dart-sdk/
|
|
||||||
ln $out/bin/cache/dart-sdk/bin/dart $out/bin/dart
|
|
||||||
''
|
''
|
||||||
|
Loading…
x
Reference in New Issue
Block a user