1# Copyright 2020 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15import("//build_overrides/pigweed.gni") 16 17declare_args() { 18 # Default configs and dependencies targets provided by the toolchain. These 19 # are applied to all of the pw_* target types. They are set from a toolchain's 20 # toolchain_args for cross-toolchain deps, e.g. for 21 # 22 # `deps = [ //pw_some_module(//pw_toolchain:not_default) ]` 23 # 24 # The default toolchain is never used. 25 default_configs = [] 26 default_public_deps = [] 27 remove_default_configs = [] 28} 29 30# Combine target-specifc and target-agnostic default variables. 31_pw_build_defaults = { 32 configs = default_configs 33 public_deps = default_public_deps 34 35 # The target-agnostic defaults. 36 configs += [ 37 "$dir_pw_build:colorize_output", 38 "$dir_pw_build:debugging", 39 "$dir_pw_build:reduced_size", 40 "$dir_pw_build:strict_warnings", 41 "$dir_pw_build:cpp17", 42 ] 43 public_deps += [ "$dir_pw_polyfill:overrides" ] 44} 45 46# One more pass, to remove configs 47pw_build_defaults = { 48 configs = [] 49 forward_variables_from(_pw_build_defaults, "*") 50 if (remove_default_configs != []) { 51 # Add them first to ensure they are present to be removed. 52 configs += remove_default_configs 53 configs -= remove_default_configs 54 } 55} 56