blob: 3e17161e51b193bbca2b1aabdc52d4c7f0346b30 [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.
import("//starboard/build/config/fastbuild.gni")
import("//starboard/build/delegated_config.gni")
# =============================================================================
# DEFAULT COMPILER CONFIGS
# =============================================================================
config("compiler_defaults") {
cflags = [
# We'll pretend not to be Linux, but Starboard instead.
"-U__linux__",
"-Werror",
"-fcolor-diagnostics",
# Default visibility to hidden, to enable dead stripping.
"-fvisibility=hidden",
# Warn for implicit type conversions that may change a value.
"-Wconversion",
"-Wno-c++11-compat",
# This (rightfully) complains about "override", which we use heavily.
"-Wno-c++11-extensions",
# Warns on switches on enums that cover all enum values but also contain a
# default: branch. Chrome is full of that.
"-Wno-covered-switch-default",
# protobuf uses hash_map.
"-Wno-deprecated",
"-fno-exceptions",
# Don't warn about the "struct foo f = {0};" initialization pattern.
"-Wno-missing-field-initializers",
# Do not warn for implicit sign conversions.
"-Wno-sign-conversion",
"-fno-strict-aliasing", # See http://crbug.com/32204
# TODO(pkasting): In C++11 this is legal, so this should be removed when we
# change to that. (This is also why we don't bother fixing all these cases
# today.)
"-Wno-unnamed-type-template-args",
# Triggered by the COMPILE_ASSERT macro.
"-Wno-unused-local-typedef",
# Do not warn if a function or variable cannot be implicitly
# instantiated.
"-Wno-undefined-var-template",
]
defines = [
"__STDC_FORMAT_MACROS",
]
cflags_cc = [
"-std=gnu++11",
]
}
config("compiler_defaults_debug") {
cflags = []
if (!cobalt_use_fastbuild) {
cflags += [ "-g" ]
}
}
config("compiler_defaults_devel") {
cflags = []
if (!cobalt_use_fastbuild) {
cflags += [ "-g" ]
}
}
config("compiler_defaults_qa") {
cflags = [
"-gline-tables-only",
]
}
config("compiler_defaults_gold") {
cflags = [
"-gline-tables-only",
]
}
# =============================================================================
# DELEGATED CONFIGS
# =============================================================================
config("pedantic_warnings") {
cflags = [
"-Wall",
"-Wextra",
"-Wunreachable-code",
]
}
config("no_pedantic_warnings") {
cflags = [
# "this" pointer cannot be NULL...pointer may be assumed
# to always convert to true.
"-Wno-undefined-bool-conversion",
# Skia doesn't use overrides.
"-Wno-inconsistent-missing-override",
# Do not warn about unused function params.
"-Wno-unused-parameter",
# Do not warn for implicit type conversions that may change a value.
"-Wno-conversion",
# shifting a negative signed value is undefined
"-Wno-shift-negative-value",
# Width of bit-field exceeds width of its type- value will be truncated
"-Wno-bitfield-width",
]
}
delegated_config("optimizations") {
path = "//starboard/build/toolchain/linux/config"
prefixes = [ "no", "debuggable", "full" ]
generate_default = false
}
config("default_optimizations") {
if (cobalt_config == "debug") {
configs = [ ":no_optimizations" ]
} else {
configs = [ ":debuggable_optimizations" ]
}
}
delegated_config("rtti") {
path = "//starboard/build/toolchain/linux/config"
generate_default = false
}
config("default_rtti") {
if (cobalt_config == "debug" || cobalt_config == "devel") {
configs = [ ":rtti" ]
} else {
configs = [ ":no_rtti" ]
}
}
config("wexit_time_destructors") {
configs = [ "//starboard/build/toolchain/linux/config:wexit_time_destructors" ]
}
# =============================================================================
# starboard_platform TARGET
# =============================================================================
static_library("starboard_platform") {
sources = [
"//starboard/shared/starboard/application.cc",
"//starboard/shared/starboard/command_line.cc",
"//starboard/shared/starboard/command_line.h",
"//starboard/shared/starboard/event_cancel.cc",
"//starboard/shared/starboard/event_schedule.cc",
"//starboard/shared/starboard/file_mode_string_to_flags.cc",
"//starboard/shared/starboard/player/filter/stub_audio_decoder.cc",
"//starboard/shared/starboard/player/filter/stub_audio_decoder.h",
"//starboard/shared/starboard/player/filter/stub_player_components_factory.cc",
"//starboard/shared/starboard/player/filter/stub_video_decoder.cc",
"//starboard/shared/starboard/player/filter/stub_video_decoder.h",
"//starboard/shared/starboard/queue_application.cc",
"//starboard/shared/stub/accessibility_get_caption_settings.cc",
"//starboard/shared/stub/accessibility_get_display_settings.cc",
"//starboard/shared/stub/accessibility_get_text_to_speech_settings.cc",
"//starboard/shared/stub/atomic_public.h",
"//starboard/shared/stub/audio_sink_create.cc",
"//starboard/shared/stub/audio_sink_destroy.cc",
"//starboard/shared/stub/audio_sink_get_max_channels.cc",
"//starboard/shared/stub/audio_sink_get_nearest_supported_sample_frequency.cc",
"//starboard/shared/stub/audio_sink_is_audio_frame_storage_type_supported.cc",
"//starboard/shared/stub/audio_sink_is_audio_sample_type_supported.cc",
"//starboard/shared/stub/audio_sink_is_valid.cc",
"//starboard/shared/stub/byte_swap.cc",
"//starboard/shared/stub/character_is_alphanumeric.cc",
"//starboard/shared/stub/character_is_digit.cc",
"//starboard/shared/stub/character_is_hex_digit.cc",
"//starboard/shared/stub/character_is_space.cc",
"//starboard/shared/stub/character_is_upper.cc",
"//starboard/shared/stub/character_to_lower.cc",
"//starboard/shared/stub/character_to_upper.cc",
"//starboard/shared/stub/condition_variable_broadcast.cc",
"//starboard/shared/stub/condition_variable_create.cc",
"//starboard/shared/stub/condition_variable_destroy.cc",
"//starboard/shared/stub/condition_variable_signal.cc",
"//starboard/shared/stub/condition_variable_wait.cc",
"//starboard/shared/stub/condition_variable_wait_timed.cc",
"//starboard/shared/stub/cryptography_create_transformer.cc",
"//starboard/shared/stub/cryptography_destroy_transformer.cc",
"//starboard/shared/stub/cryptography_get_tag.cc",
"//starboard/shared/stub/cryptography_set_authenticated_data.cc",
"//starboard/shared/stub/cryptography_set_initialization_vector.cc",
"//starboard/shared/stub/cryptography_transform.cc",
"//starboard/shared/stub/directory_can_open.cc",
"//starboard/shared/stub/directory_close.cc",
"//starboard/shared/stub/directory_create.cc",
"//starboard/shared/stub/directory_get_next.cc",
"//starboard/shared/stub/directory_open.cc",
"//starboard/shared/stub/double_absolute.cc",
"//starboard/shared/stub/double_exponent.cc",
"//starboard/shared/stub/double_floor.cc",
"//starboard/shared/stub/double_is_finite.cc",
"//starboard/shared/stub/double_is_nan.cc",
"//starboard/shared/stub/drm_close_session.cc",
"//starboard/shared/stub/drm_create_system.cc",
"//starboard/shared/stub/drm_destroy_system.cc",
"//starboard/shared/stub/drm_generate_session_update_request.cc",
"//starboard/shared/stub/drm_get_metrics.cc",
"//starboard/shared/stub/drm_is_server_certificate_updatable.cc",
"//starboard/shared/stub/drm_system_internal.h",
"//starboard/shared/stub/drm_update_server_certificate.cc",
"//starboard/shared/stub/drm_update_session.cc",
"//starboard/shared/stub/file_atomic_replace.cc",
"//starboard/shared/stub/file_can_open.cc",
"//starboard/shared/stub/file_close.cc",
"//starboard/shared/stub/file_delete.cc",
"//starboard/shared/stub/file_exists.cc",
"//starboard/shared/stub/file_flush.cc",
"//starboard/shared/stub/file_get_info.cc",
"//starboard/shared/stub/file_get_path_info.cc",
"//starboard/shared/stub/file_open.cc",
"//starboard/shared/stub/file_read.cc",
"//starboard/shared/stub/file_seek.cc",
"//starboard/shared/stub/file_truncate.cc",
"//starboard/shared/stub/file_write.cc",
"//starboard/shared/stub/log.cc",
"//starboard/shared/stub/log_flush.cc",
"//starboard/shared/stub/log_format.cc",
"//starboard/shared/stub/log_is_tty.cc",
"//starboard/shared/stub/log_raw.cc",
"//starboard/shared/stub/log_raw_dump_stack.cc",
"//starboard/shared/stub/log_raw_format.cc",
"//starboard/shared/stub/media_can_play_mime_and_key_system.cc",
"//starboard/shared/stub/media_get_audio_configuration.cc",
"//starboard/shared/stub/media_get_audio_output_count.cc",
"//starboard/shared/stub/media_is_audio_supported.cc",
"//starboard/shared/stub/media_is_output_protected.cc",
"//starboard/shared/stub/media_is_supported.cc",
"//starboard/shared/stub/media_is_transfer_characteristics_supported.cc",
"//starboard/shared/stub/media_is_video_supported.cc",
"//starboard/shared/stub/media_set_output_protection.cc",
"//starboard/shared/stub/memory_allocate_aligned_unchecked.cc",
"//starboard/shared/stub/memory_allocate_unchecked.cc",
"//starboard/shared/stub/memory_compare.cc",
"//starboard/shared/stub/memory_copy.cc",
"//starboard/shared/stub/memory_find_byte.cc",
"//starboard/shared/stub/memory_flush.cc",
"//starboard/shared/stub/memory_free.cc",
"//starboard/shared/stub/memory_free_aligned.cc",
"//starboard/shared/stub/memory_get_stack_bounds.cc",
"//starboard/shared/stub/memory_map.cc",
"//starboard/shared/stub/memory_move.cc",
"//starboard/shared/stub/memory_reallocate_unchecked.cc",
"//starboard/shared/stub/memory_set.cc",
"//starboard/shared/stub/memory_unmap.cc",
"//starboard/shared/stub/microphone_close.cc",
"//starboard/shared/stub/microphone_create.cc",
"//starboard/shared/stub/microphone_destroy.cc",
"//starboard/shared/stub/microphone_get_available.cc",
"//starboard/shared/stub/microphone_is_sample_rate_supported.cc",
"//starboard/shared/stub/microphone_open.cc",
"//starboard/shared/stub/microphone_read.cc",
"//starboard/shared/stub/mutex_acquire.cc",
"//starboard/shared/stub/mutex_acquire_try.cc",
"//starboard/shared/stub/mutex_create.cc",
"//starboard/shared/stub/mutex_destroy.cc",
"//starboard/shared/stub/mutex_release.cc",
"//starboard/shared/stub/once.cc",
"//starboard/shared/stub/player_create.cc",
"//starboard/shared/stub/player_destroy.cc",
"//starboard/shared/stub/player_get_current_frame.cc",
"//starboard/shared/stub/player_get_preferred_output_mode.cc",
"//starboard/shared/stub/player_output_mode_supported.cc",
"//starboard/shared/stub/player_set_bounds.cc",
"//starboard/shared/stub/player_set_playback_rate.cc",
"//starboard/shared/stub/player_set_volume.cc",
"//starboard/shared/stub/player_write_end_of_stream.cc",
"//starboard/shared/stub/socket_accept.cc",
"//starboard/shared/stub/socket_bind.cc",
"//starboard/shared/stub/socket_clear_last_error.cc",
"//starboard/shared/stub/socket_connect.cc",
"//starboard/shared/stub/socket_create.cc",
"//starboard/shared/stub/socket_destroy.cc",
"//starboard/shared/stub/socket_free_resolution.cc",
"//starboard/shared/stub/socket_get_interface_address.cc",
"//starboard/shared/stub/socket_get_last_error.cc",
"//starboard/shared/stub/socket_get_local_address.cc",
"//starboard/shared/stub/socket_is_connected.cc",
"//starboard/shared/stub/socket_is_connected_and_idle.cc",
"//starboard/shared/stub/socket_join_multicast_group.cc",
"//starboard/shared/stub/socket_listen.cc",
"//starboard/shared/stub/socket_receive_from.cc",
"//starboard/shared/stub/socket_resolve.cc",
"//starboard/shared/stub/socket_send_to.cc",
"//starboard/shared/stub/socket_set_broadcast.cc",
"//starboard/shared/stub/socket_set_receive_buffer_size.cc",
"//starboard/shared/stub/socket_set_reuse_address.cc",
"//starboard/shared/stub/socket_set_send_buffer_size.cc",
"//starboard/shared/stub/socket_set_tcp_keep_alive.cc",
"//starboard/shared/stub/socket_set_tcp_no_delay.cc",
"//starboard/shared/stub/socket_set_tcp_window_scaling.cc",
"//starboard/shared/stub/socket_waiter_add.cc",
"//starboard/shared/stub/socket_waiter_create.cc",
"//starboard/shared/stub/socket_waiter_destroy.cc",
"//starboard/shared/stub/socket_waiter_remove.cc",
"//starboard/shared/stub/socket_waiter_wait.cc",
"//starboard/shared/stub/socket_waiter_wait_timed.cc",
"//starboard/shared/stub/socket_waiter_wake_up.cc",
"//starboard/shared/stub/speech_recognizer_cancel.cc",
"//starboard/shared/stub/speech_recognizer_create.cc",
"//starboard/shared/stub/speech_recognizer_destroy.cc",
"//starboard/shared/stub/speech_recognizer_is_supported.cc",
"//starboard/shared/stub/speech_recognizer_start.cc",
"//starboard/shared/stub/speech_recognizer_stop.cc",
"//starboard/shared/stub/speech_synthesis_cancel.cc",
"//starboard/shared/stub/speech_synthesis_is_supported.cc",
"//starboard/shared/stub/speech_synthesis_speak.cc",
"//starboard/shared/stub/storage_close_record.cc",
"//starboard/shared/stub/storage_delete_record.cc",
"//starboard/shared/stub/storage_get_record_size.cc",
"//starboard/shared/stub/storage_open_record.cc",
"//starboard/shared/stub/storage_read_record.cc",
"//starboard/shared/stub/storage_write_record.cc",
"//starboard/shared/stub/string_compare.cc",
"//starboard/shared/stub/string_compare_all.cc",
"//starboard/shared/stub/string_compare_no_case.cc",
"//starboard/shared/stub/string_compare_no_case_n.cc",
"//starboard/shared/stub/string_compare_wide.cc",
"//starboard/shared/stub/string_concat.cc",
"//starboard/shared/stub/string_concat_wide.cc",
"//starboard/shared/stub/string_copy.cc",
"//starboard/shared/stub/string_copy_wide.cc",
"//starboard/shared/stub/string_duplicate.cc",
"//starboard/shared/stub/string_find_character.cc",
"//starboard/shared/stub/string_find_last_character.cc",
"//starboard/shared/stub/string_find_string.cc",
"//starboard/shared/stub/string_format.cc",
"//starboard/shared/stub/string_format_wide.cc",
"//starboard/shared/stub/string_get_length.cc",
"//starboard/shared/stub/string_get_length_wide.cc",
"//starboard/shared/stub/string_parse_double.cc",
"//starboard/shared/stub/string_parse_signed_integer.cc",
"//starboard/shared/stub/string_parse_uint64.cc",
"//starboard/shared/stub/string_parse_unsigned_integer.cc",
"//starboard/shared/stub/string_scan.cc",
"//starboard/shared/stub/system_binary_search.cc",
"//starboard/shared/stub/system_break_into_debugger.cc",
"//starboard/shared/stub/system_clear_last_error.cc",
"//starboard/shared/stub/system_get_connection_type.cc",
"//starboard/shared/stub/system_get_device_type.cc",
"//starboard/shared/stub/system_get_error_string.cc",
"//starboard/shared/stub/system_get_last_error.cc",
"//starboard/shared/stub/system_get_locale_id.cc",
"//starboard/shared/stub/system_get_number_of_processors.cc",
"//starboard/shared/stub/system_get_path.cc",
"//starboard/shared/stub/system_get_property.cc",
"//starboard/shared/stub/system_get_random_data.cc",
"//starboard/shared/stub/system_get_random_uint64.cc",
"//starboard/shared/stub/system_get_stack.cc",
"//starboard/shared/stub/system_get_total_cpu_memory.cc",
"//starboard/shared/stub/system_get_total_gpu_memory.cc",
"//starboard/shared/stub/system_get_used_cpu_memory.cc",
"//starboard/shared/stub/system_get_used_gpu_memory.cc",
"//starboard/shared/stub/system_has_capability.cc",
"//starboard/shared/stub/system_hide_splash_screen.cc",
"//starboard/shared/stub/system_is_debugger_attached.cc",
"//starboard/shared/stub/system_raise_platform_error.cc",
"//starboard/shared/stub/system_request_pause.cc",
"//starboard/shared/stub/system_request_stop.cc",
"//starboard/shared/stub/system_request_suspend.cc",
"//starboard/shared/stub/system_request_unpause.cc",
"//starboard/shared/stub/system_sort.cc",
'//starboard/shared/stub/system_supports_resume.cc',
"//starboard/shared/stub/system_symbolize.cc",
"//starboard/shared/stub/thread_create.cc",
"//starboard/shared/stub/thread_create_local_key.cc",
"//starboard/shared/stub/thread_destroy_local_key.cc",
"//starboard/shared/stub/thread_detach.cc",
"//starboard/shared/stub/thread_get_current.cc",
"//starboard/shared/stub/thread_get_id.cc",
"//starboard/shared/stub/thread_get_local_value.cc",
"//starboard/shared/stub/thread_get_name.cc",
"//starboard/shared/stub/thread_is_equal.cc",
"//starboard/shared/stub/thread_join.cc",
"//starboard/shared/stub/thread_set_local_value.cc",
"//starboard/shared/stub/thread_set_name.cc",
"//starboard/shared/stub/thread_sleep.cc",
"//starboard/shared/stub/thread_types_public.h",
"//starboard/shared/stub/thread_yield.cc",
"//starboard/shared/stub/time_get_monotonic_now.cc",
"//starboard/shared/stub/time_get_monotonic_thread_now.cc",
"//starboard/shared/stub/time_get_now.cc",
"//starboard/shared/posix/time_is_time_thread_now_supported.cc",
"//starboard/shared/stub/time_zone_get_current.cc",
"//starboard/shared/stub/time_zone_get_dst_name.cc",
"//starboard/shared/stub/time_zone_get_name.cc",
"//starboard/shared/stub/user_get_current.cc",
"//starboard/shared/stub/user_get_property.cc",
"//starboard/shared/stub/user_get_signed_in.cc",
"//starboard/shared/stub/window_create.cc",
"//starboard/shared/stub/window_destroy.cc",
"//starboard/shared/stub/window_get_platform_handle.cc",
"//starboard/shared/stub/window_get_size.cc",
"//starboard/shared/stub/window_set_default_options.cc",
"application_stub.cc",
"application_stub.h",
"atomic_public.h",
"main.cc",
"thread_types_public.h",
]
# Include private stubs, if present.
private_sources = exec_script("//starboard/tools/find_private_files.py",
[
rebase_path("//", root_build_dir),
"shared/stub/*.cc",
],
"list lines",
[ "//starboard/private/shared/stub" ])
sources += rebase_path(private_sources, ".", root_build_dir)
defines = [ "STARBOARD_IMPLEMENTATION" ]
}