skia2/third_party/third_party.gni
Ben Wagner 507e486219 Revert "Enable deprecated-copy-dtor warning."
This reverts commit e990fcc4b0.

Reason for revert: Build-Win-Clang-x86_64-Release-Shared

Original change's description:
> Enable deprecated-copy-dtor warning.
> 
> In C++11 a user declared destructor still requires the compiler to
> implicitly default the copy constructor and copy assignment operator,
> but this is deprecated. Note that a user declared destructor suppresses
> the move constructor and move assignment operator; a user declared
> destructor exists if any '~Foo' method declaration appears inside
> 'class Foo' (even if defaulted); if the copy and move operations are the
> same then copy operations that take 'const Foo&' will do fine double
> duty as move operations.
> 
> Clang seems to have an issue with this warning, in that it does not
> appear to distinguish between compiler defaulted and user defaulted
> destructors. As a result, it does not always warn when it should.
> There may yet be places in the code where a move operation is desired
> but may be suppressed because the implicitly defaulted  moves are not
> declared because a destructor has been declared.
> 
> This wraps dawn and shaderc configs in 'third_party' so that their
> headers will be included through '-isystem' in order to avoid the
> warnings generated by including their headers.
> 
> Change-Id: I681524cd890d86305aa99b6b765a52113b4dfa4b
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280406
> Reviewed-by: Mike Klein <mtklein@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Ben Wagner <bungeman@google.com>

TBR=mtklein@google.com,bsalomon@google.com,bungeman@google.com

Change-Id: Icd6a2487637d21fcf7c4c7ab7cba7a8adfda5afd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/280836
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2020-03-31 22:32:07 +00:00

91 lines
2.1 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) {
if (werror) {
cflags += [
"-isystem",
rebase_path(dir),
]
} else {
cflags += [
"-I",
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" ]
}
if (is_debug) {
configs += [ "//gn:optimize" ]
}
if (sanitize == "ASAN") {
configs += [ "//gn:recover_pointer_overflow" ]
}
}
template("system") {
config(target_name + "_public") {
forward_variables_from(invoker, "*", [])
}
group(target_name) {
public_configs = [ ":" + target_name + "_public" ]
}
}