| # 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. |
| |
| # TODO: change to //starboard eventually |
| import("//cobalt/build/config/base.gni") |
| import("//starboard/build/delegated_config.gni") |
| |
| # ============================================================================= |
| # COMPILER DEFAULTS |
| # ============================================================================= |
| |
| # TODO: only set these defines on the files that actually need them |
| config("compiler_defaults") { |
| # The canonical way to detect Starboard is #if defined(STARBOARD). This |
| # should be defined both when building Starboard itself, and when building |
| # any other source file in a Starboard-based project. |
| defines = [ "STARBOARD" ] |
| |
| if (gl_type == "none") { |
| defines += [ "SB_GYP_GL_TYPE_IS_NONE=1" ] |
| } else { |
| defines += [ "SB_GYP_GL_TYPE_IS_NONE=0" ] |
| } |
| |
| if (abort_on_allocation_failure) { |
| defines += [ "SB_ABORT_ON_ALLOCATION_FAILURE" ] |
| } |
| |
| if (sb_allow_memory_tracking) { |
| defines += [ "STARBOARD_ALLOWS_MEMORY_TRACKING" ] |
| } |
| |
| if (sb_enable_lib) { |
| defines += [ "SB_IS_LIBRARY=1" ] |
| } |
| |
| # There doesn't appear to be any way to use the C preprocessor to do |
| # string concatenation with the / character. This prevents us from using |
| # the preprocessor to assemble an include file path, so we have to do |
| # the concatenation here in GN. |
| # http://stackoverflow.com/questions/29601786/c-preprocessor-building-a-path-string |
| defines += [ |
| "STARBOARD_ATOMIC_INCLUDE=\"$starboard_path/atomic_public.h\"", |
| "STARBOARD_CONFIGURATION_INCLUDE=\"$starboard_path/configuration_public.h\"", |
| "STARBOARD_THREAD_TYPES_INCLUDE=\"$starboard_path/thread_types_public.h\"", |
| ] |
| |
| # TODO: find a way to remove this dependence on Cobalt |
| if (sb_media_platform == "starboard") { |
| defines += [ "SB_GYP_CAN_MEDIA_USE_STARBOARD_PIPELINE=1" ] |
| } else { |
| defines += [ "SB_GYP_CAN_MEDIA_USE_STARBOARD_PIPELINE=0" ] |
| } |
| } |
| |
| # ============================================================================= |
| # DELEGATED CONFIGS |
| # ============================================================================= |
| |
| # Enables pedantic levels of warnings for the current toolchain. |
| delegated_config("pedantic_warnings") { |
| path = "//$starboard_path" |
| generate_default = false |
| } |
| |
| # Controls the optimization level |
| delegated_config("optimizations") { |
| path = "//$starboard_path" |
| prefixes = [ "no", "debuggable", "full" ] |
| } |
| |
| # Enables/disables rtti |
| delegated_config("rtti") { |
| path = "//$starboard_path" |
| } |
| |
| # Enables the exit-time-destructors warning. |
| config("wexit_time_destructors") { |
| configs = [ "//$starboard_path:wexit_time_destructors" ] |
| } |