2013-12-17 03:53:47 +04:00
|
|
|
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
|
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
|
|
# found in the LICENSE file.
|
|
|
|
|
2014-01-09 01:38:35 +04:00
|
|
|
import("//build/config/sysroot.gni")
|
2013-12-18 02:54:18 +04:00
|
|
|
|
2013-12-17 03:53:47 +04:00
|
|
|
# Defines a config specifying the result of running pkg-config for the given
|
|
|
|
# packages. Put the package names you want to query in the "packages" variable
|
|
|
|
# inside the template invocation.
|
|
|
|
#
|
|
|
|
# You can also add defines via the "defines" variable. This can be useful to
|
|
|
|
# add this to the config to pass defines that the library expects to get by
|
|
|
|
# users of its headers.
|
|
|
|
#
|
|
|
|
# Example:
|
|
|
|
# pkg_config("mything") {
|
|
|
|
# packages = [ "mything1", "mything2" ]
|
|
|
|
# defines = [ "ENABLE_AWESOME" ]
|
|
|
|
# }
|
|
|
|
|
|
|
|
template("pkg_config") {
|
2014-03-28 20:19:02 +04:00
|
|
|
assert(defined(invoker.packages),
|
2013-12-17 03:53:47 +04:00
|
|
|
"Variable |packages| must be defined to be a list in pkg_config.")
|
|
|
|
config(target_name) {
|
2013-12-18 02:54:18 +04:00
|
|
|
if (sysroot != "") {
|
|
|
|
# Pass the sysroot if we're using one (it requires the CPU arch also).
|
2014-03-28 20:19:02 +04:00
|
|
|
args = ["-s", sysroot, "-a", cpu_arch] + invoker.packages
|
2013-12-18 02:54:18 +04:00
|
|
|
} else {
|
2014-03-28 20:19:02 +04:00
|
|
|
args = invoker.packages
|
2013-12-18 02:54:18 +04:00
|
|
|
}
|
2013-12-17 03:53:47 +04:00
|
|
|
pkgresult = exec_script("//build/config/linux/pkg-config.py",
|
2013-12-18 02:54:18 +04:00
|
|
|
args, "value")
|
2013-12-17 03:53:47 +04:00
|
|
|
include_dirs = pkgresult[0]
|
|
|
|
cflags = pkgresult[1]
|
|
|
|
libs = pkgresult[2]
|
|
|
|
lib_dirs = pkgresult[3]
|
2014-02-03 16:11:38 +04:00
|
|
|
ldflags = pkgresult[4]
|
2014-03-28 20:19:02 +04:00
|
|
|
|
|
|
|
if (defined(invoker.defines)) {
|
|
|
|
defines = invoker.defines
|
|
|
|
}
|
2014-04-08 20:50:01 +04:00
|
|
|
if (defined(invoker.visibility)) {
|
|
|
|
visibility = invoker.visibility
|
|
|
|
}
|
2013-12-17 03:53:47 +04:00
|
|
|
}
|
|
|
|
}
|