OLD | NEW |
| (Empty) |
1 # Copyright 2014 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 { | |
6 'includes': [ | |
7 'app_shell.gypi', | |
8 ], | |
9 'variables': { | |
10 # Product name is used for Mac bundle. | |
11 'app_shell_product_name': 'App Shell', | |
12 # The version is high enough to be supported by Omaha (at least 31) | |
13 # but fake enough to be obviously not a Chrome release. | |
14 'app_shell_version': '38.1234.5678.9', | |
15 'chromium_code': 1, | |
16 }, | |
17 'targets': [ | |
18 { | |
19 # GN version: //extensions/shell:app_shell_lib | |
20 'target_name': 'app_shell_lib', | |
21 'type': 'static_library', | |
22 'dependencies': [ | |
23 'app_shell_version_header', | |
24 '<(DEPTH)/base/base.gyp:base', | |
25 '<(DEPTH)/components/components.gyp:devtools_discovery', | |
26 '<(DEPTH)/components/components.gyp:devtools_http_handler', | |
27 '<(DEPTH)/components/components.gyp:pref_registry', | |
28 '<(DEPTH)/components/components.gyp:update_client', | |
29 '<(DEPTH)/components/components.gyp:user_prefs', | |
30 '<(DEPTH)/components/components.gyp:web_cache_renderer', | |
31 '<(DEPTH)/components/prefs/prefs.gyp:prefs', | |
32 '<(DEPTH)/content/content.gyp:content', | |
33 '<(DEPTH)/content/content.gyp:content_browser', | |
34 '<(DEPTH)/content/content.gyp:content_gpu', | |
35 '<(DEPTH)/content/content.gyp:content_ppapi_plugin', | |
36 '<(DEPTH)/content/content_shell_and_tests.gyp:content_shell_lib', | |
37 '<(DEPTH)/device/core/core.gyp:device_core', | |
38 '<(DEPTH)/device/hid/hid.gyp:device_hid', | |
39 '<(DEPTH)/extensions/browser/api/api_registration.gyp:extensions_api_reg
istration', | |
40 '<(DEPTH)/extensions/common/api/api.gyp:extensions_api', | |
41 '<(DEPTH)/extensions/extensions.gyp:extensions_browser', | |
42 '<(DEPTH)/extensions/extensions.gyp:extensions_common', | |
43 '<(DEPTH)/extensions/extensions.gyp:extensions_renderer', | |
44 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak', | |
45 '<(DEPTH)/extensions/extensions.gyp:extensions_utility', | |
46 '<(DEPTH)/extensions/extensions_resources.gyp:extensions_resources', | |
47 '<(DEPTH)/extensions/shell/browser/api/api_registration.gyp:shell_api_re
gistration', | |
48 '<(DEPTH)/extensions/shell/common/api/api.gyp:shell_api', | |
49 '<(DEPTH)/extensions/shell/common/api/api.gyp:extensions_features', | |
50 '<(DEPTH)/mojo/mojo_edk.gyp:mojo_system_impl', | |
51 '<(DEPTH)/skia/skia.gyp:skia', | |
52 '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink', | |
53 '<(DEPTH)/third_party/cld_2/cld_2.gyp:cld_2', | |
54 '<(DEPTH)/ui/base/ime/ui_base_ime.gyp:ui_base_ime', | |
55 '<(DEPTH)/ui/base/ui_base.gyp:ui_base', | |
56 '<(DEPTH)/v8/src/v8.gyp:v8', | |
57 ], | |
58 'export_dependent_settings': [ | |
59 '<(DEPTH)/content/content.gyp:content_browser', | |
60 ], | |
61 'include_dirs': [ | |
62 '../..', | |
63 '<(SHARED_INTERMEDIATE_DIR)', | |
64 '<(SHARED_INTERMEDIATE_DIR)/extensions/shell', | |
65 ], | |
66 'sources': [ | |
67 '<@(app_shell_lib_sources)', | |
68 ], | |
69 'conditions': [ | |
70 ['use_aura==1', { | |
71 'dependencies': [ | |
72 '<(DEPTH)/ui/wm/wm.gyp:wm', | |
73 ], | |
74 'sources': [ | |
75 '<@(app_shell_lib_sources_aura)', | |
76 ], | |
77 }], | |
78 ['chromeos==1', { | |
79 'dependencies': [ | |
80 '<(DEPTH)/chromeos/chromeos.gyp:chromeos', | |
81 '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos', | |
82 '<(DEPTH)/ui/display/display.gyp:display', | |
83 ], | |
84 'sources': [ | |
85 '<@(app_shell_lib_sources_chromeos)', | |
86 ], | |
87 }], | |
88 ['disable_nacl==0 and OS=="linux"', { | |
89 'dependencies': [ | |
90 '<(DEPTH)/components/nacl.gyp:nacl_helper', | |
91 ], | |
92 }], | |
93 ['disable_nacl==0', { | |
94 'dependencies': [ | |
95 '<(DEPTH)/components/nacl.gyp:nacl', | |
96 '<(DEPTH)/components/nacl.gyp:nacl_browser', | |
97 '<(DEPTH)/components/nacl.gyp:nacl_common', | |
98 '<(DEPTH)/components/nacl.gyp:nacl_renderer', | |
99 '<(DEPTH)/components/nacl.gyp:nacl_switches', | |
100 ], | |
101 'sources': [ | |
102 '<@(app_shell_lib_sources_nacl)', | |
103 ], | |
104 }], | |
105 ], | |
106 }, | |
107 { | |
108 # GN version: //extensions/shell:app_shell | |
109 'target_name': 'app_shell', | |
110 'type': 'executable', | |
111 'mac_bundle': 1, | |
112 'dependencies': [ | |
113 'app_shell_lib', | |
114 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak', | |
115 ], | |
116 'include_dirs': [ | |
117 '../..', | |
118 ], | |
119 'sources': [ | |
120 '<@(app_shell_sources)', | |
121 ], | |
122 'conditions': [ | |
123 ['OS=="win"', { | |
124 'msvs_settings': { | |
125 'VCLinkerTool': { | |
126 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS | |
127 }, | |
128 }, | |
129 'dependencies': [ | |
130 '<(DEPTH)/sandbox/sandbox.gyp:sandbox', | |
131 ], | |
132 }], | |
133 ['OS=="mac"', { | |
134 'product_name': '<(app_shell_product_name)', | |
135 'dependencies!': [ | |
136 'app_shell_lib', | |
137 ], | |
138 'dependencies': [ | |
139 'app_shell_framework', | |
140 'app_shell_helper', | |
141 ], | |
142 'mac_bundle_resources': [ | |
143 'app/app-Info.plist', | |
144 ], | |
145 # TODO(mark): Come up with a fancier way to do this. It should only | |
146 # be necessary to list app-Info.plist once, not the three times it is | |
147 # listed here. | |
148 'mac_bundle_resources!': [ | |
149 'app/app-Info.plist', | |
150 ], | |
151 'xcode_settings': { | |
152 'INFOPLIST_FILE': 'app/app-Info.plist', | |
153 }, | |
154 'copies': [{ | |
155 'destination': '<(PRODUCT_DIR)/<(app_shell_product_name).app/Conte
nts/Frameworks', | |
156 'files': [ | |
157 '<(PRODUCT_DIR)/<(app_shell_product_name) Helper.app', | |
158 ], | |
159 }], | |
160 'postbuilds': [ | |
161 { | |
162 'postbuild_name': 'Copy <(app_shell_product_name) Framework.framew
ork', | |
163 'action': [ | |
164 '../../build/mac/copy_framework_unversioned.sh', | |
165 '${BUILT_PRODUCTS_DIR}/<(app_shell_product_name) Framework.frame
work', | |
166 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Frameworks', | |
167 ], | |
168 }, | |
169 { | |
170 # Modify the Info.plist as needed. | |
171 'postbuild_name': 'Tweak Info.plist', | |
172 'action': ['../../build/mac/tweak_info_plist.py', | |
173 '--plist=${TARGET_BUILD_DIR}/${INFOPLIST_PATH}', | |
174 '--scm=1', | |
175 '--version=<(app_shell_version)'], | |
176 }, | |
177 ], | |
178 }], | |
179 ], | |
180 }, | |
181 { | |
182 'target_name': 'app_shell_unittests', | |
183 'type': 'executable', | |
184 'dependencies': [ | |
185 'app_shell_lib', | |
186 '<(DEPTH)/base/base.gyp:base', | |
187 '<(DEPTH)/base/base.gyp:test_support_base', | |
188 '<(DEPTH)/content/content.gyp:content_app_both', | |
189 '<(DEPTH)/content/content_shell_and_tests.gyp:test_support_content', | |
190 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak', | |
191 '<(DEPTH)/extensions/extensions.gyp:extensions_test_support', | |
192 '<(DEPTH)/testing/gtest.gyp:gtest', | |
193 ], | |
194 'sources': [ | |
195 '<@(app_shell_unittests_sources)', | |
196 ], | |
197 'conditions': [ | |
198 ['disable_nacl==0', { | |
199 'sources': [ | |
200 '<@(app_shell_unittests_sources_nacl)', | |
201 ], | |
202 }], | |
203 ['use_aura==1', { | |
204 'sources': [ | |
205 '<@(app_shell_unittests_sources_aura)', | |
206 ], | |
207 'dependencies': [ | |
208 '<(DEPTH)/ui/aura/aura.gyp:aura_test_support', | |
209 ], | |
210 }], | |
211 ['chromeos==1', { | |
212 'dependencies': [ | |
213 '<(DEPTH)/chromeos/chromeos.gyp:chromeos_test_support_without_gmock'
, | |
214 ], | |
215 'sources': [ | |
216 '<@(app_shell_unittests_sources_chromeos)', | |
217 ], | |
218 }], | |
219 ], | |
220 }, | |
221 { | |
222 'target_name': 'app_shell_version_header', | |
223 'type': 'none', | |
224 'direct_dependent_settings': { | |
225 'include_dirs': [ | |
226 '<(SHARED_INTERMEDIATE_DIR)', | |
227 ], | |
228 }, | |
229 'actions': [ | |
230 { | |
231 'action_name': 'version_header', | |
232 'message': 'Generating version header file: <@(_outputs)', | |
233 'variables': { | |
234 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', | |
235 }, | |
236 'inputs': [ | |
237 '<(version_path)', | |
238 '<(lastchange_path)', | |
239 'common/version.h.in', | |
240 ], | |
241 'outputs': [ | |
242 '<(SHARED_INTERMEDIATE_DIR)/extensions/shell/common/version.h', | |
243 ], | |
244 'action': [ | |
245 'python', | |
246 '<(version_py_path)', | |
247 '-f', '<(lastchange_path)', | |
248 '-f', '<(version_path)', | |
249 'common/version.h.in', | |
250 '<@(_outputs)', | |
251 ], | |
252 'includes': [ | |
253 '../../build/util/version.gypi', | |
254 ], | |
255 }, | |
256 ], | |
257 }, | |
258 ], # targets | |
259 | |
260 'conditions': [ | |
261 ['OS=="mac"', { | |
262 'targets': [ | |
263 { | |
264 # GN version: //extensions/shell:app_shell_framework | |
265 'target_name': 'app_shell_framework', | |
266 'type': 'shared_library', | |
267 'product_name': '<(app_shell_product_name) Framework', | |
268 'mac_bundle': 1, | |
269 'mac_bundle_resources': [ | |
270 '<(PRODUCT_DIR)/extensions_shell_and_test.pak', | |
271 'app/framework-Info.plist', | |
272 ], | |
273 'mac_bundle_resources!': [ | |
274 'app/framework-Info.plist', | |
275 ], | |
276 'xcode_settings': { | |
277 # The framework is placed within the .app's Framework | |
278 # directory. DYLIB_INSTALL_NAME_BASE and | |
279 # LD_DYLIB_INSTALL_NAME affect -install_name. | |
280 'DYLIB_INSTALL_NAME_BASE': | |
281 '@executable_path/../Frameworks', | |
282 # See /build/mac/copy_framework_unversioned.sh for | |
283 # information on LD_DYLIB_INSTALL_NAME. | |
284 'LD_DYLIB_INSTALL_NAME': | |
285 '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(WRAPPER_NAME)/$(PR
ODUCT_NAME)', | |
286 | |
287 'INFOPLIST_FILE': 'app/framework-Info.plist', | |
288 }, | |
289 'dependencies': [ | |
290 'app_shell_lib', | |
291 ], | |
292 'include_dirs': [ | |
293 '../..', | |
294 ], | |
295 'sources': [ | |
296 '<@(app_shell_sources_mac)', | |
297 ], | |
298 'postbuilds': [ | |
299 { | |
300 # Modify the Info.plist as needed. The script explains why | |
301 # this is needed. This is also done in the chrome target. | |
302 # The framework needs the Breakpad keys if this feature is | |
303 # enabled. It does not need the Keystone keys; these always | |
304 # come from the outer application bundle. The framework | |
305 # doesn't currently use the SCM keys for anything, | |
306 # but this seems like a really good place to store them. | |
307 'postbuild_name': 'Tweak Info.plist', | |
308 'action': ['../../build/mac/tweak_info_plist.py', | |
309 '--plist=${TARGET_BUILD_DIR}/${INFOPLIST_PATH}', | |
310 '--breakpad=0', | |
311 '--keystone=0', | |
312 '--scm=1', | |
313 '--version=<(app_shell_version)', | |
314 '--branding=<(app_shell_product_name)'], | |
315 }, | |
316 ], | |
317 'conditions': [ | |
318 ['icu_use_data_file_flag==1', { | |
319 'mac_bundle_resources': [ | |
320 '<(PRODUCT_DIR)/icudtl.dat', | |
321 ], | |
322 }], | |
323 ['v8_use_external_startup_data==1', { | |
324 'mac_bundle_resources': [ | |
325 '<(PRODUCT_DIR)/natives_blob.bin', | |
326 '<(PRODUCT_DIR)/snapshot_blob.bin', | |
327 ], | |
328 }], | |
329 ], | |
330 }, # target app_shell_framework | |
331 { | |
332 'target_name': 'app_shell_helper', | |
333 'type': 'executable', | |
334 'variables': { 'enable_wexit_time_destructors': 1, }, | |
335 'product_name': '<(app_shell_product_name) Helper', | |
336 'mac_bundle': 1, | |
337 'dependencies': [ | |
338 'app_shell_framework', | |
339 ], | |
340 'sources': [ | |
341 'app/shell_main.cc', | |
342 'app/helper-Info.plist', | |
343 ], | |
344 # TODO(mark): Come up with a fancier way to do this. It should only | |
345 # be necessary to list helper-Info.plist once, not the three times it | |
346 # is listed here. | |
347 'mac_bundle_resources!': [ | |
348 'app/helper-Info.plist', | |
349 ], | |
350 # TODO(mark): For now, don't put any resources into this app. Its | |
351 # resources directory will be a symbolic link to the browser app's | |
352 # resources directory. | |
353 'mac_bundle_resources/': [ | |
354 ['exclude', '.*'], | |
355 ], | |
356 'xcode_settings': { | |
357 'INFOPLIST_FILE': 'app/helper-Info.plist', | |
358 }, | |
359 'postbuilds': [ | |
360 { | |
361 # The framework defines its load-time path | |
362 # (DYLIB_INSTALL_NAME_BASE) relative to the main executable | |
363 # (chrome). A different relative path needs to be used in | |
364 # helper_app. | |
365 'postbuild_name': 'Fix Framework Link', | |
366 'action': [ | |
367 'install_name_tool', | |
368 '-change', | |
369 '@executable_path/../Frameworks/<(app_shell_product_name) Framew
ork.framework/<(app_shell_product_name) Framework', | |
370 '@executable_path/../../../<(app_shell_product_name) Framework.f
ramework/<(app_shell_product_name) Framework', | |
371 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}' | |
372 ], | |
373 }, | |
374 { | |
375 # Modify the Info.plist as needed. The script explains why this | |
376 # is needed. This is also done in the chrome and chrome_dll | |
377 # targets. In this case, --breakpad=0, --keystone=0, and --scm=0 | |
378 # are used because Breakpad, Keystone, and SCM keys are | |
379 # never placed into the helper. | |
380 'postbuild_name': 'Tweak Info.plist', | |
381 'action': ['../../build/mac/tweak_info_plist.py', | |
382 '--plist=${TARGET_BUILD_DIR}/${INFOPLIST_PATH}', | |
383 '--breakpad=0', | |
384 '--keystone=0', | |
385 '--scm=0', | |
386 '--version=<(app_shell_version)'], | |
387 }, | |
388 ], | |
389 }, # target app_shell_helper | |
390 ], | |
391 }], # OS=="mac" | |
392 ['test_isolation_mode != "noop"', { | |
393 'targets': [ | |
394 { | |
395 'target_name': 'app_shell_unittests_run', | |
396 'type': 'none', | |
397 'dependencies': [ | |
398 'app_shell_unittests', | |
399 ], | |
400 'includes': [ | |
401 '../../build/isolate.gypi', | |
402 ], | |
403 'sources': [ | |
404 'app_shell_unittests.isolate', | |
405 ], | |
406 }, | |
407 ], | |
408 }], | |
409 ], | |
410 } | |
OLD | NEW |