# Copyright 2015 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/chromecast_build.gni") import("//build/config/locales.gni") import("//extensions/buildflags/buildflags.gni") # This args block should contain arguments used within the //chromecast # directory. Arguments which are used in other Chrome components should # be instead declared in //build/config/chromecast_build.gni. declare_args() { # chromecast_branding is used to include or exclude Google-branded components. # Set it to "public" for a Chromium build. chromecast_branding = "public" # 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" # 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 if (is_android) { # If true, run receiver apps in an Android service instead of an activity. display_web_contents_in_service = is_cast_audio_only } # If true, Chromecast WebUI resources are included in a build. # TODO(antz): default to false for audio-only builds, might need further # clean up (b/27119303) enable_chromecast_webui = !is_cast_audio_only && !is_android # Set true to enable assistant features. enable_assistant = false # Set to true on devices that support multizone. Only indicates that the # device supports multizone. The command line flag --enable-multizone must # still be used to enable multizone. supports_multizone = is_cast_audio_only && !is_cast_desktop_build # Set to true for builds targeting ARC. is_android_arc = false # Set true for builds targeting Android Things. is_android_things = false # Set to true to start music apps in headless mode. enable_headless_music_mode = false # Set to true to keep Android activities alive when they are moved to the # background. enable_background_activities = false # Set to true to use CastWebContentsFragment instead of CastWebContentsActivity # to run cast receiver app. # TODO(thoren) merge this flag with display_web_contents_in_service enable_cast_fragment = false # Set the number of lines for LogcatExtractor to send. logcat_extractor_size = 512 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 the package name and class path for the component which will provide device logs # Values defined in eureka-internal # These values are unused if use_remote_service_logcat is false device_logs_provider_package = "" device_logs_provider_class = "" } # 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 } declare_args() { enable_volume_tables_access = is_android_things && chromecast_branding != "public" is_android_things_non_public = is_android_things && chromecast_branding != "public" } declare_args() { # Use Playready CDMs for internal non-desktop builds. use_playready = !is_cast_desktop_build && chromecast_branding != "public" } # This is the release version, which takes the form .. Internal # builds will read the value from an internal file containing this value as a # string. Public builds, lacking this file, will set a dummy value. if (chromecast_branding == "public") { cast_build_release = "eng." + getenv("USER") } else { cast_build_release = read_file("//chromecast/internal/build/cast_build_release", "trim string") } # All locales supported by Cast builds. This provides a single point of # reference for all GN files referencing a locales list. |locales| is declared # in //build/config/locales.gni. cast_locales = locales enable_chromecast_extensions = enable_extensions # These templates are a temporary fix fo link libc++ into shared libraries and # executables. These should be removed as soon as crbug.com/746091 is resolved. foreach(target_type, [ "executable", "shared_library", "loadable_module", "source_set", ]) { template("cast_${target_type}") { target(target_type, target_name) { forward_variables_from(invoker, "*") configs += [ "//chromecast:cast_config" ] if (!defined(deps)) { deps = [] } if (target_type != "source_set") { deps += [ "//build/config:exe_and_shlib_deps" ] } } } } # 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 }