| # Copyright 2021 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. |
| |
| config("platform_configuration") { |
| configs = [ "//starboard/build/config/sabi" ] |
| cflags = [] |
| |
| cflags_cc = [ "-std=gnu++17" ] |
| ldflags = [ "-static-libstdc++" ] |
| |
| if (is_debug) { |
| cflags += [ "-O0" ] |
| configs += [ "//build/config/compiler:rtti" ] |
| } else if (is_devel) { |
| cflags += [ "-O2" ] |
| configs += [ "//build/config/compiler:rtti" ] |
| } else { |
| cflags += [ |
| "-O2", |
| "-gline-tables-only", |
| ] |
| } |
| |
| # if (!cobalt_fastbuild && (is_debug || is_devel)) { |
| # cflags += ["-g"] |
| # } |
| |
| if (is_clang) { |
| cflags += [ |
| "-Werror", |
| "-fcolor-diagnostics", |
| |
| # Default visibility to hidden, to enable dead stripping. |
| "-fvisibility=hidden", |
| |
| # Warn for implicit type conversions that may change a value. |
| "-Wconversion", |
| |
| # 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", |
| |
| # 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 |
| |
| # 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", |
| |
| # Do not warn about unused function params. |
| "-Wno-unused-parameter", |
| ] |
| } |
| |
| if (is_clang_16) { |
| cflags += [ |
| # Do not warn about an implicit conversion from int to float |
| "-Wno-implicit-int-float-conversion", |
| |
| # Do not warn about an implicit conversion from int to char16 |
| "-Wno-implicit-int-conversion", |
| |
| # Do not remove null pointer checks. |
| "-fno-delete-null-pointer-checks", |
| ] |
| } |
| |
| # Defined to get format macro constants from <inttypes.h>. |
| defines = [ "__STDC_FORMAT_MACROS" ] |
| } |
| |
| 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 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", |
| ] |
| } |