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