| # Copyright 2018 The Chromium 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("//build/package.gni") |
| |
| # This is a rule used to generate an index of module packages that should be |
| # indexed by the on-device module resolver when it starts up. This template is |
| # meant to be used only once for each layer, but multiple may exist for |
| # different device package sets. This target generates a system package, so |
| # this target *must* be included in your layer's build image. |
| # |
| # The following must be true for each of the listed packages: |
| # |
| # 0) Make sure this module package is built and included on the device image. |
| # E.g: For an index of all topaz modules, make sure all module packages are |
| # transitively included from //topaz/packages/topaz. |
| # 1) Create a Module manifest file as per //peridot/docs/modular/manifests/module.md |
| # and include it in your module package. The flutter_app() template from |
| # topaz includes the specified module manifest in the package for you. |
| # 2) Point the 'binary' attribute in your manifest to the module's package name. |
| # |
| # Example: |
| # |
| # import("//peridot/build/module_manifest.gni") |
| # |
| # initial_module_packages("manifests") { |
| # packages = [ "my_module_package1", "my_module_package2" ] |
| # } |
| template("initial_module_packages") { |
| assert(defined(invoker.packages), |
| "'packages' must be defined for $target_name") |
| |
| # NOTE: The fully resolved path will be |
| # /system/data/module_manifest_repository |
| # This must match that given in bin/module_resolver/module_resolver_main.cc |
| module_index_filename = "$root_build_dir/module_package_index/$target_name" |
| write_file(module_index_filename, invoker.packages) |
| |
| package(target_name) { |
| deprecated_system_image = true |
| resources = [ |
| { |
| path = rebase_path(module_index_filename) |
| dest = "initial_module_packages/$target_name" |
| }, |
| ] |
| } |
| } |