[tracing] Fix perfetto build on windows

Add .exe to the produced executable for the protoc compiler.

Use include_dirs instead of -isystem. Remove some more warnings that
that causes.

Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng
Bug: v8:8339
Change-Id: Ia6b0df63107470ec78f8038834205a0e4fe34b21
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1632069
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Auto-Submit: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#61893}
This commit is contained in:
Peter Marshall 2019-05-28 15:02:29 +02:00 committed by Commit Bot
parent b7744db7f9
commit 9ecf38fb63
2 changed files with 30 additions and 11 deletions

View File

@ -3681,8 +3681,8 @@ v8_component("v8_libplatform") {
"src/libplatform/tracing/trace-event-listener.h", "src/libplatform/tracing/trace-event-listener.h",
] ]
deps += [ deps += [
"third_party/perfetto:libperfetto", "//third_party/perfetto:libperfetto",
"third_party/perfetto/protos/perfetto/trace/chrome:minimal_complete_lite", "//third_party/perfetto/protos/perfetto/trace/chrome:minimal_complete_lite",
] ]
} }
} }
@ -4420,16 +4420,13 @@ if (!build_with_chromium && v8_use_perfetto) {
"GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER", "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
] ]
cflags = [ cflags = [
# Using -isystem instead of include_dirs (-I), so we don't need to suppress
# warnings coming from libprotobuf headers. Doing so would mask warnings in
# our own code.
"-isystem",
rebase_path("third_party/protobuf/src", root_build_dir),
"-Wno-unknown-warning-option", "-Wno-unknown-warning-option",
"-Wno-deprecated", "-Wno-deprecated",
"-Wno-undef", "-Wno-undef",
"-Wno-zero-as-null-pointer-constant", "-Wno-zero-as-null-pointer-constant",
"-Wno-thread-safety-attributes",
] ]
include_dirs = [ "third_party/protobuf/src" ]
} }
# Configuration used to build libprotobuf_* and the protoc compiler. # Configuration used to build libprotobuf_* and the protoc compiler.
@ -4437,7 +4434,9 @@ if (!build_with_chromium && v8_use_perfetto) {
# Apply the lighter supressions and macro definitions from above. # Apply the lighter supressions and macro definitions from above.
configs = [ ":protobuf_gen_config" ] configs = [ ":protobuf_gen_config" ]
defines = [ "HAVE_PTHREAD=1" ] if (!is_win) {
defines = [ "HAVE_PTHREAD=1" ]
}
if (is_clang) { if (is_clang) {
cflags = [ cflags = [
"-Wno-unused-private-field", "-Wno-unused-private-field",
@ -4449,6 +4448,9 @@ if (!build_with_chromium && v8_use_perfetto) {
"-Wno-tautological-constant-compare", "-Wno-tautological-constant-compare",
] ]
} }
if (is_win) {
cflags += [ "-Wno-microsoft-unqualified-friend" ]
}
} }
source_set("protobuf_lite") { source_set("protobuf_lite") {
@ -4483,6 +4485,9 @@ if (!build_with_chromium && v8_use_perfetto) {
"//build/config/compiler:no_chromium_code", "//build/config/compiler:no_chromium_code",
":protobuf_config", ":protobuf_config",
] ]
if (is_win) {
configs -= [ "//build/config/win:lean_and_mean" ]
}
public_configs = [ ":protobuf_gen_config" ] public_configs = [ ":protobuf_gen_config" ]
} }
@ -4552,6 +4557,9 @@ if (!build_with_chromium && v8_use_perfetto) {
"//build/config/compiler:no_chromium_code", "//build/config/compiler:no_chromium_code",
":protobuf_config", ":protobuf_config",
] ]
if (is_win) {
configs -= [ "//build/config/win:lean_and_mean" ]
}
public_configs = [ ":protobuf_gen_config" ] public_configs = [ ":protobuf_gen_config" ]
} }
@ -4587,6 +4595,9 @@ if (!build_with_chromium && v8_use_perfetto) {
"//build/config/compiler:no_chromium_code", "//build/config/compiler:no_chromium_code",
":protobuf_config", ":protobuf_config",
] ]
if (is_win) {
configs -= [ "//build/config/win:lean_and_mean" ]
}
public_configs = [ ":protobuf_gen_config" ] public_configs = [ ":protobuf_gen_config" ]
} }

View File

@ -13,6 +13,12 @@ template("proto_library") {
set_sources_assignment_filter([]) set_sources_assignment_filter([])
if (host_os == "win") {
host_executable_suffix = ".exe"
} else {
host_executable_suffix = ""
}
# All the proto imports should be relative to the project root. # All the proto imports should be relative to the project root.
proto_in_dir = "//" proto_in_dir = "//"
if (defined(invoker.proto_in_dir)) { if (defined(invoker.proto_in_dir)) {
@ -42,8 +48,9 @@ template("proto_library") {
if (defined(invoker.generator_plugin_label)) { if (defined(invoker.generator_plugin_label)) {
plugin_host_label = invoker.generator_plugin_label + "($host_toolchain)" plugin_host_label = invoker.generator_plugin_label + "($host_toolchain)"
plugin_path = get_label_info(plugin_host_label, "root_out_dir") + "/" + plugin_path =
get_label_info(plugin_host_label, "name") get_label_info(plugin_host_label, "root_out_dir") + "/" +
get_label_info(plugin_host_label, "name") + host_executable_suffix
generate_with_plugin = true generate_with_plugin = true
} else if (defined(invoker.generator_plugin_script)) { } else if (defined(invoker.generator_plugin_script)) {
plugin_path = invoker.generator_plugin_script plugin_path = invoker.generator_plugin_script
@ -107,7 +114,8 @@ template("proto_library") {
outputs = get_path_info(protogens, "abspath") outputs = get_path_info(protogens, "abspath")
protoc_label = "//:protoc($host_toolchain)" protoc_label = "//:protoc($host_toolchain)"
protoc_path = get_label_info(protoc_label, "root_out_dir") + "/protoc" protoc_path = get_label_info(protoc_label, "root_out_dir") + "/protoc" +
host_executable_suffix
args = [ args = [
# Path should be rebased because |root_build_dir| for current toolchain # Path should be rebased because |root_build_dir| for current toolchain
# may be different from |root_out_dir| of protoc built on host toolchain. # may be different from |root_out_dir| of protoc built on host toolchain.