# 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 = [] }