chromium-src-build/config/clang/BUILD.gn

67 строки
1.6 KiB
Plaintext
Исходник Обычный вид История

# Copyright (c) 2013 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.
import("clang.gni")
import("//build/config/chromecast_build.gni")
config("find_bad_constructs") {
if (clang_use_chrome_plugins) {
cflags = []
# On Windows, the plugin is built directly into clang, so there's
# no need to load it dynamically.
if (is_mac || is_ios) {
cflags += [
"-Xclang",
"-load",
"-Xclang",
rebase_path("${clang_base_path}/lib/libFindBadConstructs.dylib",
root_build_dir),
]
} else if (is_linux || is_android) {
cflags += [
"-Xclang",
"-load",
"-Xclang",
rebase_path("${clang_base_path}/lib/libFindBadConstructs.so",
root_build_dir),
]
}
cflags += [
gn format //build A starting point for doing all of src, and adding a PRESUBMIT. Includes https://codereview.chromium.org/772663002/ and https://codereview.chromium.org/770053002/. I haven't pushed new binaries yet. Generated via: > cd build > git ls-files *.gn *.gni | sed -e "s/^/@..\\\\out\\\\Debug\\\\gn format --in-place /" >x.bat && x.bat The only things that I don't love in the current output are: 1. Turning args = [ "--depfile", rebase_path(depfile, root_build_dir), "--android-sdk-tools", rebased_android_sdk_build_tools, "--dex-path", rebased_output, ] into: args = [ "--depfile", rebase_path(depfile, root_build_dir), "--android-sdk-tools", rebased_android_sdk_build_tools, "--dex-path", rebased_output, ] The heuristic for this isn't trivial though, and it also affects e.g. '-Xclang' in cflags, as well as assignments to temporaries that are later assigned to args. 2. Turning single line if (defined(invoker.inputs)) { inputs = invoker.inputs } into if (defined(invoker.inputs)) { inputs = invoker.inputs } This could be argued to be an improvement, but as it's very boilerplate-y perhaps an exception to allow single line in this case is worthwhile. I think there was discussion of new syntax for this case too, something like "inputs ?= invoker.inputs" maybe. In both cases, I think it's worthwhile to get formatting turned on, and then go back and special case these if we decide it's worthwhile. R=brettw@chromium.org BUG=348474 Review URL: https://codereview.chromium.org/766573003 Cr-Original-Commit-Position: refs/heads/master@{#306305} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: b199254f481c5db36d56e83fce40594b06d2b81f
2014-12-02 03:25:20 +03:00
"-Xclang",
"-add-plugin",
"-Xclang",
"find-bad-constructs",
"-Xclang",
"-plugin-arg-find-bad-constructs",
"-Xclang",
"check-auto-raw-pointer",
]
if ((is_linux || is_android) && !is_chromecast) {
cflags += [
"-Xclang",
"-plugin-arg-find-bad-constructs",
"-Xclang",
"check-ipc",
]
}
}
}
# Enables some extra Clang-specific warnings. Some third-party code won't
# compile with these so may want to remove this config.
config("extra_warnings") {
cflags = [
"-Wheader-hygiene",
# Warns when a const char[] is converted to bool.
"-Wstring-conversion",
"-Wtautological-overlap-compare",
]
}