blob: 0ba189cbd628c75134b8d924e2e216998d51d7dd [file] [log] [blame]
# Copyright 2022 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("compiler_flags") {
cflags = []
cflags_c = []
cflags_cc = []
ldflags = []
# from common_compiler_flags
cflags += [
# Default visibility to hidden, to enable dead stripping.
"-fvisibility=hidden",
# protobuf uses hash_map.
"-fno-exceptions",
# Don't warn about the "struct foo f = {0};" initialization pattern.
"-Wno-missing-field-initializers",
"-fno-strict-aliasing", # See http://crbug.com/32204
# Don't warn about any conversions.
"-Wno-conversion",
# Don't warn about unreachable code. See
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46158
"-Wno-unreachable-code",
"-Wno-deprecated-declarations",
# Disable warning:
# 'comparison is always true due to limited range of data type'
"-Wno-extra",
# Don't warn about inlining
"-Wno-inline",
# Disable warning: 'typedef locally defined but not used'.
"-Wno-unused-local-typedefs",
# Disable warning: 'narrowing conversion'
"-Wno-narrowing",
# Do not remove null this checks.
"-fno-delete-null-pointer-checks",
# Do not warn about unused function params.
"-Wno-unused-parameter",
# Do not warn about multi-character character constant values.
"-Wno-multichar",
# Do not warn for ignoring return value declared with attribute warn_unused_result.
"-Wno-unused-result",
# Do now warn for unknown pragmas.
"-Wno-unknown-pragmas",
]
ldflags += [ "-Wl,-rpath=/usr/lib/gcc/x86_64-linux-gnu/6" ]
cflags_c += [
# Limit to C99. This allows Linux to be a canary build for any
# C11 features that are not supported on some platforms' compilers.
"-std=c99",
]
cflags_cc += [
"-std=gnu++14",
# Don't warn for invalid access to non-static data member of NULL object.
"-Wno-invalid-offsetof",
# Don't warn about deprecated use
"-Wno-deprecated",
]
if (is_debug) {
cflags += [ "-O0" ]
} else if (is_devel) {
cflags += [ "-O2" ]
} else if (is_qa) {
cflags += [ "-O2" ]
}
if (!cobalt_fastbuild && (is_debug || is_devel)) {
cflags += [ "-g" ]
}
}
config("platform_configuration") {
configs = [
"//starboard/linux/shared/platform_configuration",
"//starboard/linux/x64x11/shared/platform_configuration:libraries",
"//starboard/build/config/sabi",
":compiler_flags",
]
}