skia2/third_party/third_party.gni
Brian Osman 8cdf5b6fa4 Propagate third_party public_include_dirs to include_dirs
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>
2019-05-08 19:57:44 +00:00

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" ]
}
}