# 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. # Creates a package dir that we will them use pm to package. # # This currently ignores the CMX files and does minimal validation. template("package_dir") { assert(defined(invoker.binary), "package must define binary") assert(defined(invoker.meta_dir), "package must define meta_dir") pkg_target_name = target_name pkg = { package_version = "0" # placeholder forward_variables_from(invoker, [ "binary", "deps", "meta", "resources", "libraries", "meta_dir", ]) if (!defined(package_name)) { package_name = pkg_target_name } if (!defined(meta)) { meta = [] } if (!defined(deps)) { deps = [] } if (!defined(resources)) { resources = [] } if (!defined(libraries)) { libraries = [] } } far_base_dir = "$root_out_dir/${pkg_target_name}_far" copy_sources = [ "$root_out_dir/${invoker.binary}" ] copy_outputs = [ "$far_base_dir/bin/app" ] foreach(res, pkg.resources) { copy_sources += [ res.path ] copy_outputs += [ "$far_base_dir/data/${res.dest}" ] } foreach(lib, pkg.libraries) { copy_sources += [ "${lib.path}/${lib.name}" ] copy_outputs += [ "$far_base_dir/lib/${lib.name}" ] } meta_dir = pkg.meta_dir cmx_target = "$pkg_target_name.copy_cmx" copy("$cmx_target") { sources = [ "${meta_dir}/${pkg_target_name}.cmx" ] outputs = [ "$far_base_dir/meta/{{source_file_part}}" ] } action(target_name) { script = "$flutter_root/tools/fuchsia/copy_path.py" response_file_contents = rebase_path(copy_sources + copy_outputs) deps = pkg.deps + [ ":$cmx_target" ] args = [ "--file-list={{response_file_name}}" ] outputs = copy_outputs } }