| # 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") |
| |
| 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") |
| action(target_name) { |
| script = "//flutter/build/zip.py" |
| outputs = [ "$root_build_dir/zip_archives/${invoker.output}" ] |
| sources = [] |
| forward_variables_from(invoker, [ "visibility" ]) |
| deps = invoker.deps |
| |
| args = [ |
| "-o", |
| rebase_path(outputs[0]), |
| ] |
| 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), |
| ] |
| } |
| } |