blob: b54d5444802f2ef4fbc3a663e758241698e0ee74 [file] [log] [blame]
# Copyright 2014 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.
# Modifications Copyright 2017 Google Inc. 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.
import("//cobalt/build/config/base.gni")
# TODO: split out into relevant subdirectories
config("compiler_defaults") {
if (cobalt_media_buffer_pool_allocate_on_demand) {
allocate_on_demand = 1
} else {
allocate_on_demand = 0
}
defines = [
"COBALT",
"COBALT_MEDIA_BUFFER_POOL_ALLOCATE_ON_DEMAND=$allocate_on_demand",
"COBALT_MEDIA_BUFFER_INITIAL_CAPACITY=$cobalt_media_buffer_initial_capacity",
"COBALT_MEDIA_BUFFER_MAX_CAPACITY_1080p=$cobalt_media_buffer_max_capacity_1080p",
"COBALT_MEDIA_BUFFER_MAX_CAPACITY_4K=$cobalt_media_buffer_max_capacity_4k",
"COBALT_MEDIA_BUFFER_ALLOCATION_UNIT=$cobalt_media_buffer_allocation_unit",
"COBALT_MEDIA_BUFFER_ALIGNMENT=$cobalt_media_buffer_alignment",
"COBALT_MEDIA_BUFFER_PADDING=$cobalt_media_buffer_padding",
"COBALT_MEDIA_BUFFER_PROGRESSIVE_BUDGET=$cobalt_media_buffer_progressive_budget",
"COBALT_MEDIA_BUFFER_NON_VIDEO_BUDGET=$cobalt_media_buffer_non_video_budget",
"COBALT_MEDIA_BUFFER_VIDEO_BUDGET_1080P=$cobalt_media_buffer_video_budget_1080p",
"COBALT_MEDIA_BUFFER_VIDEO_BUDGET_4K=$cobalt_media_buffer_video_budget_4k",
"COBALT_MEDIA_SOURCE_GARBAGE_COLLECTION_DURATION_THRESHOLD_IN_SECONDS=$cobalt_media_source_garbage_collection_duration_threshold_in_seconds",
# From common.gypi
"USE_OPENSSL=1",
]
include_dirs = [ "//" ]
if (cobalt_use_media_source_2016) {
defines += [ "COBALT_MEDIA_SOURCE_2016=1" ]
} else {
defines += [ "COBALT_MEDIA_SOURCE_2012=1" ]
}
if (cobalt_media_buffer_storage_type == "memory") {
defines += [ "COBALT_MEDIA_BUFFER_STORAGE_TYPE_MEMORY=1" ]
} else {
defines += [ "COBALT_MEDIA_BUFFER_STORAGE_TYPE_FILE=1" ]
}
if (enable_in_app_dial) {
defines += [ "DIAL_SERVER" ]
}
if (!enable_spdy) {
defines += [ "COBALT_DISABLE_SPDY" ]
}
}
config("final_executable_target_config") {
# XXX: ideally this config would only apply when we are compiling targets
# for the target platform. We try to check for that here, however, this check
# is ineffective when default_toolchain happens to be the same as
# host_toolchain.
# Therefore, **targets which should be compiled for the host must remove this
# config from their list of configs.**
if (current_toolchain == default_toolchain &&
final_executable_type == "shared_library") {
defines = [
# Rewrite main() functions into StarboardMain. TODO: This is a
# hack, it would be better to be more surgical, here.
"main=StarboardMain",
]
cflags = [
# To link into a shared library on Linux and similar platforms,
# the compiler must be told to generate Position Independent Code.
# This appears to cause errors when linking the code statically,
# however.
"-fPIC",
]
}
}
config("compiler_defaults_debug") {
defines = [
"ALLOCATOR_STATS_TRACKING",
"COBALT_BOX_DUMP_ENABLED",
"COBALT_BUILD_TYPE_DEBUG",
"COBALT_ENABLE_JAVASCRIPT_ERROR_LOGGING",
"COBALT_SECURITY_SCREEN_CLEAR_TO_UGLY_COLOR",
"_DEBUG",
"ENABLE_DEBUG_COMMAND_LINE_SWITCHES",
"ENABLE_DEBUG_C_VAL",
"ENABLE_DEBUG_CONSOLE",
"ENABLE_IGNORE_CERTIFICATE_ERRORS",
"ENABLE_PARTIAL_LAYOUT_CONTROL",
"ENABLE_TEST_DATA",
"ENABLE_TEST_RUNNER",
"__LB_SHELL__ENABLE_SCREENSHOT__",
"__LB_SHELL__FORCE_LOGGING__", # TODO: Rename to COBALT_LOGGING_ENABLED.
"SK_DEVELOPER",
]
}
config("compiler_defaults_devel") {
defines = [
"_DEBUG",
"ALLOCATOR_STATS_TRACKING",
"COBALT_BUILD_TYPE_DEVEL",
"COBALT_ENABLE_JAVASCRIPT_ERROR_LOGGING",
"COBALT_SECURITY_SCREEN_CLEAR_TO_UGLY_COLOR",
"ENABLE_DEBUG_COMMAND_LINE_SWITCHES",
"ENABLE_DEBUG_C_VAL",
"ENABLE_DEBUG_CONSOLE",
"ENABLE_IGNORE_CERTIFICATE_ERRORS",
"ENABLE_PARTIAL_LAYOUT_CONTROL",
"ENABLE_TEST_DATA",
"ENABLE_TEST_RUNNER",
"__LB_SHELL__ENABLE_SCREENSHOT__",
"__LB_SHELL__FORCE_LOGGING__",
"SK_DEVELOPER",
]
}
config("compiler_defaults_qa") {
defines = [
"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_DEBUG_CONSOLE",
"ENABLE_IGNORE_CERTIFICATE_ERRORS",
"ENABLE_PARTIAL_LAYOUT_CONTROL",
"ENABLE_TEST_DATA",
"ENABLE_TEST_RUNNER",
"__LB_SHELL__ENABLE_SCREENSHOT__",
"NDEBUG",
]
}
config("compiler_defaults_gold") {
defines = [
"ALLOCATOR_STATS_TRACKING",
"COBALT_BUILD_TYPE_GOLD",
"COBALT_FORCE_CSP",
"COBALT_FORCE_HTTPS",
"NDEBUG",
"TRACING_DISABLED",
]
}
config("chromium_code") {
defines = [
"__STDC_CONSTANT_MACROS",
"__STDC_FORMAT_MACROS",
]
}