aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/third_party.gni
blob: 384eeed580057c796d19cfc7f9f46dc260d1007c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# 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
      } else {
        foreach(dir, invoker.public_include_dirs) {
          cflags += [
            "-isystem",
            rebase_path(dir),
          ]
        }
      }
    } else {
      not_needed(invoker, "*")
    }
  }
  source_set(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 - [ "//gn:warnings" ]
}

template("system") {
  config(target_name + "_public") {
    forward_variables_from(invoker, "*", [])
  }
  group(target_name) {
    public_configs = [ ":" + target_name + "_public" ]
  }
}