1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231
|
# Copyright 2015 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/cast.gni")
import("//build/config/locales.gni")
import("//components/cast_streaming/features.gni")
import("//media/media_options.gni")
# These args blocks should contain arguments used within the //chromecast
# directory. Arguments which are used in other Chrome components should
# be instead declared in //build/config/cast.gni.
declare_args() {
# True if Chromecast build is targeted for linux desktop. This type of build
# is useful for testing and development, but currently supports only a subset
# of Cast functionality. Though this defaults to true for x86 Linux devices,
# this should be overridden manually for an embedded x86 build.
is_cast_desktop_build =
target_os == "linux" && (target_cpu == "x86" || target_cpu == "x64") &&
enable_cast_receiver
}
declare_args() {
# If true, IS_CAST_DEBUG_BUILD() will evaluate to 1 in version.h. Otherwise,
# it will evaluate to 0. Overriding this when is_debug=false is useful for
# doing engineering builds.
cast_is_debug = is_debug
# The incremental build number. The Cast automated builders will set this
# value to indicate the buildset. Note: The default value should be greater
# than any value the builder may assign to prevent attempted automatic updates
# when the default value is used.
cast_build_incremental = "999999"
# Set true to enable assistant features.
enable_assistant = false
# Set to true if there is a full mixer implementation; if not, we create a
# shim mixer service receiver that pushes audio to the CMA backend.
have_full_mixer = is_cast_audio_only
# If true, the mixer will be instantiated inside cast_shell. When false, the
# mixer is expected to be running in another process.
mixer_in_cast_shell = true
# Set to true on devices where the VolumeControl implementation is in the
# libcast_avsettings_1.0.so instead of in libcast_media_1.0.so.
cast_volume_control_in_avsettings = false
# Set to true for builds targeting ARC.
is_android_arc = false
if (is_android) {
# Set to true to get logcat from a remote service
# If false, will only get the logs of the app.
use_remote_service_logcat = false
}
# Set to true to enable a CMA media backend that allows mixed audio to be
# output with sync'd video.
enable_video_with_mixed_audio = false
# unified flag to pick monotonic_clock OR monotonic_clock_raw
media_clock_monotonic_raw = !is_android && !is_cast_desktop_build
# Include 'Android' in user agent string to avoid being served desktop
# versions of websites.
# TODO(halliwell): consider making this default for all Cast hardware.
use_android_user_agent = false
# Contain default command line switches we want to set.
# This will get joined into a comma-separated list that looks like:
# "test-flag-one=public,test-flag-two=true,test-flag-three=1,"
# TODO(ziyangch): make the parsing logic have ability to quote/escape characters.
default_command_line_flags = []
# Set to true to disable secure flac/opus support in EME, when using
# cast CMA media backend and supporting Widevine or Playready.
disable_secure_flac_and_opus_decoding = false
# Set to true to enable video capture service for video input and output.
enable_video_capture_service = false
# Set to true to enable external Mojo services to communicate with services
# within cast_shell.
enable_external_mojo_services = is_linux || is_chromeos || is_android
# Support using system perfetto tracing
enable_perfetto_tracing = false
# Support using system perfetto tracing
enable_perfetto_tracing = false
# Recording happens at this sample rate. Must be 16000, 48000 or 96000 Hz.
audio_input_sample_rate = 16000
# Whether use unix sockets in Cast input/output stream.
use_unix_sockets = is_linux || is_chromeos || is_android
# Set to true to enable audio capture service for audio input.
enable_audio_capture_service = false
# Extra rpath to use for standalone services.
iot_service_rpath = ""
# Set to true to enable media overlay for volume bar, etc.
enable_media_overlay = false
# Set to true to forward crashes to the system's crash handler instead of
# handling them internally. This disables the built-in crash handler.
use_system_crash_handler = false
# True to use the Chromium runtime for cast rendering.
enable_chromium_runtime_cast_renderer = false
# True to use the remoting implementation of cast streaming for the cast web
# runtime (as opposed to the mirroring-only implementation).
enable_remoting_for_cwr = false
# device specific string to append to User string.
device_user_agent_suffix = ""
# link vendor-supplied functionality as shared libraries. When true,
# cast_shared_library targets are normal shared libraries. When false,
# they become source_sets.
use_vendor_shlibs = !is_android
# build APKs/bundles for the listed device types. Each APK has different
# features enabled in its manifest to ensure it is only distributed to select
# devices.
android_device_types = [
"generic",
"atv",
"tablet",
"automotive",
]
# Use Starboard graphics backend. Compile it in statically.
enable_starboard_graphics = false
# Build Starboard graphics backend as shared library.
starboard_graphics_is_shared = false
# Use Starboard media backend.
enable_starboard_media = false
}
# This is the release version, which takes the form <major>.<minor>.
cast_build_release = "eng." + getenv("USER")
# All locales supported by Cast builds. This provides a single point of
# reference for all GN files referencing a locales list.
# |locales_without_pseudolocales| is declared in //build/config/locales.gni.
# See https://chromium-review.googlesource.com/488166/ for why we can't use
# pseudolocales in chromecast.
cast_locales = locales_without_pseudolocales
# Android currently supports more locales than Desktop and ChromeOS.
# If Cast will also the android files update this and the Cast grd files.
if (is_android) {
# Subtract out additional Android locales
cast_locales -= extended_locales
}
if (!(is_ios || is_chromeos)) {
# Subtract out the additional desktop locales
cast_locales -= [
"af",
"ur",
]
}
# Use Chromecast CDMs for protected content. Some Android platforms use
# MediaDrm for CDM support.
declare_args() {
use_chromecast_cdms = true
}
foreach(target_type,
[
"executable",
"loadable_module",
"source_set",
]) {
template("cast_${target_type}") {
target(target_type, target_name) {
forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY)
forward_variables_from(invoker, [ "testonly" ])
configs += [ "//chromecast:cast_config" ]
}
}
}
template("cast_shared_library") {
if (use_vendor_shlibs) {
target_type = "shared_library"
} else {
target_type = "source_set"
}
target(target_type, target_name) {
forward_variables_from(invoker, "*", TESTONLY_AND_VISIBILITY)
forward_variables_from(invoker, [ "testonly" ])
configs += [ "//chromecast:cast_config" ]
}
}
# Set the defaults for each target. The defaults for these target wrappers
# should match their unwrapped counterparts in BUILDCONFIG.gn. The variables
# referenced below are declared in BUILDCONFIG.gn.
set_defaults("cast_executable") {
configs = default_executable_configs
}
set_defaults("cast_shared_library") {
configs = default_shared_library_configs
if (is_android) {
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
}
}
set_defaults("cast_loadable_module") {
configs = default_shared_library_configs
if (is_android) {
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
}
}
set_defaults("cast_source_set") {
configs = default_compiler_configs
}
|