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

Side by Side Diff: chrome_elf/BUILD.gn

Issue 2345913003: [chrome_elf] NTRegistry - added wow64 redirection support. (Closed)
Patch Set: Final nits. Created 4 years, 2 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 | « chrome/install_static/install_util.cc ('k') | chrome_elf/blacklist/test/blacklist_test.cc » ('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 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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 # Chrome elf targets (excepting tests) should only link in kernel32. 5 # Chrome elf targets (excepting tests) should only link in kernel32.
6 # Please don't add dependencies on any other system libraries. 6 # Please don't add dependencies on any other system libraries.
7 7
8 import("//build/config/win/manifest.gni") 8 import("//build/config/win/manifest.gni")
9 import("//chrome/process_version_rc_template.gni") 9 import("//chrome/process_version_rc_template.gni")
10 import("//testing/test.gni") 10 import("//testing/test.gni")
(...skipping 25 matching lines...) Expand all
36 "chrome_elf_main.cc", 36 "chrome_elf_main.cc",
37 "chrome_elf_main.h", 37 "chrome_elf_main.h",
38 ] 38 ]
39 deps = [ 39 deps = [
40 ":blacklist", 40 ":blacklist",
41 ":chrome_elf_manifest", 41 ":chrome_elf_manifest",
42 ":chrome_elf_resources", 42 ":chrome_elf_resources",
43 ":constants", 43 ":constants",
44 ":crash", 44 ":crash",
45 ":hook_util", 45 ":hook_util",
46 ":nt_registry",
46 ":security", 47 ":security",
47 "//build/config/sanitizers:deps", 48 "//build/config/sanitizers:deps",
48 "//chrome/install_static:install_static_util", 49 "//chrome/install_static:install_static_util",
49 "//chrome_elf/nt_registry:nt_registry",
50 ] 50 ]
51 configs += [ "//build/config/win:windowed" ] 51 configs += [ "//build/config/win:windowed" ]
52 configs -= [ "//build/config/win:console" ] 52 configs -= [ "//build/config/win:console" ]
53 53
54 # Delay loads in this list will prevent user32.dll 54 # Delay loads in this list will prevent user32.dll
55 # from loading too early. 55 # from loading too early.
56 ldflags = [ 56 ldflags = [
57 "/DELAYLOAD:advapi32.dll", 57 "/DELAYLOAD:advapi32.dll",
58 "/DELAYLOAD:dbghelp.dll", 58 "/DELAYLOAD:dbghelp.dll",
59 "/DELAYLOAD:rpcrt4.dll", 59 "/DELAYLOAD:rpcrt4.dll",
60 "/DELAYLOAD:winmm.dll", 60 "/DELAYLOAD:winmm.dll",
61 ] 61 ]
62 if (current_cpu == "x86") { 62 if (current_cpu == "x86") {
63 # Don"t set an x64 base address (to avoid breaking HE-ASLR). 63 # Don"t set an x64 base address (to avoid breaking HE-ASLR).
64 ldflags += [ "/BASE:0x01c20000" ] 64 ldflags += [ "/BASE:0x01c20000" ]
65 } 65 }
66 } 66 }
67 67
68 ##------------------------------------------------------------------------------ 68 ##------------------------------------------------------------------------------
69 ## source sets 69 ## source sets
70 ##------------------------------------------------------------------------------ 70 ##------------------------------------------------------------------------------
71 71
72 source_set("security") { 72 source_set("security") {
73 sources = [ 73 sources = [
74 "chrome_elf_security.cc", 74 "chrome_elf_security.cc",
75 "chrome_elf_security.h", 75 "chrome_elf_security.h",
76 ] 76 ]
77 deps = [ 77 deps = [
78 ":constants", 78 ":constants",
79 "//chrome_elf/nt_registry:nt_registry", 79 ":nt_registry",
80 ] 80 ]
81 } 81 }
82 82
83 source_set("constants") { 83 source_set("constants") {
84 sources = [ 84 sources = [
85 "chrome_elf_constants.cc", 85 "chrome_elf_constants.cc",
86 "chrome_elf_constants.h", 86 "chrome_elf_constants.h",
87 ] 87 ]
88 } 88 }
89 89
(...skipping 29 matching lines...) Expand all
119 "blacklist/blacklist_interceptions.cc", 119 "blacklist/blacklist_interceptions.cc",
120 "blacklist/blacklist_interceptions.h", 120 "blacklist/blacklist_interceptions.h",
121 ] 121 ]
122 public_deps = [ 122 public_deps = [
123 "//sandbox", 123 "//sandbox",
124 ] 124 ]
125 deps = [ 125 deps = [
126 ":constants", 126 ":constants",
127 ":crash", 127 ":crash",
128 ":hook_util", 128 ":hook_util",
129 ":nt_registry",
129 "//base:base_static", # pe_image 130 "//base:base_static", # pe_image
130 "//chrome/install_static:install_static_util", 131 "//chrome/install_static:install_static_util",
131 "//chrome_elf/nt_registry:nt_registry",
132 ] 132 ]
133 } 133 }
134 134
135 static_library("crash") { 135 static_library("crash") {
136 sources = [ 136 sources = [
137 "../chrome/app/chrome_crash_reporter_client_win.cc", 137 "../chrome/app/chrome_crash_reporter_client_win.cc",
138 "../chrome/app/chrome_crash_reporter_client_win.h", 138 "../chrome/app/chrome_crash_reporter_client_win.h",
139 "../chrome/common/chrome_result_codes.h", 139 "../chrome/common/chrome_result_codes.h",
140 "crash/crash_helper.cc", 140 "crash/crash_helper.cc",
141 "crash/crash_helper.h", 141 "crash/crash_helper.h",
(...skipping 10 matching lines...) Expand all
152 ] 152 ]
153 } 153 }
154 154
155 static_library("hook_util") { 155 static_library("hook_util") {
156 sources = [ 156 sources = [
157 "../base/macros.h", 157 "../base/macros.h",
158 "hook_util/hook_util.cc", 158 "hook_util/hook_util.cc",
159 "hook_util/hook_util.h", 159 "hook_util/hook_util.h",
160 ] 160 ]
161 deps = [ 161 deps = [
162 ":nt_registry", # utils
162 "//base:base_static", # pe_image 163 "//base:base_static", # pe_image
163 "//sandbox", 164 "//sandbox",
164 ] 165 ]
165 } 166 }
166 167
168 # This target contains utility functions which must only depend on
169 # kernel32. Please don't add dependencies on other system libraries.
170 static_library("nt_registry") {
171 sources = [
172 "../sandbox/win/src/nt_internals.h",
173 "nt_registry/nt_registry.cc",
174 "nt_registry/nt_registry.h",
175 ]
176
177 libs = [ "kernel32.lib" ]
178 }
179
167 ##------------------------------------------------------------------------------ 180 ##------------------------------------------------------------------------------
168 ## tests 181 ## tests
169 ##------------------------------------------------------------------------------ 182 ##------------------------------------------------------------------------------
170 183
171 test("chrome_elf_unittests") { 184 test("chrome_elf_unittests") {
172 output_name = "chrome_elf_unittests" 185 output_name = "chrome_elf_unittests"
173 sources = [ 186 sources = [
174 "blacklist/test/blacklist_test.cc", 187 "blacklist/test/blacklist_test.cc",
175 "chrome_elf_util_unittest.cc", 188 "chrome_elf_util_unittest.cc",
176 "elf_imports_unittest.cc", 189 "elf_imports_unittest.cc",
177 "hook_util/test/hook_util_test.cc", 190 "hook_util/test/hook_util_test.cc",
191 "nt_registry/nt_registry_unittest.cc",
178 "run_all_unittests.cc", 192 "run_all_unittests.cc",
179 ] 193 ]
180 include_dirs = [ "$target_gen_dir" ] 194 include_dirs = [ "$target_gen_dir" ]
181 deps = [ 195 deps = [
182 ":blacklist", 196 ":blacklist",
183 ":blacklist_test_main_dll", 197 ":blacklist_test_main_dll",
184 ":constants", 198 ":constants",
185 ":crash", 199 ":crash",
186 ":hook_util", 200 ":hook_util",
187 ":hook_util_test_dll", 201 ":hook_util_test_dll",
202 ":nt_registry",
188 ":security", 203 ":security",
189 "//base", 204 "//base",
190 "//base/test:test_support", 205 "//base/test:test_support",
191 "//chrome", 206 "//chrome",
192 "//chrome/common:version_header", 207 "//chrome/common:version_header",
193 "//chrome/install_static:install_static_util", 208 "//chrome/install_static:install_static_util",
194 "//chrome_elf/nt_registry:nt_registry",
195 "//sandbox", 209 "//sandbox",
196 "//testing/gtest", 210 "//testing/gtest",
197 ] 211 ]
198 212
199 # It's not easily possible to have //chrome in data_deps without changing 213 # It's not easily possible to have //chrome in data_deps without changing
200 # the //chrome target to bundle up both initial/chrome.exe and chrome.exe. 214 # the //chrome target to bundle up both initial/chrome.exe and chrome.exe.
201 # As a workaround, explicitly include a data dep on just chrome.exe, and 215 # As a workaround, explicitly include a data dep on just chrome.exe, and
202 # add //chrome to deps above to make sure it's been built. 216 # add //chrome to deps above to make sure it's been built.
203 data = [ 217 data = [
204 "$root_out_dir/chrome.exe", 218 "$root_out_dir/chrome.exe",
(...skipping 10 matching lines...) Expand all
215 ldflags = [ 229 ldflags = [
216 "/DELAYLOAD:advapi32.dll", 230 "/DELAYLOAD:advapi32.dll",
217 "/DELAYLOAD:ole32.dll", 231 "/DELAYLOAD:ole32.dll",
218 "/DELAYLOAD:shell32.dll", 232 "/DELAYLOAD:shell32.dll",
219 "/DELAYLOAD:user32.dll", 233 "/DELAYLOAD:user32.dll",
220 "/DELAYLOAD:winmm.dll", 234 "/DELAYLOAD:winmm.dll",
221 ] 235 ]
222 } 236 }
223 237
224 shared_library("blacklist_test_main_dll") { 238 shared_library("blacklist_test_main_dll") {
239 testonly = true
225 sources = [ 240 sources = [
226 "blacklist/test/blacklist_test_main_dll.cc", 241 "blacklist/test/blacklist_test_main_dll.cc",
227 "blacklist/test/blacklist_test_main_dll.def", 242 "blacklist/test/blacklist_test_main_dll.def",
228 ] 243 ]
229 deps = [ 244 deps = [
230 ":blacklist", 245 ":blacklist",
246 ":nt_registry",
231 "//base", 247 "//base",
232 "//build/config/sanitizers:deps", 248 "//build/config/sanitizers:deps",
233 "//chrome/install_static:install_static_util", 249 "//chrome/install_static:install_static_util",
234 "//chrome_elf/nt_registry:nt_registry",
235 ] 250 ]
236 } 251 }
237 252
238 loadable_module("blacklist_test_dll_1") { 253 loadable_module("blacklist_test_dll_1") {
254 testonly = true
239 sources = [ 255 sources = [
240 "blacklist/test/blacklist_test_dll_1.cc", 256 "blacklist/test/blacklist_test_dll_1.cc",
241 "blacklist/test/blacklist_test_dll_1.def", 257 "blacklist/test/blacklist_test_dll_1.def",
242 ] 258 ]
243 deps = [ 259 deps = [
244 "//build/config/sanitizers:deps", 260 "//build/config/sanitizers:deps",
245 ] 261 ]
246 } 262 }
247 263
248 loadable_module("blacklist_test_dll_2") { 264 loadable_module("blacklist_test_dll_2") {
265 testonly = true
249 sources = [ 266 sources = [
250 "blacklist/test/blacklist_test_dll_2.cc", 267 "blacklist/test/blacklist_test_dll_2.cc",
251 "blacklist/test/blacklist_test_dll_2.def", 268 "blacklist/test/blacklist_test_dll_2.def",
252 ] 269 ]
253 deps = [ 270 deps = [
254 "//build/config/sanitizers:deps", 271 "//build/config/sanitizers:deps",
255 ] 272 ]
256 } 273 }
257 274
258 # As-is, this does not generate a .lib file because there are no exports and no 275 # As-is, this does not generate a .lib file because there are no exports and no
259 # .def file. The current definition of loadable_module does not declare a .lib 276 # .def file. The current definition of loadable_module does not declare a .lib
260 # file as an output, so this is OK. If it did (or if this used shared_library 277 # file as an output, so this is OK. If it did (or if this used shared_library
261 # which does), Ninja would get confused and always rebuild this target because 278 # which does), Ninja would get confused and always rebuild this target because
262 # it sees a declared output file but that file doesn't exist on disk. 279 # it sees a declared output file but that file doesn't exist on disk.
263 loadable_module("blacklist_test_dll_3") { 280 loadable_module("blacklist_test_dll_3") {
281 testonly = true
264 sources = [ 282 sources = [
265 "blacklist/test/blacklist_test_dll_3.cc", 283 "blacklist/test/blacklist_test_dll_3.cc",
266 ] 284 ]
267 deps = [ 285 deps = [
268 "//build/config/sanitizers:deps", 286 "//build/config/sanitizers:deps",
269 ] 287 ]
270 } 288 }
271 289
272 shared_library("hook_util_test_dll") { 290 shared_library("hook_util_test_dll") {
291 testonly = true
273 sources = [ 292 sources = [
274 "hook_util/test/hook_util_test_dll.cc", 293 "hook_util/test/hook_util_test_dll.cc",
275 "hook_util/test/hook_util_test_dll.h", 294 "hook_util/test/hook_util_test_dll.h",
276 ] 295 ]
277 deps = [ 296 deps = [
278 "//build/config/sanitizers:deps", 297 "//build/config/sanitizers:deps",
279 ] 298 ]
280 } 299 }
OLDNEW
« no previous file with comments | « chrome/install_static/install_util.cc ('k') | chrome_elf/blacklist/test/blacklist_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698