| # 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), | |
| ] | |
| } | |
| } |