diff --git a/ci/binary_size_treemap.sh b/ci/binary_size_treemap.sh new file mode 100755 index 0000000000000..b144c4bc153cb --- /dev/null +++ b/ci/binary_size_treemap.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Copyright 2013 The Flutter Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# Run a tool that generates a treemap showing the contribution of each +# component to the size of a binary. +# +# Usage: +# binary_size_treemap.sh [binary_path] [output_dir] + +set -e + +INPUT_PATH="$(cd $(dirname "$1"); pwd -P)/$(basename "$1")" +DEST_DIR="$(cd $(dirname "$2"); pwd -P)/$(basename "$2")" +CI_DIRECTORY=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd -P) +ENGINE_BUILDROOT=$(cd "$CI_DIRECTORY/../.."; pwd -P) + +if [ "$(uname)" == "Darwin" ]; then + NDK_PLATFORM="darwin-x86_64" +else + NDK_PLATFORM="linux-x86_64" +fi +ADDR2LINE="third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/$NDK_PLATFORM/bin/aarch64-linux-android-addr2line" + +# Run the binary size script from the buildroot directory so the treemap path +# navigation will start from there. +cd "$ENGINE_BUILDROOT" +python3 third_party/dart/runtime/third_party/binary_size/src/run_binary_size_analysis.py --library "$INPUT_PATH" --destdir "$DEST_DIR" --addr2line-binary "$ADDR2LINE" diff --git a/ci/builders/linux_android_aot_engine.json b/ci/builders/linux_android_aot_engine.json index 5065d6781d2e2..595e440ffa0f3 100644 --- a/ci/builders/linux_android_aot_engine.json +++ b/ci/builders/linux_android_aot_engine.json @@ -114,15 +114,11 @@ "tests": [ { "name": "Generate treemap for android_release_arm64", - "language": "python3", - "script": "third_party/dart/runtime/third_party/binary_size/src/run_binary_size_analysis.py", + "language": "bash", + "script": "flutter/ci/binary_size_treemap.sh", "parameters": [ - "--library", "../../src/out/android_release_arm64/libflutter.so", - "--destdir", - "${FLUTTER_LOGS_DIR}", - "--addr2line-binary", - "../../src/third_party/android_tools/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-addr2line" + "${FLUTTER_LOGS_DIR}" ] } ]