Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ jobs:
echo "SNAPSHOT_HASH=$HASH" >> $GITHUB_ENV
- name: Install tools
run: |
brew install ninja libusbmuxd ideviceinstaller ios-deploy
brew install ninja libusbmuxd ideviceinstaller ios-deploy python@3.13
python3 -m pip install wheel
python3 -m pip install .
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone https://github.com/flutter/engine.git
git clone https://github.com/flutter/flutter.git engine
- name: gclient sync
run: |
ROOT_DIR=`pwd`
Expand All @@ -40,20 +40,20 @@ jobs:
cd $ROOT_DIR
mkdir customEngine
cd customEngine
echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient
echo 'solutions = [{"managed": False,"name": ".","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient
gclient sync
reflutter -b ${{env.SNAPSHOT_HASH}}
- name: ninja build Flutter.framework
run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release
run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release
- name: ninja build libflutter_arm64
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64
- name: ninja build libflutter_arm
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release
- name: Move to release
run: |
cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter
cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || :
cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || :
cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter
cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || :
cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || :
- name: iOS-Release
uses: softprops/action-gh-release@v1
with:
Expand Down Expand Up @@ -82,11 +82,11 @@ jobs:
echo "SNAPSHOT_HASH=$HASH" >> $GITHUB_ENV
- name: Install tools
run: |
brew install ninja libusbmuxd ideviceinstaller ios-deploy
brew install ninja libusbmuxd ideviceinstaller ios-deploy python@3.13
python3 -m pip install wheel
python3 -m pip install .
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
git clone https://github.com/flutter/engine.git
git clone https://github.com/flutter/flutter.git engine
- name: gclient sync
run: |
ROOT_DIR=`pwd`
Expand All @@ -101,20 +101,20 @@ jobs:
cd $ROOT_DIR
mkdir customEngine
cd customEngine
echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient
echo 'solutions = [{"managed": False,"name": ".","url": "'$ROOT_DIR/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' > .gclient
gclient sync
reflutter -b ${{env.SNAPSHOT_HASH}} -p
- name: ninja build Flutter.framework
run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release
run: export PATH=$PATH:`pwd`/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --no-goma --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release
- name: ninja build libflutter_arm64
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64
- name: ninja build libflutter_arm
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release
run: export PATH=$PATH:`pwd`/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release
- name: Move to release
run: |
cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter
cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || :
cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || :
cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter
cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null || :
cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null || :
- name: iOS-Release
uses: softprops/action-gh-release@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion SNAPSHOT_HASH
Original file line number Diff line number Diff line change
@@ -1 +1 @@
f956f595844a2f845a55707faaaa51e4
d91c0e6f35f0eb2e44124e8f42aa44a7
2 changes: 1 addition & 1 deletion enginehash.csv
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
version,Engine_commit,Snapshot_Hash
3.29.0,f73bfc4522dd0bc87bbcdb4bb3088082755c5e87,d91c0e6f35f0eb2e44124e8f42aa44a7
3.29.3,cf56914b326edb0ccb123ffdc60f00060bd513fa,d91c0e6f35f0eb2e44124e8f42aa44a7
3.27.1,cb4b5fff73850b2e42bd4de7cb9a4310a78ac40d,f956f595844a2f845a55707faaaa51e4
3.24.0,b8800d88be4866db1b15f8b954ab2573bba9960f,80a49c7111088100a233b2ae788e1f48
3.22.0,f6344b75dcf861d8bf1f1322780b8811f982e31a,d20a1be77c3d3c41b2a5accaee1ce549
Expand Down
33 changes: 18 additions & 15 deletions scripts/build-engine
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ ROOT_DIR=$(pwd)

# Required packages for macOS
brew update
brew install libzip openssl libplist autoconf automake libtool autoconf-archive pkg-config ninja
brew install libzip openssl libplist autoconf automake libtool autoconf-archive pkg-config ninja python@3.13
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/opt/openssl@1.1/lib/pkgconfig
brew install libplist libusbmuxd
cd "$ROOT_DIR"
Expand All @@ -14,7 +14,6 @@ brew install ideviceinstaller
brew install ios-deploy

# Install reflutter
# shellcheck disable=SC2103
cd ..
pip3 install wheel
pip3 install .
Expand All @@ -27,13 +26,15 @@ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
if [ -d "engine" ]; then
rm -rf engine
fi
git clone https://github.com/flutter/engine.git

# Deprecated repo: https://github.com/flutter/engine
git clone https://github.com/flutter/flutter.git engine

export PATH=$PATH:$ROOT_DIR/depot_tools
cd engine
git fetch origin $(reflutter "$SNAPSHOT_HASH" -l)
git fetch origin $(reflutter -b "$SNAPSHOT_HASH")
git reset --hard FETCH_HEAD
reflutter "$SNAPSHOT_HASH" -l
reflutter -b "$SNAPSHOT_HASH" -p
echo 'reflutter' >REFLUTTER
git add . && git commit -am "reflutter"
cd "$ROOT_DIR"
Expand All @@ -42,19 +43,21 @@ if [ -d "customEngine" ]; then
fi
mkdir customEngine
cd customEngine
echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient
# Deprecated engine path
# echo 'solutions = [{"managed": False,"name": "src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient
echo 'solutions = [{"managed": False,"name": "engine/src/flutter","url": "'"$ROOT_DIR"/engine'","custom_deps": {},"deps_file": "DEPS","safesync_url": "",},]' >.gclient
gclient sync
reflutter "$SNAPSHOT_HASH" -l
reflutter -b "$SNAPSHOT_HASH" -p
cd "$ROOT_DIR"
export PATH=$PATH:$(pwd)/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/src/flutter/tools/gn --ios --runtime-mode=release && ninja -C customEngine/src/out/ios_release
cp customEngine/src/out/ios_release/Flutter.framework/Flutter Flutter
export PATH=$PATH:$(pwd)/depot_tools && sudo xcode-select -s /Applications/Xcode.app && customEngine/engine/src/flutter/tools/gn --ios --runtime-mode=release && ninja -C customEngine/engine/src/out/ios_release
cp customEngine/engine/src/out/ios_release/Flutter.framework/Flutter Flutter
cd "$ROOT_DIR"
export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_arm64
export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_arm64
cd "$ROOT_DIR"
export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/src/out/android_release
export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=arm --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release
cd "$ROOT_DIR"
export PATH=$PATH:$(pwd)/depot_tools && customEngine/src/flutter/tools/gn --no-goma --android --android-cpu=x64 --runtime-mode=release && ninja -C customEngine/src/out/android_release_x64
export PATH=$PATH:$(pwd)/depot_tools && customEngine/engine/src/flutter/tools/gn --no-goma --android --android-cpu=x64 --runtime-mode=release && ninja -C customEngine/engine/src/out/android_release_x64
cd "$ROOT_DIR"
cp customEngine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null
cp customEngine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null
cp customEngine/src/out/android_release_x64/lib.stripped/libflutter.so libflutter_x64.so 2>/dev/null
cp customEngine/engine/src/out/android_release_arm64/lib.stripped/libflutter.so libflutter_arm64.so 2>/dev/null
cp customEngine/engine/src/out/android_release/lib.stripped/libflutter.so libflutter_arm.so 2>/dev/null
cp customEngine/engine/src/out/android_release_x64/lib.stripped/libflutter.so libflutter_x64.so 2>/dev/null
5 changes: 5 additions & 0 deletions scripts/enginehash.tmp.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
version,Engine_commit,Snapshot_Hash
3.32.0-0.1.pre,72ee26e314f471012ee4ee60b5cf1831c0ed6a45,23d3f13db16f63a2bdfdd5a7b1a0cf4a
3.29.3,cf56914b326edb0ccb123ffdc60f00060bd513fa,d91c0e6f35f0eb2e44124e8f42aa44a7
3.31.0-0.1.pre,50f226569f331edf2831a7543f55d953c3d50637,3a2ef32389087437ce26ed8546143b8b
3.29.2,18b71d647a292a980abb405ac7d16fe1f0b20434,d91c0e6f35f0eb2e44124e8f42aa44a7
3.29.1,871f65ac1bf129edb222c3293a636ff4b67534a6,d91c0e6f35f0eb2e44124e8f42aa44a7
3.30.0-0.1.pre,29a2f674ca2312e34a3ef796701c297dc3be1ae6,0a841ba78a1c491593464ebbc79a6bbb
3.29.0,f73bfc4522dd0bc87bbcdb4bb3088082755c5e87,d91c0e6f35f0eb2e44124e8f42aa44a7
3.27.4,82bd5b7209295a5b7ff8cae0df96e7870171e3a5,f956f595844a2f845a55707faaaa51e4
Expand Down
3 changes: 1 addition & 2 deletions scripts/gen_enginehash.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

from requests import get

from src import ELFF
from src.utils import elff as ELFF

release_url = (
"https://storage.googleapis.com/flutter_infra_release/releases/releases_linux.json"
Expand All @@ -36,7 +36,6 @@ def get_snapshot_hash(engine_hash: str) -> str | None:
engine_hash_path = "/tmp/{}".format(engine_hash)
urlretrieve(snapshot_url.format(engine_hash), zip_file_path)
with ZipFile(zip_file_path, "r") as zipObject:
listOfFileNames = zipObject.namelist()
zipObject.extractall(engine_hash_path)
gen_snapshot_file_path = "{}/gen_snapshot".format(engine_hash_path)
if isfile(gen_snapshot_file_path):
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

setuptools.setup(
name="reflutter",
version="0.8.4",
version="0.8.5",
description=SHORT_DESCRIPTION,
long_description=LONG_DESCRIPTION,
long_description_content_type="text/markdown",
Expand Down
3 changes: 3 additions & 0 deletions src/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,9 @@ def _build_engine(libapp_hash: str):
or os.path.exists("tools/generate_package_config/pubspec.yaml")
or os.path.exists("deps")
or os.path.exists("src/flutter/third_party/dart/runtime/vm/dart.cc")
or os.path.exists(
"engine/src/flutter/third_party/dart/runtime/vm/dart.cc"
)
):
utils.patch_source(libapp_hash, abs(i), patch_dump)

Expand Down
3 changes: 3 additions & 0 deletions src/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ def replace_file_text(fname, textOrig, textReplace):
new_third_party_path = "src/flutter/" + "/".join(fname.split("/")[1:])
if os.path.exists(new_third_party_path):
fname = new_third_party_path
else:
# https://github.com/flutter/flutter/tree/master/engine
fname = "engine/src/flutter/" + "/".join(fname.split("/")[1:])
try:
with open(fname, "r") as file:
filedata = file.read()
Expand Down
Loading