OLD | NEW |
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import("//build/config/sysroot.gni") | 5 import("//build/config/sysroot.gni") |
6 | 6 |
7 # Defines a config specifying the result of running pkg-config for the given | 7 # Defines a config specifying the result of running pkg-config for the given |
8 # packages. Put the package names you want to query in the "packages" variable | 8 # packages. Put the package names you want to query in the "packages" variable |
9 # inside the template invocation. | 9 # inside the template invocation. |
10 # | 10 # |
11 # You can also add defines via the "defines" variable. This can be useful to | 11 # You can also add defines via the "defines" variable. This can be useful to |
12 # add this to the config to pass defines that the library expects to get by | 12 # add this to the config to pass defines that the library expects to get by |
13 # users of its headers. | 13 # users of its headers. |
14 # | 14 # |
15 # Example: | 15 # Example: |
16 # pkg_config("mything") { | 16 # pkg_config("mything") { |
17 # packages = [ "mything1", "mything2" ] | 17 # packages = [ "mything1", "mything2" ] |
18 # defines = [ "ENABLE_AWESOME" ] | 18 # defines = [ "ENABLE_AWESOME" ] |
19 # } | 19 # } |
20 | 20 |
21 template("pkg_config") { | 21 template("pkg_config") { |
22 assert(defined(packages), | 22 assert(defined(invoker.packages), |
23 "Variable |packages| must be defined to be a list in pkg_config.") | 23 "Variable |packages| must be defined to be a list in pkg_config.") |
24 config(target_name) { | 24 config(target_name) { |
25 if (sysroot != "") { | 25 if (sysroot != "") { |
26 # Pass the sysroot if we're using one (it requires the CPU arch also). | 26 # Pass the sysroot if we're using one (it requires the CPU arch also). |
27 args = ["-s", sysroot, "-a", cpu_arch] + packages | 27 args = ["-s", sysroot, "-a", cpu_arch] + invoker.packages |
28 } else { | 28 } else { |
29 args = packages | 29 args = invoker.packages |
30 } | 30 } |
31 pkgresult = exec_script("//build/config/linux/pkg-config.py", | 31 pkgresult = exec_script("//build/config/linux/pkg-config.py", |
32 args, "value") | 32 args, "value") |
33 include_dirs = pkgresult[0] | 33 include_dirs = pkgresult[0] |
34 cflags = pkgresult[1] | 34 cflags = pkgresult[1] |
35 libs = pkgresult[2] | 35 libs = pkgresult[2] |
36 lib_dirs = pkgresult[3] | 36 lib_dirs = pkgresult[3] |
37 ldflags = pkgresult[4] | 37 ldflags = pkgresult[4] |
| 38 |
| 39 if (defined(invoker.defines)) { |
| 40 defines = invoker.defines |
| 41 } |
38 } | 42 } |
39 } | 43 } |
OLD | NEW |