| # Copyright 2019 The Pigweed Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| # use this file except in compliance with the License. You may obtain a copy of |
| # the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| # License for the specific language governing permissions and limitations under |
| # the License. |
| |
| # This file defines default values for all of the build variables used by |
| # Pigweed. |
| # |
| # Each individual variable can be overriden by a target to configure the system |
| # to build for it. This is done in a .gni file specific to the target by first |
| # importing this file, then changing the variables as desired. |
| |
| # Whether to build host-side tooling. |
| pw_build_host_tools = false |
| |
| # Options which configure the executable targets created in Pigweed builds. |
| pw_executable_config = { |
| # The name of the GN target type used to build Pigweed executables. |
| # |
| # If this is a custom template, the .gni file containing the template must |
| # be imported at the top of the target configuration file to make it globally |
| # available. |
| target_type = "executable" |
| |
| # Path to an instantiation of the "linker_script" GN template defining the |
| # linker script configuration for the target. |
| linker_script_target = "" |
| |
| # Path to the Bloaty configuration file that defines the memory layout and |
| # capacities for the target binaries. |
| bloaty_config_file = "" |
| } |
| |
| # Default toolchain for the build target. |
| # |
| # If this is changed, you must run `ninja -t clean` to remove any files from |
| # the previous toolchain's build before building again. |
| pw_target_toolchain = "" |
| |
| # List of toolchains to use in pw_toolchain_size_report templates. |
| # |
| # Each entry is a scope containing the following variables: |
| # |
| # name: Human-readable toolchain name. |
| # target: GN target that defines the toolchain. |
| # linker_script: Optional path to a linker script file to build for the |
| # toolchain's target. |
| # bloaty_config: Optional Bloaty confirugation file defining the memory |
| # layout of the binaries as specified in the linker script. |
| # |
| # If this list is empty, pw_toolchain_size_report targets become no-ops. |
| pw_size_report_toolchains = [] |
| |
| # Implementation of a main function for "pw_test" unit test binaries. |
| pw_unit_test_main = "$dir_pw_unit_test:simple_printing_main" |
| |
| # Path to a test runner to automatically run unit tests after they are built. |
| # |
| # If set, the pw_test() template creates an action that invokes the test runner |
| # on each test executable. If unset, the pw_test() template only creates a test |
| # executable target. |
| # |
| # This should only be enabled for targets which support parallelized running of |
| # unit tests, such as desktops with multiple cores. |
| pw_automatic_test_runner = "" |
| |
| # Languages for which to generate protobuf code. These are used by the |
| # pw_proto_library template to determine which build targets to create. |
| # |
| # Supported languages: |
| # "cc", "go" |
| pw_protobuf_langs = [ |
| "cc", |
| "go", |
| ] |
| |
| ################################# BACKENDS ##################################### |
| |
| # This section of the file defines empty variables for each of the Pigweed |
| # facades that expect a backend. This allows minimal breakages when adding new |
| # facades. Instead of GN always halting due to encountering an undefined |
| # variable, GN will only emit an error if something in the build depends on the |
| # empty (but defined) variable. |
| # |
| # All of these should default to empty strings. For target-specific defaults, |
| # modify these variables in a target configuration file. |
| |
| # Backend for the pw_assert module. |
| dir_pw_assert_backend = "" |
| |
| # Backend for the pw_boot module. |
| dir_pw_boot_backend = "" |
| |
| # Backend for the pw_cpu_exception module. |
| dir_pw_cpu_exception_backend = "" |
| |
| # Backend for the pw_log module. |
| dir_pw_log_backend = "" |
| |
| # Backend for the pw_sys_io module. |
| dir_pw_sys_io_backend = "" |
| |
| ############################## MODULE CONFIGS ################################## |
| |
| # Module configuration options for pw_boot_armv7m. |
| pw_boot_armv7m_config = { |
| # C Preprocessor defines used for linker script configuration. |
| defines = [] |
| } |