| # 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. |
| |
| import("//flutter/common/config.gni") |
| import("//flutter/shell/version/version.gni") |
| |
| if (flutter_runtime_mode == "jit_release") { |
| android_zip_archive_dir = "android-$target_cpu-jit-release" |
| } else { |
| android_zip_archive_dir = "android-$target_cpu" |
| if (flutter_runtime_mode != "debug") { |
| android_zip_archive_dir += "-$flutter_runtime_mode" |
| } |
| } |
| |
| # Creates a zip file in the $root_build_dir/zip_archives folder. |
| # |
| # The output variable specifies the name of the zip file to create. |
| # The files variable is an array of scopes that specify a source file or |
| # directory and a destination path in the archive to create. |
| # |
| # For example, to create a zip file named archive.zip with all files in the |
| # root directory of the archive: |
| # |
| # zip_bundle("sample") { |
| # output = "archive.zip" |
| # files = [ |
| # { |
| # source = "$root_build_dir/some/path/to/lib.so" |
| # destination = "lib.so" |
| # }, |
| # { |
| # source = "$root_build_dir/some/other/path/with/files" |
| # destination = "other_files" |
| # }, |
| # ] |
| # } |
| template("zip_bundle") { |
| assert(defined(invoker.output), "output must be defined") |
| assert(defined(invoker.files), "files must be defined as a list of scopes") |
| |
| license_readme = "$target_gen_dir/LICENSE.$target_name.md" |
| license_target = "_${target_name}_license_md" |
| |
| generated_file(license_target) { |
| source_path = rebase_path(".", "//flutter") |
| license_path = |
| rebase_path("//flutter/sky/packages/sky_engine/LICENSE", "//flutter") |
| git_url = "https://github.com/flutter/engine/tree/$engine_version" |
| sky_engine_url = "https://storage.googleapis.com/flutter_infra_release/flutter/$engine_version/sky_engine.zip" |
| outputs = [ license_readme ] |
| contents = [ |
| "# $target_name", |
| "", |
| "This bundle is part of the the Flutter SDK.", |
| "", |
| "The source code is hosted at [flutter/engine/$source_path]($git_url/$source_path).", |
| "The license for this bundle is hosted at [flutter/engine/sky/packages/sky_engine/LICENSE]($git_url/$license_path) ", |
| "and [sky_engine.zip]($sky_engine_url).", |
| ] |
| } |
| |
| action(target_name) { |
| script = "//flutter/build/zip.py" |
| outputs = [ "$root_build_dir/zip_archives/${invoker.output}" ] |
| sources = [ license_readme ] |
| forward_variables_from(invoker, [ "visibility" ]) |
| deps = [ ":$license_target" ] + invoker.deps |
| |
| args = [ |
| "-o", |
| rebase_path(outputs[0]), |
| "-i", |
| rebase_path(license_readme), |
| "LICENSE.$target_name.md", |
| ] |
| foreach(input, invoker.files) { |
| args += [ |
| "-i", |
| rebase_path(input.source), |
| input.destination, |
| ] |
| sources += [ input.source ] |
| } |
| } |
| } |
| |
| # Creates a zip file in the $root_build_dir/zip_archives folder. |
| # |
| # The output variable specifies the name of the zip file to create. |
| # The files variable is an array of scopes that specify a source file or |
| # directory and a destination path in the archive to create. |
| # |
| # For example, to create a zip file named archive.zip with all files in the |
| # root directory of the archive: |
| # |
| # zip_bundle("sample") { |
| # output = "archive.zip" |
| # files = [ |
| # { |
| # source = rebase_path("$root_build_dir/some/path/to/lib.so") |
| # destination = "lib.so" |
| # }, |
| # { |
| # source = rebase_path("$root_build_dir/some/other/path/with/files") |
| # destination = "other_files" |
| # }, |
| # ] |
| # } |
| template("zip_bundle_from_file") { |
| assert(defined(invoker.output), "output must be defined") |
| assert(defined(invoker.files), "files must be defined as a list of scopes") |
| |
| action(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "visibility", |
| "deps", |
| ]) |
| script = "//flutter/build/zip.py" |
| outputs = [ "$root_build_dir/zip_archives/${invoker.output}" ] |
| sources = [] |
| location_source_path = "$target_gen_dir/zip_bundle.txt" |
| write_file(location_source_path, invoker.files, "json") |
| args = [ |
| "-o", |
| rebase_path(outputs[0]), |
| "-f", |
| rebase_path(location_source_path), |
| ] |
| } |
| } |