• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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    "$dir_pw_build:relative_paths",
43  ]
44
45  # TODO(pwbug/602): Remove this once all uses explicitly depend on polyfills.
46  public_deps += [ "$dir_pw_polyfill:overrides" ]
47}
48
49# One more pass, to remove configs
50pw_build_defaults = {
51  configs = []
52  forward_variables_from(_pw_build_defaults, "*")
53  if (remove_default_configs != []) {
54    # Add them first to ensure they are present to be removed.
55    configs += remove_default_configs
56    configs -= remove_default_configs
57  }
58}
59