16d528ed9Sopenharmony_ci# Copyright 2019 The Chromium Authors. All rights reserved.
26d528ed9Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
36d528ed9Sopenharmony_ci# found in the LICENSE file.
46d528ed9Sopenharmony_ci
56d528ed9Sopenharmony_ciif (target_os == "") {
66d528ed9Sopenharmony_ci  target_os = "ios"
76d528ed9Sopenharmony_ci}
86d528ed9Sopenharmony_ciif (target_cpu == "") {
96d528ed9Sopenharmony_ci  target_cpu = host_cpu
106d528ed9Sopenharmony_ci}
116d528ed9Sopenharmony_ciif (current_cpu == "") {
126d528ed9Sopenharmony_ci  current_cpu = target_cpu
136d528ed9Sopenharmony_ci}
146d528ed9Sopenharmony_ciif (current_os == "") {
156d528ed9Sopenharmony_ci  current_os = target_os
166d528ed9Sopenharmony_ci}
176d528ed9Sopenharmony_ci
186d528ed9Sopenharmony_cideclare_args() {
196d528ed9Sopenharmony_ci  # Control which platform the build is targeting. Valid values are
206d528ed9Sopenharmony_ci  # "simulator" or "device".
216d528ed9Sopenharmony_ci  target_environment = "simulator"
226d528ed9Sopenharmony_ci}
236d528ed9Sopenharmony_ci
246d528ed9Sopenharmony_ciassert(
256d528ed9Sopenharmony_ci    target_environment == "simulator" || target_environment == "device",
266d528ed9Sopenharmony_ci    "Only supported values for target_environment are 'simulator' and 'device'")
276d528ed9Sopenharmony_ci
286d528ed9Sopenharmony_ci# All binary targets will get this list of configs by default.
296d528ed9Sopenharmony_ci_shared_binary_target_configs = [ "//build:compiler" ]
306d528ed9Sopenharmony_ci
316d528ed9Sopenharmony_ci# Apply that default list to the binary target types.
326d528ed9Sopenharmony_ciset_defaults("executable") {
336d528ed9Sopenharmony_ci  configs = _shared_binary_target_configs
346d528ed9Sopenharmony_ci  configs += [ "//build:shared_binary" ]
356d528ed9Sopenharmony_ci}
366d528ed9Sopenharmony_ciset_defaults("static_library") {
376d528ed9Sopenharmony_ci  configs = _shared_binary_target_configs
386d528ed9Sopenharmony_ci}
396d528ed9Sopenharmony_ciset_defaults("shared_library") {
406d528ed9Sopenharmony_ci  configs = _shared_binary_target_configs
416d528ed9Sopenharmony_ci  configs += [ "//build:shared_binary" ]
426d528ed9Sopenharmony_ci}
436d528ed9Sopenharmony_ciset_defaults("source_set") {
446d528ed9Sopenharmony_ci  configs = _shared_binary_target_configs
456d528ed9Sopenharmony_ci}
466d528ed9Sopenharmony_ci
476d528ed9Sopenharmony_ciset_default_toolchain("//build/toolchain/$target_os:clang_$target_cpu")
486d528ed9Sopenharmony_ci
496d528ed9Sopenharmony_ciif (target_os == "ios") {
506d528ed9Sopenharmony_ci  host_toolchain = "//build/toolchain/$host_os:clang_$host_cpu"
516d528ed9Sopenharmony_ci} else {
526d528ed9Sopenharmony_ci  host_toolchain = default_toolchain
536d528ed9Sopenharmony_ci}
54