Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(443)

Side by Side Diff: build/config/linux/pkg_config.gni

Issue 2023703002: Beginning work on GN build (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Really add //build. Add dart_bootstrap rule. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « build/config/linux/pkg-config.py ('k') | build/config/locales.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4
5 import("//build/config/sysroot.gni")
6
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
9 # inside the template invocation.
10 #
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
13 # users of its headers.
14 #
15 # Example:
16 # pkg_config("mything") {
17 # packages = [ "mything1", "mything2" ]
18 # defines = [ "ENABLE_AWESOME" ]
19 # }
20 #
21 # You can also use "extra args" to filter out results (see pkg-config.py):
22 # extra_args = [ "-v, "foo" ]
23 # To ignore libs and ldflags (only cflags/defines will be set, which is useful
24 # when doing manual dynamic linking), set:
25 # ignore_libs = true
26
27 declare_args() {
28 # A pkg-config wrapper to call instead of trying to find and call the right
29 # pkg-config directly. Wrappers like this are common in cross-compilation
30 # environments.
31 # Leaving it blank defaults to searching PATH for 'pkg-config' and relying on
32 # the sysroot mechanism to find the right .pc files.
33 pkg_config = ""
34
35 # CrOS systemroots place pkgconfig files at <systemroot>/usr/share/pkgconfig
36 # and one of <systemroot>/usr/lib/pkgconfig or <systemroot>/usr/lib64/pkgconfi g
37 # depending on whether the systemroot is for a 32 or 64 bit architecture.
38 #
39 # When build under GYP, CrOS board builds specify the 'system_libdir' variable
40 # as part of the GYP_DEFINES provided by the CrOS emerge build or simple
41 # chrome build scheme. This variable permits controlling this for GN builds
42 # in similar fashion by setting the `system_libdir` variable in the build's
43 # args.gn file to 'lib' or 'lib64' as appropriate for the target architecture.
44 system_libdir = "lib"
45 }
46
47 pkg_config_script = "//build/config/linux/pkg-config.py"
48
49 # Define the args we pass to the pkg-config script for other build files that
50 # need to invoke it manually.
51 if (sysroot != "") {
52 # Pass the sysroot if we're using one (it requires the CPU arch also).
53 pkg_config_args = [
54 "-s",
55 rebase_path(sysroot),
56 "-a",
57 current_cpu,
58 ]
59 } else if (pkg_config != "") {
60 pkg_config_args = [
61 "-p",
62 pkg_config,
63 ]
64 } else {
65 pkg_config_args = []
66 }
67
68 # Only use the custom libdir when building with the target sysroot.
69 if (target_sysroot != "" && sysroot == target_sysroot) {
70 pkg_config_args += [
71 "--system_libdir",
72 system_libdir,
73 ]
74 }
75
76 template("pkg_config") {
77 assert(defined(invoker.packages),
78 "Variable |packages| must be defined to be a list in pkg_config.")
79 config(target_name) {
80 args = pkg_config_args + invoker.packages
81 if (defined(invoker.extra_args)) {
82 args += invoker.extra_args
83 }
84
85 pkgresult = exec_script(pkg_config_script, args, "value")
86 include_dirs = pkgresult[0]
87 cflags = pkgresult[1]
88
89 if (!defined(invoker.ignore_libs) || !invoker.ignore_libs) {
90 libs = pkgresult[2]
91 lib_dirs = pkgresult[3]
92 ldflags = pkgresult[4]
93 }
94
95 forward_variables_from(invoker,
96 [
97 "defines",
98 "visibility",
99 ])
100 }
101 }
OLDNEW
« no previous file with comments | « build/config/linux/pkg-config.py ('k') | build/config/locales.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698