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