mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-28 08:16:09 +03:00
169 lines
4.6 KiB
Plaintext
169 lines
4.6 KiB
Plaintext
# Copyright (c) 2018 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.
|
|
|
|
# absl specific compiler flags.
|
|
#
|
|
# Flags specified here must not impact ABI. Code compiled with and without these
|
|
# opts will be linked together, and in some cases headers compiled with and
|
|
# without these options will be part of the same program.
|
|
|
|
group("default") {
|
|
deps = [
|
|
"absl/types:any",
|
|
"absl/types:bad_any_cast",
|
|
"absl/types:span",
|
|
"absl/types:optional",
|
|
"absl/types:bad_optional_access",
|
|
]
|
|
}
|
|
|
|
config("absl_include_config") {
|
|
# Using -isystem (with clang and GCC) and -imsvc (with clang-cl) instead of
|
|
# include_dirs (-I), so we don't need to suppress warnings coming from
|
|
# Abseil. Doing so would mask warnings in our own code.
|
|
if (is_win) {
|
|
if (is_clang) {
|
|
# clang-cl:
|
|
cflags = [
|
|
"-imsvc",
|
|
rebase_path(".", root_build_dir),
|
|
]
|
|
} else {
|
|
# MSVC doesn't have -isystem, in that case we fallback to include_dirs and
|
|
# we use the warning suppression flags defined in :absl_default_cflags_cc.
|
|
include_dirs = [ "." ]
|
|
}
|
|
} else {
|
|
# GCC or clang:
|
|
cflags = [
|
|
"-isystem",
|
|
rebase_path(".", root_build_dir),
|
|
]
|
|
}
|
|
}
|
|
|
|
config("absl_define_config") {
|
|
defines = [ "ABSL_ALLOCATOR_NOTHROW=1" ]
|
|
}
|
|
|
|
config("absl_default_cflags_cc") {
|
|
if (is_clang) {
|
|
cflags_cc = [
|
|
# Abseil does not support C++98
|
|
"-Wno-c++98-compat-pedantic",
|
|
# Turns off all implicit conversion warnings. Most are re-enabled below.
|
|
"-Wno-conversion",
|
|
"-Wno-covered-switch-default",
|
|
"-Wno-deprecated",
|
|
"-Wno-disabled-macro-expansion",
|
|
"-Wno-double-promotion",
|
|
###
|
|
# Turned off as they include valid C++ code.
|
|
"-Wno-comma",
|
|
"-Wno-extra-semi",
|
|
"-Wno-packed",
|
|
"-Wno-padded",
|
|
###
|
|
"-Wno-float-conversion",
|
|
"-Wno-float-equal",
|
|
"-Wno-format-nonliteral",
|
|
# Too aggressive: warns on Clang extensions enclosed in Clang-only
|
|
# compilation paths.
|
|
"-Wno-gcc-compat",
|
|
###
|
|
# Some internal globals are necessary. Don't do this at home.
|
|
"-Wno-global-constructors",
|
|
"-Wno-exit-time-destructors",
|
|
###
|
|
"-Wno-nested-anon-types",
|
|
"-Wno-non-modular-include-in-module",
|
|
"-Wno-old-style-cast",
|
|
# Warns on preferred usage of non-POD types such as string_view
|
|
"-Wno-range-loop-analysis",
|
|
"-Wno-reserved-id-macro",
|
|
"-Wno-shorten-64-to-32",
|
|
"-Wno-switch-enum",
|
|
"-Wno-thread-safety-negative",
|
|
"-Wno-undef",
|
|
"-Wno-unknown-warning-option",
|
|
"-Wno-unreachable-code",
|
|
# Causes warnings on include guards
|
|
"-Wno-unused-macros",
|
|
"-Wno-weak-vtables",
|
|
###
|
|
# Implicit conversion warnings turned off by -Wno-conversion
|
|
# which are re-enabled below.
|
|
"-Wbitfield-enum-conversion",
|
|
"-Wbool-conversion",
|
|
"-Wconstant-conversion",
|
|
"-Wenum-conversion",
|
|
"-Wint-conversion",
|
|
"-Wliteral-conversion",
|
|
"-Wnon-literal-null-conversion",
|
|
"-Wnull-conversion",
|
|
"-Wobjc-literal-conversion",
|
|
"-Wno-sign-conversion",
|
|
"-Wstring-conversion",
|
|
###
|
|
]
|
|
} else {
|
|
if (is_linux) {
|
|
# GCC flags:
|
|
cflags_cc = [
|
|
# Google style does not use unsigned integers, though STL containers
|
|
# have unsigned types.
|
|
"-Wno-sign-compare",
|
|
]
|
|
}
|
|
if (is_win) {
|
|
# MSVC flags:
|
|
cflags_cc = [
|
|
"/wd4005", # macro-redefinition
|
|
"/wd4068", # unknown pragma
|
|
"/wd4702", # unreachable code
|
|
]
|
|
}
|
|
}
|
|
}
|
|
|
|
config("absl_test_cflags_cc") {
|
|
if (is_clang) {
|
|
cflags_cc = [
|
|
"-Wno-c99-extensions",
|
|
"-Wno-missing-noreturn",
|
|
"-Wno-missing-prototypes",
|
|
"-Wno-null-conversion",
|
|
"-Wno-shadow",
|
|
"-Wno-shift-sign-overflow",
|
|
"-Wno-sign-compare",
|
|
"-Wno-unused-function",
|
|
"-Wno-unused-member-function",
|
|
"-Wno-unused-parameter",
|
|
"-Wno-unused-private-field",
|
|
"-Wno-unused-template",
|
|
"-Wno-used-but-marked-unused",
|
|
"-Wno-zero-as-null-pointer-constant",
|
|
]
|
|
} else {
|
|
if (is_linux) {
|
|
# GCC flags:
|
|
cflags_cc = [
|
|
"-Wno-conversion-null",
|
|
"-Wno-missing-declarations",
|
|
"-Wno-sign-compare",
|
|
"-Wno-unused-function",
|
|
"-Wno-unused-parameter",
|
|
"-Wno-unused-private-field",
|
|
]
|
|
}
|
|
if (is_win) {
|
|
# MSVC flags:
|
|
cflags_cc = [
|
|
"/wd4018", # signed/unsigned mismatch
|
|
"/wd4101", # unreferenced local variable
|
|
]
|
|
}
|
|
}
|
|
}
|