| # Copyright 2017 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| declare_args() { |
| # If a package is referenced in monolith and in preinstall, monolith takes |
| # priority, and the package will be added to OTA images as part of the |
| # verified boot set of static packages. |
| |
| # Does nothing. |
| # |
| # Will be removed after 30 April 2019. |
| allow_layer_guesswork = false |
| |
| # These arguments should be set by the board definition gni file. |
| |
| # A list of packages included in the monolith from the board definition. |
| # This list is appended with the list from the product definition and any |
| # additional specified packages |
| board_packages = [] |
| } |
| |
| monolith = [] |
| preinstall = [] |
| available = [] |
| |
| monolith += board_packages |
| |
| # Resolve all the JSON files and their dependencies |
| # into lists of GN labels: |
| # monolith - package labels for base system and verified boot image |
| # preinstall - package labels for preinstall, but not OTA |
| # available - package labels for the install and update repository |
| _preprocessed_products = exec_script("preprocess_products.py", |
| [ |
| "--monolith=$monolith", |
| "--preinstall=$preinstall", |
| "--available=$available", |
| ], |
| "json") |
| |
| # Tell GN that the files preprocess_products.py ran are inputs to the |
| # generation step, by declaring them as file inputs to a (silly) exec_script |
| # invocation. |
| exec_script("/bin/sh", |
| [ |
| "-c", |
| ":", |
| ], |
| "", |
| _preprocessed_products.files_read) |
| |
| monolith_package_labels = [] |
| foreach(pkg, _preprocessed_products.monolith) { |
| monolith_package_labels += [ get_label_info(pkg, "label_no_toolchain") ] |
| } |
| preinstall_package_labels = [] |
| foreach(pkg, _preprocessed_products.preinstall) { |
| preinstall_package_labels += [ get_label_info(pkg, "label_no_toolchain") ] |
| } |
| available_package_labels = [] |
| foreach(pkg, _preprocessed_products.available) { |
| available_package_labels += [ get_label_info(pkg, "label_no_toolchain") ] |
| } |