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

Side by Side Diff: build/config/linux/BUILD.gn

Issue 300973003: Add CC to the GN build, work on GPU more (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « BUILD.gn ('k') | build/config/linux/pkg_config.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/linux/pkg_config.gni") 5 import("//build/config/linux/pkg_config.gni")
6 import("//build/config/sysroot.gni") 6 import("//build/config/sysroot.gni")
7 7
8 config("sdk") { 8 config("sdk") {
9 if (sysroot != "") { 9 if (sysroot != "") {
10 cflags = [ "--sysroot=" + sysroot ] 10 cflags = [ "--sysroot=" + sysroot ]
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 75
76 config("libresolv") { 76 config("libresolv") {
77 libs = [ "resolv" ] 77 libs = [ "resolv" ]
78 } 78 }
79 79
80 pkg_config("gconf") { 80 pkg_config("gconf") {
81 packages = [ "gconf-2.0" ] 81 packages = [ "gconf-2.0" ]
82 defines = [ "USE_GCONF" ] 82 defines = [ "USE_GCONF" ]
83 } 83 }
84 84
85 # name: Name to use for the value of the --name arg.
86 # output_h/output_cc: Names for the generated header/cc file with no dir.
87 # header: header file to process. Example: "<foo/bar.h>"
88 # functions: List of strings for functions to process.
89 # config: Label of the config generated by pkgconfig.
90 template("generate_library_loader") {
91 output_h = "$root_gen_dir/library_loaders/" + invoker.output_h
92 output_cc = "$root_gen_dir/library_loaders/" + invoker.output_cc
93
94 action_visibility = ":$target_name"
95 action("${target_name}_loader") {
96 visibility = action_visibility
97
98 script = "//tools/generate_library_loader/generate_library_loader.py"
99 if (defined(invoker.visibility)) {
100 visibility = invoker.visibility
101 }
102
103 outputs = [ output_h, output_cc ]
104
105 args = [
106 "--name", invoker.name,
107 "--output-h", rebase_path(output_h),
108 "--output-cc", rebase_path(output_cc),
109 "--header", invoker.header,
110 # Note GYP build exposes a per-target variable to control this, which, if
111 # manually set to true, will disable dlopen(). Its not clear this is
112 # needed, so here we just leave off. If this can be done globally, we
113 # can expose one switch for this value, otherwise we need to add a templat e
114 # param for this.
115 "--link-directly=0",
116 ] + invoker.functions
117 }
118
119 source_set(target_name) {
120 direct_dependent_configs = [ invoker.config ]
121 sources = [ output_h, output_cc ]
122 deps = [ ":${target_name}_loader" ]
123 }
124 }
125
85 pkg_config("gio_config") { 126 pkg_config("gio_config") {
86 packages = [ "gio-2.0" ] 127 packages = [ "gio-2.0" ]
87 defines = [ "USE_GIO" ] 128 defines = [ "USE_GIO" ]
129 ignore_libs = true # Loader generated below.
88 } 130 }
89 131
90 gio_output_h = "$root_gen_dir/library_loaders/libgio.h" 132 # This generates a target named "gio".
91 gio_output_cc = "$root_gen_dir/library_loaders/libgio_loader.cc" 133 generate_library_loader("gio") {
134 name = "LibGioLoader"
135 output_h = "libgio.h"
136 output_cc = "libgio_loader.cc"
137 # TODO(brettw) convert ti "<gio/gio.h>" once GN doesn't mangle <>.
138 header = "\"gio/gio.h\""
139 config = ":gio_config"
92 140
93 action("make_gio_headers") { 141 functions = [
94 visibility = ":gio"
95
96 script = "//tools/generate_library_loader/generate_library_loader.py"
97
98 outputs = [ gio_output_h, gio_output_cc ]
99
100 args = [
101 "--name", "LibGioLoader",
102 "--output-h", rebase_path(gio_output_h),
103 "--output-cc", rebase_path(gio_output_cc),
104 # TODO(brettw) convert ti "<gio/gio.h>" once GN doesn't mangle <>.
105 "--header", "\"gio/gio.h\"",
106 # Note GYP build exposes a variable linux_link_gsettings to control this,
107 # which, if manually set to true, will disable dlopen() for this. Its not
108 # clear this is needed, so here we just leave off.
109 "--link-directly=0",
110 "g_settings_new", 142 "g_settings_new",
111 "g_settings_get_child", 143 "g_settings_get_child",
112 "g_settings_get_string", 144 "g_settings_get_string",
113 "g_settings_get_boolean", 145 "g_settings_get_boolean",
114 "g_settings_get_int", 146 "g_settings_get_int",
115 "g_settings_get_strv", 147 "g_settings_get_strv",
116 "g_settings_list_schemas", 148 "g_settings_list_schemas",
117 ] 149 ]
118 } 150 }
119 151
120 source_set("gio") { 152 # pkgconfig doesn't return anything interesting for this other than -lpci
121 direct_dependent_configs = [ ":gio_config" ] 153 # on suppotred systems, so we hardcode.
122 sources = [ gio_output_h, gio_output_cc ] 154 config("libpci_config") {
123 deps = [ ":make_gio_headers" ] 155 # This is not needed as long as we're setting link_directly=0 for the library
156 # loaders.
157 #libs = [ "pci" ]
124 } 158 }
159
160 # This generates a target named "libpci".
161 generate_library_loader("libpci") {
162 name = "LibPciLoader"
163 output_h = "libpci.h"
164 output_cc = "libpci_loader.cc"
165 # TODO(brettw) convert to "<pci/pci.h>" once GN doesn't mangle <>.
166 header = "\"pci/pci.h\""
167 config = ":libpci_config"
168
169 functions = [
170 "pci_alloc",
171 "pci_init",
172 "pci_cleanup",
173 "pci_scan_bus",
174 "pci_fill_info",
175 "pci_lookup_name",
176 ]
177 }
OLDNEW
« no previous file with comments | « BUILD.gn ('k') | build/config/linux/pkg_config.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698