blob: 38e7cf2a9d5a3e07628f9d205c2fc3f3323b780d [file] [log] [blame]
# Copyright 2017 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#####################################################################
# If you modify this file, PLEASE REMEMBER TO UPDATE
# //cobalt/build/config/base.gni AS WELL
#####################################################################
# This contains the defaults and documentation for all Cobalt-defined GYP
# variables. Starboard-defined variables are specified in
# starboard/build/base_configuration.gypi.
#
# starboard/build/cobalt_configuration includes this file automatically in all
# .gyp files processed by starboard/build/gyp_cobalt.
{
'variables': {
# Cobalt variables.
# We need to define some variables inside of an inner 'variables' scope
# so that they can be referenced by other outer variables here. Also, it
# allows for the specification of default values that get referenced by
# a top level scope.
'variables': {
'cobalt_webapi_extension_source_idl_files%': [],
'cobalt_webapi_extension_generated_header_idl_files%': [],
'cobalt_v8_enable_embedded_builtins%': 1,
},
# Whether Cobalt is being built.
'cobalt': 1,
# Contains the current build configuration.
'cobalt_config%': 'gold',
'cobalt_fastbuild%': 0,
# Enable support for the map to mesh filter, which is primarily used to
# implement spherical video playback.
# This setting is deprecated in favor of the cobalt graphics extension
# (CobaltGraphicsExtensionApi) function `IsMapToMeshEnabled()`.
# If the CobaltGraphicsExtensionApi is not implemented, then Cobalt will
# fall back onto a default. For starboard API versions 12 and later, the
# default is true (i.e. Cobalt will assume map to mesh is supported).
# For earlier starboard API versions, if this gyp variable is redefined to
# a value other than -1, it will use the new value as the default. If it is
# not redefined, the default is false.
'enable_map_to_mesh%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltUserOnExitStrategy instead.
# This variable defines what Cobalt's preferred strategy should be for
# handling internally triggered application exit requests (e.g. the user
# chooses to back out of the application).
# 'stop' -- The application should call SbSystemRequestStop() on exit,
# resulting in a complete shutdown of the application.
# 'suspend' -- The application should call SbSystemRequestSuspend() on
# exit, resulting in the application being "minimized".
# 'noexit' -- The application should never allow the user to trigger an
# exit, this will be managed by the system.
'cobalt_user_on_exit_strategy%': '',
# Contains the current font package selection. This can be used to trade
# font quality, coverage, and latency for different font package sizes.
# The font package can be one of the following options:
# 'standard' -- The default package. It includes all sans-serif, serif,
# and FCC fonts, non-CJK fallback fonts in both 'normal' and
# 'bold' weights, 'normal' weight CJK ('bold' weight CJK is
# synthesized from it), historic script fonts, and color
# emojis. This package is ~38.3MB.
# 'limited' -- A significantly smaller package than 'standard'. This
# package removes all but 'normal' and 'bold' weighted
# sans-serif and serif, removes the FCC fonts (which must be
# provided by the system or downloaded from the web),
# replaces standard CJK with low quality CJK, removes
# historic script fonts, and replaces colored emojis with
# uncolored ones. Because low quality CJK cannot synthesize
# bold, bold glyphs are unavailable in Chinese, Japanese and
# Korean. This package is ~8.3MB.
# 'minimal' -- The smallest possible font package. It only includes
# Roboto's Basic Latin characters. Everything else must be
# provided by the system or downloaded from the web. This
# package is ~40.0KB.
# NOTE: When bold is needed, but unavailable, it is typically synthesized,
# resulting in lower quality glyphs than those generated directly from
# a bold font. However, this does not occur with low quality CJK,
# which is not high enough quality to synthesize. Its glyphs always
# have a 'normal' weight.
'cobalt_font_package%': 'standard',
# Font package overrides can be used to modify the files included within the
# selected package. The following values are available:
# -1 -- The package value for the specified category is not overridden.
# 0 -- The package value is overridden and no fonts for the specified
# category are included.
# 1 -- The package value is overridden and fonts from the specified
# category with a weight of 'normal' and a style of 'normal' are
# included.
# 2 -- The package value is overridden and fonts from the specified
# category with a weight of either 'normal' or bold' and a style of
# 'normal' are included.
# 3 -- The package value is overridden and fonts from the specified
# category with a weight of either 'normal' or 'bold' and a style of
# either 'normal' or 'italic' are included.
# 4 -- The package value is overridden and all available fonts from the
# specified category are included. This may include additional
# weights beyond 'normal' and 'bold'.
# See content/fonts/README.md for details on the specific values used by
# each of the packages use for the various font categories.
'cobalt_font_package_override_named_sans_serif%': -1,
'cobalt_font_package_override_named_serif%': -1,
'cobalt_font_package_override_named_fcc_fonts%': -1,
'cobalt_font_package_override_fallback_lang_non_cjk%': -1,
'cobalt_font_package_override_fallback_lang_cjk%': -1,
'cobalt_font_package_override_fallback_lang_cjk_low_quality%': -1,
'cobalt_font_package_override_fallback_historic%': -1,
'cobalt_font_package_override_fallback_color_emoji%': -1,
'cobalt_font_package_override_fallback_emoji%': -1,
'cobalt_font_package_override_fallback_symbols%': -1,
# Build version number.
'cobalt_version%': '<(BUILD_NUMBER)',
'cobalt_licenses_platform%': 'default',
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltRasterizerType instead.
# Defines what kind of rasterizer will be used. This can be adjusted to
# force a stub graphics implementation.
# It can be one of the following options:
# 'direct-gles' -- Uses a light wrapper over OpenGL ES to handle most
# draw elements. This will fall back to the skia hardware
# rasterizer for some render tree node types, but is
# generally faster on the CPU and GPU. This can handle
# 360 rendering.
# 'hardware' -- As much hardware acceleration of graphics commands as
# possible. This uses skia to wrap OpenGL ES commands.
# Required for 360 rendering.
# 'stub' -- Stub graphics rasterization. A rasterizer object will
# still be available and valid, but it will do nothing.
'rasterizer_type%': '',
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltRenderDirtyRegionOnly instead.
# If set to 1, will enable support for rendering only the regions of the
# display that are modified due to animations, instead of re-rendering the
# entire scene each frame. This feature can reduce startup time where
# usually there is a small loading spinner animating on the screen. On GLES
# renderers, Cobalt will attempt to implement this support by using
# eglSurfaceAttrib(..., EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED), otherwise
# the dirty region will be silently disabled. On Blitter API platforms,
# if this is enabled, we explicitly create an extra offscreen full-size
# intermediate surface to render into. Note that some GLES driver
# implementations may internally allocate an extra full screen surface to
# support this feature, and many have been noticed to not properly support
# this functionality (but they report that they do), and for these reasons
# this value is defaulted to 0.
'render_dirty_region_only%': -1,
# Override this value to adjust the default rasterizer setting for your
# platform.
'default_renderer_options_dependency%': '<(DEPTH)/cobalt/renderer/default_options_starboard.gyp:default_options',
# NOTE: Web Extension support is deprecated. Please use Platform Services
# (cobalt/doc/platform_services.md) instead.
#
# Override this to inject a custom interface into Cobalt's JavaScript
# `window` global object. This implies that you will have to provide your
# own IDL files to describe that interface and all interfaces that it
# references. See cobalt/doc/webapi_extension.md for more information.
'cobalt_webapi_extension_source_idl_files%': [
'<@(cobalt_webapi_extension_source_idl_files)',
],
# Override this to have Cobalt build IDL files that result in generated
# header files that may need to be included from other C++ source files.
# This includes, for example, IDL enumerations. See
# cobalt/doc/webapi_extension.md for more information.
'cobalt_webapi_extension_generated_header_idl_files%': [
'<@(cobalt_webapi_extension_generated_header_idl_files)',
],
# This gyp target must implement the functions defined in
# <(DEPTH)/cobalt/browser/idl_extensions.h. See
# cobalt/doc/webapi_extension.md for more information.
'cobalt_webapi_extension_gyp_target%':
'<(DEPTH)/cobalt/browser/null_webapi_extension.gyp:null_webapi_extension',
# Allow throttling of the frame rate. This is expressed in terms of
# milliseconds and can be a floating point number. Keep in mind that
# swapping frames may take some additional processing time, so it may be
# better to specify a lower delay. For example, '33' instead of '33.33'
# for 30 Hz refresh. This value is deprecated in favor of the usage of
# CobaltExtensionGraphicsApi::GetMinimumFrameIntervalInMilliseconds API.
# The default value has been moved into cobalt/renderer/pipeline.cc.
'cobalt_minimum_frame_time_in_milliseconds%': '-1',
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltEglSwapInterval instead.
# Cobalt will call eglSwapInterval() and specify this value before calling
# eglSwapBuffers() each frame.
'cobalt_egl_swap_interval%': -1,
# Set to 1 to build with DIAL support.
'in_app_dial%': 0,
# Set to 1 to enable a custom MediaSessionClient.
'custom_media_session_client%': 0,
# Set to 1 to enable H5vccAccountManager.
'enable_account_manager%': 0,
# Set to 1 to enable H5vccCrashLog.
'enable_crash_log%': 1,
# Set to 1 to enable H5vccSSO (Single Sign On).
'enable_sso%': 0,
# Set to 1 to enable filtering of HTTP headers before sending.
'enable_xhr_header_filtering%': 0,
# Set to 1 to enable setting Interceptors on the URLRequestJobFactory
'enable_configure_request_job_factory%': 0,
# List of platform-specific targets that get compiled into cobalt.
'cobalt_platform_dependencies%': [],
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltFallbackSplashScreenUrl instead.
# The URL of default build time splash screen - see
# cobalt/doc/splash_screen.md for information about this.
'fallback_splash_screen_url%': '',
# The path to a splash screen to copy into content/data/web which can be
# accessed via a file URL starting with
# "file:///cobalt/browser/splash_screen/". If '', no file is copied.
'cobalt_splash_screen_file%': '',
# Some compiler can not compile with raw assembly(.S files) and v8
# converts asm to inline assembly for these platforms.
'cobalt_v8_emit_builtins_as_inline_asm%': 1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltEnableQuic instead.
'cobalt_enable_quic%': -1,
# Cache parameters
# Deprecated. These can now be configured by implementing
# the corresponding function in the CobaltExtensionConfigurationApi.
# The following set of parameters define how much memory is reserved for
# different Cobalt caches. These caches affect CPU *and* GPU memory usage.
#
# The sum of the following caches effectively describes the maximum GPU
# texture memory usage (though it doesn't consider video textures and
# display color buffers):
# - skia_cache_size_in_bytes (GLES2 rasterizer only)
# - image_cache_size_in_bytes
# - skia_glyph_atlas_width * skia_glyph_atlas_height
#
# The other caches affect CPU memory usage.
# Determines the capacity of the skia cache. The Skia cache is maintained
# within Skia and is used to cache the results of complicated effects such
# as shadows, so that Skia draw calls that are used repeatedly across
# frames can be cached into surfaces. This setting is only relevant when
# using the hardware-accelerated Skia rasterizer (e.g. as opposed to the
# Blitter API).
'skia_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltOffscreenTargetCacheSizeInBytes instead.
# Determines the amount of GPU memory the offscreen target atlases will
# use. This is specific to the direct-GLES rasterizer and caches any render
# tree nodes which require skia for rendering. Two atlases will be allocated
# from this memory or multiple atlases of the frame size if the limit
# allows. It is recommended that enough memory be reserved for two RGBA
# atlases about a quarter of the frame size.
'offscreen_target_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltEncodedImageCacheSizeInBytes instead.
# Determines the capacity of the encoded image cache, which manages encoded
# images downloaded from a web page. These images are cached within CPU
# memory. This not only reduces network traffic to download the encoded
# images, but also allows the downloaded images to be held during suspend.
# Note that there is also a cache for the decoded images whose capacity is
# specified in |image_cache_size_in_bytes|. The decoded images are often
# cached in the GPU memory and will be released during suspend.
#
# If a system meet the following requirements:
# 1. Has a fast image decoder.
# 2. Has enough CPU memory, or has a unified memory architecture that allows
# sharing of CPU and GPU memory.
# Then it may consider to set |encoded_image_cache_size_in_bytes| to a much
# bigger value, and set the value of |image_cache_size_in_bytes| to a much
# smaller value. This allows the app to cache significant more images.
#
# Set this to 0 can disable the cache completely.
'encoded_image_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltImageCacheSizeInBytes instead.
# Determines the capacity of the image cache, which manages image surfaces
# downloaded from a web page. While it depends on the platform, often (and
# ideally) these images are cached within GPU memory.
# Set to -1 to automatically calculate the value at runtime, based on
# features like windows dimensions and the value of
# SbSystemGetTotalGPUMemory().
'image_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltLocalTypeFaceCacheSizeInBytes instead.
# Determines the capacity of the local font cache, which manages all fonts
# loaded from local files. Newly encountered sections of font files are
# lazily loaded into the cache, enabling subsequent requests to the same
# file sections to be handled via direct memory access. Once the limit is
# reached, further requests are handled via file stream.
# Setting the value to 0 disables memory caching and causes all font file
# accesses to be done using file streams.
'local_font_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltRemoteTypefaceCacheSizeInBytes instead.
# Determines the capacity of the remote font cache, which manages all
# fonts downloaded from a web page.
'remote_font_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltMeshCacheSizeInBytes instead.
# Determines the capacity of the mesh cache. Each mesh is held compressed
# in main memory, to be inflated into a GPU buffer when needed for
# projection. When set to 'auto', will be adjusted according to whether
# the enable_map_to_mesh is true or not. If enable_map_to_mesh is false,
# then the mesh cache size will be set to 0.
'mesh_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltSoftwareSurfaceCacheSizeInBytes instead.
# Only relevant if you are using the Blitter API.
# Determines the capacity of the software surface cache, which is used to
# cache all surfaces that are rendered via a software rasterizer to avoid
# re-rendering them.
'software_surface_cache_size_in_bytes%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltImageCacheCapactityMultiplierWhenPlayingVideo.
# Modifying this value to be non-1.0f will result in the image cache
# capacity being cleared and then temporarily reduced for the duration that
# a video is playing. This can be useful for some platforms if they are
# particularly constrained for (GPU) memory during video playback. When
# playing a video, the image cache is reduced to:
# image_cache_size_in_bytes *
# image_cache_capacity_multiplier_when_playing_video.
'image_cache_capacity_multiplier_when_playing_video%': '',
# Deprecated. Implement the CobaltExtensionConfigurationApi functions
# CobaltSkiaGlyphAtlasWidth and CobaltSkiaGlyphAtlasHeight, respectively.
# Determines the size in pixels of the glyph atlas where rendered glyphs are
# cached. The resulting memory usage is 2 bytes of GPU memory per pixel.
# When a value is used that is too small, thrashing may occur that will
# result in visible stutter. Such thrashing is more likely to occur when CJK
# language glyphs are rendered and when the size of the glyphs in pixels is
# larger, such as for higher resolution displays.
# The negative default values indicates to the engine that these settings
# should be automatically set.
'skia_glyph_atlas_width%': '-1',
'skia_glyph_atlas_height%': '-1',
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltJsGarbageCollectionThresholdInBytes instead.
# Determines the size of garbage collection threshold. After this many
# bytes have been allocated, the SpiderMonkey garbage collector will run.
# Lowering this has been found to reduce performance and decrease
# JavaScript memory usage. For example, we have measured on at least one
# platform that performance becomes 7% worse on average in certain cases
# when adjusting this number from 8MB to 1MB.
'mozjs_garbage_collection_threshold_in_bytes%': -1,
# Max Cobalt CPU usage specifies that the cobalt program should
# keep it's size below the specified size.
# This setting is deprecated. Implement starboard API function
# SbSystemGetTotalCPUMemory() instead.
'max_cobalt_cpu_usage%': -1,
# Max Cobalt GPU usage specifies that the cobalt program should
# keep it's size below the specified size.
# This setting is deprecated. Implement starboard API function
# SbSystemGetTotalGPUMemory() instead.
'max_cobalt_gpu_usage%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltReduceCpuMemoryBy instead.
# When specified this value will reduce the cpu memory consumption by
# the specified amount. -1 disables the value.
# When this value is specified then max_cobalt_cpu_usage will not be
# used in memory_constrainer, but will still be used for triggering
# a warning if the engine consumes more memory than this value specifies.
'reduce_cpu_memory_by%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltReduceGpuMemoryBy instead.
# When specified this value will reduce the gpu memory consumption by
# the specified amount. -1 disables the value.
# When this value is specified then max_cobalt_gpu_usage will not be
# used in memory_constrainer, but will still be used for triggering
# a warning if the engine consumes more memory than this value specifies.
'reduce_gpu_memory_by%': -1,
# Note: Ideally, |javascript_engine| would live here, however due to weird
# gyp variable usage in bindings gyp files (that if we removed, would
# result in large code duplication), we have to define it in the python gyp
# platform files instead. See "starboard/build/platform_configuration.py"
# for its documentation.
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltEnableJit instead.
'cobalt_enable_jit%': -1,
# Deprecated. Implement the CobaltExtensionConfigurationApi function
# CobaltGcZeal instead.
# Can be set to enable zealous garbage collection, if |javascript_engine|
# supports it. Zealous garbage collection will cause garbage collection
# to occur much more frequently than normal, for the purpose of finding or
# reproducing bugs.
'cobalt_gc_zeal%': -1,
# The cobalt_media_* variables defined below are deprecated. Their
# corresponding Starboard functions should be defined instead of setting
# their values through GYP.
# This can be set to "memory" or "file". When it is set to "memory", the
# media buffers will be stored in main memory allocated by SbMemory
# functions. When it is set to "file", the media buffers will be stored in
# a temporary file in the system cache folder acquired by calling
# SbSystemGetPath() with "kSbSystemPathCacheDirectory". Note that when its
# value is "file" the media stack will still allocate memory to cache the
# the buffers in use.
'cobalt_media_buffer_storage_type%': '',
# When either |cobalt_media_buffer_initial_capacity| or
# |cobalt_media_buffer_allocation_unit| isn't zero, media buffers will be
# allocated using a memory pool. Set the following variable to 1 to
# allocate the media buffer pool memory on demand and return all memory to
# the system when there is no media buffer allocated. Setting the following
# value to 0 results in that Cobalt will allocate
# |cobalt_media_buffer_initial_capacity| bytes for media buffer on startup
# and will not release any media buffer memory back to the system even if
# there is no media buffers allocated.
'cobalt_media_buffer_pool_allocate_on_demand%': -1,
# The amount of memory that will be used to store media buffers allocated
# during system startup. To allocate a large chunk at startup helps with
# reducing fragmentation and can avoid failures to allocate incrementally.
# This can be set to 0.
'cobalt_media_buffer_initial_capacity%': -1,
# The maximum amount of memory that will be used to store media buffers when
# video resolution is no larger than 1080p. This must be larger than sum of
# 1080p video budget and non-video budget.
'cobalt_media_buffer_max_capacity_1080p%': -1,
# The maximum amount of memory that will be used to store media buffers when
# video resolution is 4k. If 0, then memory can grow without bound. This
# must be larger than sum of 4k video budget and non-video budget.
'cobalt_media_buffer_max_capacity_4k%': -1,
# When the media stack needs more memory to store media buffers, it will
# allocate extra memory in units of |cobalt_media_buffer_allocation_unit|.
# This can be set to 0, in which case the media stack will allocate extra
# memory on demand. When |cobalt_media_buffer_initial_capacity| and this
# value are both set to 0, the media stack will allocate individual buffers
# directly using SbMemory functions.
'cobalt_media_buffer_allocation_unit%': -1,
# The media buffer will be allocated using the following alignment. Set
# this to a larger value may increase the memory consumption of media
# buffers.
'cobalt_media_buffer_alignment%': -1,
# Extra bytes allocated at the end of a media buffer to ensure that the
# buffer can be use optimally by specific instructions like SIMD. Set to 0
# to remove any padding.
'cobalt_media_buffer_padding%': -1,
# The memory used when playing mp4 videos that is not in DASH format. The
# resolution of such videos shouldn't go beyond 1080p. Its value should be
# less than the sum of 'cobalt_media_buffer_non_video_budget' and
# 'cobalt_media_buffer_video_budget_1080p' but not less than 8 MB.
'cobalt_media_buffer_progressive_budget%': -1,
# Specifies the maximum amount of memory used by audio or text buffers of
# media source before triggering a garbage collection. A large value will
# cause more memory being used by audio buffers but will also make
# JavaScript app less likely to re-download audio data. Note that the
# JavaScript app may experience significant difficulty if this value is too
# low.
'cobalt_media_buffer_non_video_budget%': -1,
# Specifies the maximum amount of memory used by video buffers of media
# source before triggering a garbage collection when the video resolution is
# lower than 1080p (1920x1080). A large value will cause more memory being
# used by video buffers but will also make JavaScript app less likely to
# re-download video data. Note that the JavaScript app may experience
# significant difficulty if this value is too low.
'cobalt_media_buffer_video_budget_1080p%': -1,
# Specifies the maximum amount of memory used by video buffers of media
# source before triggering a garbage collection when the video resolution is
# lower than 4k (3840x2160). A large value will cause more memory being
# used by video buffers but will also make JavaScript app less likely to
# re-download video data. Note that the JavaScript app may experience
# significant difficulty if this value is too low.
'cobalt_media_buffer_video_budget_4k%': -1,
# Specifies the duration threshold of media source garbage collection. When
# the accumulated duration in a source buffer exceeds this value, the media
# source implementation will try to eject existing buffers from the cache.
# This is usually triggered when the video being played has a simple content
# and the encoded data is small. In such case this can limit how much is
# allocated for the book keeping data of the media buffers and avoid OOM of
# system heap.
# This should be set to 170 for most of the platforms. But it can be
# further reduced on systems with extremely low memory.
'cobalt_media_source_garbage_collection_duration_threshold_in_seconds%': -1,
'defines_debug': [
'ALLOCATOR_STATS_TRACKING',
'COBALT_BOX_DUMP_ENABLED',
'COBALT_BUILD_TYPE_DEBUG',
'COBALT_ENABLE_JAVASCRIPT_ERROR_LOGGING',
'COBALT_ENABLE_VERSION_COMPATIBILITY_VALIDATIONS',
'COBALT_SECURITY_SCREEN_CLEAR_TO_UGLY_COLOR',
'ENABLE_DEBUG_COMMAND_LINE_SWITCHES',
'ENABLE_DEBUG_C_VAL',
'ENABLE_IGNORE_CERTIFICATE_ERRORS',
'ENABLE_PARTIAL_LAYOUT_CONTROL',
'ENABLE_TEST_DATA',
'ENABLE_TEST_RUNNER',
'ENABLE_TOKEN_ALPHABETICAL_SORTING',
# TODO: Rename to COBALT_LOGGING_ENABLED.
'__LB_SHELL__FORCE_LOGGING__',
'SK_DEVELOPER',
],
'defines_devel': [
'ALLOCATOR_STATS_TRACKING',
'COBALT_BUILD_TYPE_DEVEL',
'COBALT_ENABLE_JAVASCRIPT_ERROR_LOGGING',
'COBALT_ENABLE_VERSION_COMPATIBILITY_VALIDATIONS',
'COBALT_SECURITY_SCREEN_CLEAR_TO_UGLY_COLOR',
'ENABLE_DEBUG_COMMAND_LINE_SWITCHES',
'ENABLE_DEBUG_C_VAL',
'ENABLE_IGNORE_CERTIFICATE_ERRORS',
'ENABLE_PARTIAL_LAYOUT_CONTROL',
'ENABLE_TEST_DATA',
'ENABLE_TEST_RUNNER',
'ENABLE_TOKEN_ALPHABETICAL_SORTING',
'__LB_SHELL__FORCE_LOGGING__',
'SK_DEVELOPER',
],
'defines_qa': [
'ALLOCATOR_STATS_TRACKING',
'COBALT_BUILD_TYPE_QA',
'COBALT_ENABLE_JAVASCRIPT_ERROR_LOGGING',
'COBALT_SECURITY_SCREEN_CLEAR_TO_UGLY_COLOR',
'ENABLE_DEBUG_COMMAND_LINE_SWITCHES',
'ENABLE_DEBUG_C_VAL',
'ENABLE_IGNORE_CERTIFICATE_ERRORS',
'ENABLE_PARTIAL_LAYOUT_CONTROL',
'ENABLE_TEST_DATA',
'ENABLE_TEST_RUNNER',
],
'defines_gold': [
'ALLOCATOR_STATS_TRACKING',
'COBALT_BUILD_TYPE_GOLD',
'COBALT_FORCE_CSP',
'COBALT_FORCE_HTTPS',
'OFFICIAL_BUILD', # Chromium base relies on this.
'TRACING_DISABLED',
],
},
'target_defaults': {
'defines': [
'COBALT',
],
'conditions': [
['cobalt_media_buffer_pool_allocate_on_demand != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_POOL_ALLOCATE_ON_DEMAND=<(cobalt_media_buffer_pool_allocate_on_demand)',
],
}],
['cobalt_media_buffer_initial_capacity != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_INITIAL_CAPACITY=<(cobalt_media_buffer_initial_capacity)',
],
}],
['cobalt_media_buffer_max_capacity_1080p != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_MAX_CAPACITY_1080P=<(cobalt_media_buffer_max_capacity_1080p)',
],
}],
['cobalt_media_buffer_max_capacity_4k != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_MAX_CAPACITY_4K=<(cobalt_media_buffer_max_capacity_4k)',
],
}],
['cobalt_media_buffer_max_capacity_4k != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_MAX_CAPACITY_4K=<(cobalt_media_buffer_max_capacity_4k)',
],
}],
['cobalt_media_buffer_max_capacity_4k != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_MAX_CAPACITY_4K=<(cobalt_media_buffer_max_capacity_4k)',
],
}],
['cobalt_media_buffer_allocation_unit != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_ALLOCATION_UNIT=<(cobalt_media_buffer_allocation_unit)',
],
}],
['cobalt_media_buffer_alignment != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_ALIGNMENT=<(cobalt_media_buffer_alignment)',
],
}],
['cobalt_media_buffer_padding != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_PADDING=<(cobalt_media_buffer_padding)',
],
}],
['cobalt_media_buffer_progressive_budget != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_PROGRESSIVE_BUDGET=<(cobalt_media_buffer_progressive_budget)',
],
}],
['cobalt_media_buffer_non_video_budget != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_NON_VIDEO_BUDGET=<(cobalt_media_buffer_non_video_budget)',
],
}],
['cobalt_media_buffer_video_budget_1080p != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_VIDEO_BUDGET_1080P=<(cobalt_media_buffer_video_budget_1080p)',
],
}],
['cobalt_media_buffer_video_budget_4k != -1', {
'defines': [
'COBALT_MEDIA_BUFFER_VIDEO_BUDGET_4K=<(cobalt_media_buffer_video_budget_4k)',
],
}],
['cobalt_media_source_garbage_collection_duration_threshold_in_seconds != -1', {
'defines': [
'COBALT_MEDIA_SOURCE_GARBAGE_COLLECTION_DURATION_THRESHOLD_IN_SECONDS=<(cobalt_media_source_garbage_collection_duration_threshold_in_seconds)',
],
}],
['cobalt_media_buffer_storage_type == "memory"', {
'defines': [
'COBALT_MEDIA_BUFFER_STORAGE_TYPE_MEMORY=1',
],
}, {
'conditions': [
['cobalt_media_buffer_storage_type != ""', {
'defines': [
'COBALT_MEDIA_BUFFER_STORAGE_TYPE_FILE=1',
],
}],
],
}],
['in_app_dial == 1', {
'defines': [
'DIAL_SERVER',
],
}],
['enable_debugger == 1', {
'defines': [
'ENABLE_DEBUGGER',
],
}],
['host_os=="win"', {
# A few flags to mute MSVC compiler errors that does not appear on Linux.
'compiler_flags_host': [
'/wd4267', # Possible loss of precision from size_t to a smaller type.
'/wd4715', # Not all control paths return value.
],
}],
],
}, # end of target_defaults
# For configurations other than Gold, set the flag that lets test data files
# be copied and carried along with the build.
# Clients must copy over all content; to avoid having to copy over extra data, we
# omit the test data
'conditions': [
['cobalt_config != "gold"', {
'variables' : {
'enable_about_scheme': 1,
'enable_fake_microphone': 1,
'enable_network_logging': 1,
'enable_webdriver%': 1,
},
},
{
'variables' : {
'enable_about_scheme': 0,
'enable_fake_microphone': 0,
'enable_network_logging': 0,
'enable_webdriver': 0,
},
}],
['cobalt_config != "gold"', {
'variables' : {
'cobalt_copy_test_data': 1,
},
},
{
'variables' : {
'cobalt_copy_test_data': 0,
},
}],
],
}