• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2021 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
17import("$dir_pw_android_toolchain/android.gni")
18import("$dir_pw_log/backend.gni")
19import("$dir_pw_sys_io/backend.gni")
20
21if (pw_android_toolchain_NDK_PATH != "") {
22  import("$dir_pw_android_toolchain/generate_toolchain.gni")
23  import("$dir_pw_android_toolchain/toolchains.gni")
24
25  _target_config = {
26    # Configuration options for Pigweed executable targets.
27    pw_build_EXECUTABLE_TARGET_TYPE = "executable"
28
29    # Facade backends
30    pw_assert_BACKEND = dir_pw_assert_basic
31    pw_log_BACKEND = dir_pw_log_basic
32    pw_sys_io_BACKEND = dir_pw_sys_io_stdio
33
34    pw_build_LINK_DEPS = []
35    pw_build_LINK_DEPS += [
36      "$dir_pw_assert:impl",
37      "$dir_pw_log:impl",
38    ]
39  }
40
41  _toolchain_properties = {
42  }
43
44  _target_default_configs = []
45
46  pw_target_toolchain_android = {
47    _excluded_members = [
48      "defaults",
49      "name",
50    ]
51
52    debug = {
53      name = "android_debug"
54      _toolchain_base = pw_toolchain_android.debug
55      forward_variables_from(_toolchain_base, "*", _excluded_members)
56      forward_variables_from(_toolchain_properties, "*")
57      defaults = {
58        forward_variables_from(_toolchain_base.defaults, "*")
59        forward_variables_from(_target_config, "*")
60        default_configs += _target_default_configs
61      }
62    }
63
64    speed_optimized = {
65      name = "android_speed_optimized"
66      _toolchain_base = pw_toolchain_android.speed_optimized
67      forward_variables_from(_toolchain_base, "*", _excluded_members)
68      forward_variables_from(_toolchain_properties, "*")
69      defaults = {
70        forward_variables_from(_toolchain_base.defaults, "*")
71        forward_variables_from(_target_config, "*")
72        default_configs += _target_default_configs
73      }
74    }
75
76    size_optimized = {
77      name = "android_size_optimized"
78      _toolchain_base = pw_toolchain_android.size_optimized
79      forward_variables_from(_toolchain_base, "*", _excluded_members)
80      forward_variables_from(_toolchain_properties, "*")
81      defaults = {
82        forward_variables_from(_toolchain_base.defaults, "*")
83        forward_variables_from(_target_config, "*")
84        default_configs += _target_default_configs
85      }
86    }
87  }
88
89  # This list just contains the members of the above scope for convenience to make
90  # it trivial to generate all the toolchains in this file via a
91  # `pw_generate_android_toolchains` target.
92  pw_target_toolchain_android_list = [
93    pw_target_toolchain_android.debug,
94    pw_target_toolchain_android.speed_optimized,
95    pw_target_toolchain_android.size_optimized,
96  ]
97}
98