8cdf5b6fa4
We previously moved them to only being added via -isystem (and -imsvc). This prevents warnings in those headers from breaking our builds, which is good. However, when generating Visual Studio project files, GN doesn't know about those switches, so it omits these paths. Propagating to include_dirs causes them to be added, and fixes include path and symbol resolution in the IDE. Change-Id: Id261bec8f91d2eaca60dbc6c3e8628e9608826ba Reviewed-on: https://skia-review.googlesource.com/c/skia/+/212762 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
template("third_party") {
|
|
enabled = !defined(invoker.enabled) || invoker.enabled
|
|
config(target_name + "_public") {
|
|
if (enabled) {
|
|
cflags = []
|
|
if (defined(invoker.public_defines)) {
|
|
defines = invoker.public_defines
|
|
}
|
|
if (is_win) {
|
|
include_dirs = invoker.public_include_dirs
|
|
if (is_clang) {
|
|
foreach(dir, invoker.public_include_dirs) {
|
|
cflags += [
|
|
"/imsvc",
|
|
rebase_path(dir),
|
|
]
|
|
}
|
|
}
|
|
} else {
|
|
foreach(dir, invoker.public_include_dirs) {
|
|
cflags += [
|
|
"-isystem",
|
|
rebase_path(dir),
|
|
]
|
|
}
|
|
}
|
|
} else {
|
|
not_needed(invoker, "*")
|
|
}
|
|
}
|
|
|
|
# You can't make a static_library() without object files to archive,
|
|
# but we can treat targets without object files as a source_set().
|
|
if (defined(invoker.sources)) {
|
|
_mode = "static_library"
|
|
} else {
|
|
_mode = "source_set"
|
|
}
|
|
|
|
target(_mode, target_name) {
|
|
if (enabled) {
|
|
forward_variables_from(invoker, "*", [ "public_include_dirs" ])
|
|
public_configs = [ ":" + target_name + "_public" ]
|
|
|
|
# Warnings are just noise if we're not maintaining the code.
|
|
if (is_win) {
|
|
cflags = [ "/w" ]
|
|
} else {
|
|
cflags = [ "-w" ]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
set_defaults("third_party") {
|
|
configs = default_configs
|
|
if (!is_official_build) {
|
|
# Official builds don't have warnings to begin with.
|
|
configs -= [ "//gn:warnings" ]
|
|
}
|
|
|
|
# Don't want to to deal with this (especially /RTCc)
|
|
if (sanitize == "MSVC") {
|
|
configs -= [ "//gn:msvc_rtc" ]
|
|
}
|
|
if (is_debug) {
|
|
configs += [ "//gn:optimize" ]
|
|
}
|
|
}
|
|
|
|
template("system") {
|
|
config(target_name + "_public") {
|
|
forward_variables_from(invoker, "*", [])
|
|
}
|
|
group(target_name) {
|
|
public_configs = [ ":" + target_name + "_public" ]
|
|
}
|
|
}
|