Merge pull request #322575 from ExpidusOS/fix/flutter-engine

flutter.engine: fix size with SwiftShader & building
This commit is contained in:
Tristan Ross 2024-06-26 00:02:38 -07:00 committed by GitHub
commit 135cfede44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 33 additions and 14 deletions

View File

@ -51,6 +51,7 @@ stdenv.mkDerivation (
runtimeMode
outName
dart
swiftshader
;
inherit altRuntimeMode;

View File

@ -15,6 +15,7 @@
fetchgit,
runCommand,
llvmPackages,
llvmPackages_15,
patchelf,
openbox,
xorg,
@ -67,6 +68,10 @@ let
url = "https://swiftshader.googlesource.com/SwiftShader.git";
hash = swiftshaderHash;
rev = swiftshaderRev;
postFetch = ''
rm -rf $out/third_party/llvm-project
'';
};
llvm = symlinkJoin {
@ -78,6 +83,8 @@ let
};
outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}";
dartPath = "${if (lib.versionAtLeast flutterVersion "3.23") then "flutter/third_party" else "third_party"}/dart";
in
stdenv.mkDerivation (finalAttrs: {
pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}";
@ -163,14 +170,14 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [ gtk3 ];
patchtools = [
"third_party/dart/tools/sdks/dart-sdk/bin/dart"
"${dartPath}/tools/sdks/dart-sdk/bin/dart"
"flutter/third_party/gn/gn"
];
dontPatch = true;
patchgit = [
"third_party/dart"
dartPath
"flutter"
"."
] ++ lib.optional (lib.versionAtLeast flutterVersion "3.21") "flutter/third_party/skia";
@ -178,7 +185,17 @@ stdenv.mkDerivation (finalAttrs: {
postUnpack = ''
pushd ${src.name}
ln -s $swiftshader src/flutter/third_party/swiftshader
cp ${./pkg-config.py} src/build/config/linux/pkg-config.py
cp -pr --reflink=auto $swiftshader src/flutter/third_party/swiftshader
chmod -R u+w -- src/flutter/third_party/swiftshader
ln -s ${llvmPackages_15.llvm.monorepoSrc} src/flutter/third_party/swiftshader/third_party/llvm-project
mkdir -p src/flutter/buildtools/${constants.alt-platform}
ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang
ln -s ${dart} src/${dartPath}/tools/sdks/dart-sdk
${lib.optionalString (stdenv.isLinux) ''
for patchtool in ''${patchtools[@]}; do
@ -198,12 +215,8 @@ stdenv.mkDerivation (finalAttrs: {
popd
done
mkdir -p src/flutter/buildtools/${constants.alt-platform}
ln -s ${llvm} src/flutter/buildtools/${constants.alt-platform}/clang
dart src/third_party/dart/tools/generate_package_config.dart
cp ${./pkg-config.py} src/build/config/linux/pkg-config.py
echo "${dartSdkVersion}" >src/third_party/dart/sdk/version
dart src/${dartPath}/tools/generate_package_config.dart
echo "${dartSdkVersion}" >src/${dartPath}/sdk/version
rm -rf src/third_party/angle/.git
python3 src/flutter/tools/pub_get_offline.py

View File

@ -2,4 +2,9 @@
fetchgit {
url = "https://swiftshader.googlesource.com/SwiftShader.git";
rev = "@engine_swiftshader_rev@";
# Keep with in sync of pkgs/development/compilers/flutter/engine/package.nix
postFetch = ''
rm -rf $out/third_party/llvm-project
'';
}

View File

@ -1,7 +1,7 @@
{
"version": "3.13.8",
"engineVersion": "767d8c75e898091b925519803830fc2721658d07",
"engineSwiftShaderHash": "sha256-N6f5aeDroqEwZlUBZi7nhDW8leE/7DqmOtRYOY4wzf4=",
"engineSwiftShaderHash": "sha256-qKf5gXIpI4+05bs7d3W6JlMNTn3vHFQL+i3JpFdyPao=",
"engineSwiftShaderRev": "5f9ed9b16931c7155171d31f75004f73f0a3abc8",
"channel": "stable",
"engineHashes": {

View File

@ -1,7 +1,7 @@
{
"version": "3.16.7",
"engineVersion": "4a585b79294e830fa89c24924d58a27cc8fbf406",
"engineSwiftShaderHash": "sha256-N6f5aeDroqEwZlUBZi7nhDW8leE/7DqmOtRYOY4wzf4=",
"engineSwiftShaderHash": "sha256-qKf5gXIpI4+05bs7d3W6JlMNTn3vHFQL+i3JpFdyPao=",
"engineSwiftShaderRev": "5f9ed9b16931c7155171d31f75004f73f0a3abc8",
"channel": "stable",
"engineHashes": {

View File

@ -1,7 +1,7 @@
{
"version": "3.19.4",
"engineVersion": "a5c24f538d05aaf66f7972fb23959d8cafb9f95a",
"engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=",
"engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=",
"engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f",
"channel": "stable",
"engineHashes": {

View File

@ -1,7 +1,7 @@
{
"version": "3.22.2",
"engineVersion": "edd8546116457bdf1c5bdfb13ecb9463d2bb5ed4",
"engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=",
"engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=",
"engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f",
"channel": "stable",
"engineHashes": {

View File

@ -1,7 +1,7 @@
{
"version": "3.23.0-0.1.pre",
"engineVersion": "bb10c5466638e963479ba5e64e601e42d1a43447",
"engineSwiftShaderHash": "sha256-J8TKwbIQ7hdWCGIu1T//MJlRzT7OTVL0MG/dmMyutPQ=",
"engineSwiftShaderHash": "sha256-mRLCvhNkmHz7Rv6GzXkY7OB1opBSq+ATWZ466qZdgto=",
"engineSwiftShaderRev": "2fa7e9b99ae4e70ea5ae2cc9c8d3afb43391384f",
"channel": "beta",
"engineHashes": {