blob: 4c45e1532e0f1fbf9bc1135366f5162fced5ac10 [file] [log] [blame]
[email protected]81f30ce2012-01-18 22:10:331# Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]5629e0c2011-09-12 22:07:362# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5{
[email protected]85ff16042012-03-06 23:46:346 'variables': {
7 'content_shell_product_name': 'Content Shell',
[email protected]6d302912012-11-05 21:57:288 # The "19" is so that sites that sniff for version think that this is
9 # something reasonably current; the "77.34.5" is a hint that this isn't a
10 # standard Chrome.
11 'content_shell_version': '19.77.34.5',
[email protected]929246a2013-02-28 13:55:2012 'conditions': [
[email protected]bf6b6442013-03-07 09:18:2413 ['OS=="linux"', {
[email protected]929246a2013-02-28 13:55:2014 'use_custom_freetype%': 1,
15 }, {
16 'use_custom_freetype%': 0,
17 }],
18 ],
[email protected]85ff16042012-03-06 23:46:3419 },
[email protected]5629e0c2011-09-12 22:07:3620 'targets': [
21 {
[email protected]c1f87b22011-10-05 21:59:3322 'target_name': 'content_shell_lib',
23 'type': 'static_library',
[email protected]03ff5e52011-09-30 00:28:1424 'defines!': ['CONTENT_IMPLEMENTATION'],
[email protected]6d302912012-11-05 21:57:2825 'defines': ['CONTENT_SHELL_VERSION="<(content_shell_version)"'],
[email protected]9fbd3f862011-09-20 23:31:3426 'variables': {
27 'chromium_code': 1,
28 },
[email protected]5629e0c2011-09-12 22:07:3629 'dependencies': [
30 'content_app',
31 'content_browser',
32 'content_common',
33 'content_gpu',
34 'content_plugin',
35 'content_ppapi_plugin',
36 'content_renderer',
[email protected]ee75b8992012-01-27 07:53:5737 'content_shell_resources',
[email protected]5629e0c2011-09-12 22:07:3638 'content_utility',
39 'content_worker',
[email protected]8d41d7612012-11-14 20:32:1940 'test_support_content',
[email protected]0faa0a2b2011-11-15 18:03:1441 'content_resources.gyp:content_resources',
[email protected]aa6e79762011-09-29 20:53:5242 '../base/base.gyp:base',
43 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
44 '../build/temp_gyp/googleurl.gyp:googleurl',
45 '../ipc/ipc.gyp:ipc',
[email protected]433df472012-03-07 20:33:3946 '../media/media.gyp:media',
[email protected]aa6e79762011-09-29 20:53:5247 '../net/net.gyp:net',
[email protected]24f80692012-08-13 15:15:5048 '../net/net.gyp:net_resources',
[email protected]5629e0c2011-09-12 22:07:3649 '../skia/skia.gyp:skia',
[email protected]8350f16f2012-11-30 00:25:3250 '../ui/gl/gl.gyp:gl',
[email protected]5629e0c2011-09-12 22:07:3651 '../ui/ui.gyp:ui',
[email protected]12bc28fcb2011-09-21 15:53:5052 '../v8/tools/gyp/v8.gyp:v8',
[email protected]024b2f22013-01-17 13:56:1053 '../webkit/support/webkit_support.gyp:webkit_resources',
[email protected]01048712012-07-09 23:26:2754 '../webkit/support/webkit_support.gyp:webkit_support',
[email protected]24f80692012-08-13 15:15:5055 '<(webkit_src_dir)/Source/WebKit/chromium/WebKit.gyp:webkit',
[email protected]901312472012-10-20 04:25:0256 '<(webkit_src_dir)/Source/WebKit/chromium/WebKit.gyp:webkit_test_support',
[email protected]b2324b092012-11-01 10:34:1157 '<(webkit_src_dir)/Tools/DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:TestRunner',
[email protected]5629e0c2011-09-12 22:07:3658 ],
59 'include_dirs': [
60 '..',
61 ],
62 'sources': [
[email protected]4d4eb5b2013-01-29 21:55:5563 'shell/android/shell_jni_registrar.cc',
64 'shell/android/shell_jni_registrar.h',
65 'shell/android/shell_manager.cc',
66 'shell/android/shell_manager.h',
[email protected]6cfccd12012-06-28 12:14:0567 'shell/geolocation/shell_access_token_store.cc',
68 'shell/geolocation/shell_access_token_store.h',
[email protected]2a2caa02013-01-22 20:50:3669 'shell/minimal_ash.cc',
70 'shell/minimal_ash.h',
[email protected]e1aff172012-03-22 22:41:1771 'shell/paths_mac.h',
72 'shell/paths_mac.mm',
[email protected]9fbd3f862011-09-20 23:31:3473 'shell/shell.cc',
74 'shell/shell.h',
[email protected]a08029b42012-04-25 03:18:4675 'shell/shell_android.cc',
[email protected]fa4a45832012-04-12 21:32:4876 'shell/shell_aura.cc',
[email protected]9fbd3f862011-09-20 23:31:3477 'shell/shell_gtk.cc',
78 'shell/shell_mac.mm',
79 'shell/shell_win.cc',
[email protected]c4e78d72012-03-24 22:55:4180 'shell/shell_application_mac.h',
81 'shell/shell_application_mac.mm',
[email protected]b0f146f2011-09-15 22:14:2582 'shell/shell_browser_context.cc',
83 'shell/shell_browser_context.h',
[email protected]5629e0c2011-09-12 22:07:3684 'shell/shell_browser_main.cc',
85 'shell/shell_browser_main.h',
[email protected]147f8092012-03-21 11:47:4586 'shell/shell_browser_main_parts.cc',
87 'shell/shell_browser_main_parts.h',
88 'shell/shell_browser_main_parts_mac.mm',
[email protected]5629e0c2011-09-12 22:07:3689 'shell/shell_content_browser_client.cc',
90 'shell/shell_content_browser_client.h',
91 'shell/shell_content_client.cc',
92 'shell/shell_content_client.h',
[email protected]5629e0c2011-09-12 22:07:3693 'shell/shell_content_renderer_client.cc',
94 'shell/shell_content_renderer_client.h',
[email protected]ee75b8992012-01-27 07:53:5795 'shell/shell_devtools_delegate.cc',
96 'shell/shell_devtools_delegate.h',
[email protected]0773e0c2013-01-25 15:57:5797 'shell/shell_devtools_frontend.cc',
98 'shell/shell_devtools_frontend.h',
[email protected]98d6f152011-09-29 19:35:5199 'shell/shell_download_manager_delegate.cc',
100 'shell/shell_download_manager_delegate.h',
[email protected]71a88bb2013-02-01 22:05:15101 'shell/shell_javascript_dialog_manager.cc',
102 'shell/shell_javascript_dialog_manager.h',
[email protected]fc4f4dd42012-07-30 20:52:48103 'shell/shell_javascript_dialog_gtk.cc',
[email protected]f2210022012-03-29 00:36:08104 'shell/shell_javascript_dialog_mac.mm',
[email protected]7fc83822012-03-30 19:53:29105 'shell/shell_javascript_dialog_win.cc',
[email protected]f2210022012-03-29 00:36:08106 'shell/shell_javascript_dialog.h',
[email protected]e6fbecf22012-08-01 10:11:03107 'shell/shell_login_dialog_gtk.cc',
[email protected]e3503ac2012-04-05 15:01:36108 'shell/shell_login_dialog_mac.mm',
109 'shell/shell_login_dialog.cc',
110 'shell/shell_login_dialog.h',
[email protected]c1f87b22011-10-05 21:59:33111 'shell/shell_main_delegate.cc',
112 'shell/shell_main_delegate.h',
[email protected]5a3c3f32013-01-23 12:23:39113 'shell/shell_message_filter.cc',
114 'shell/shell_message_filter.h',
[email protected]efb5f572012-01-29 10:57:33115 'shell/shell_messages.cc',
116 'shell/shell_messages.h',
[email protected]33bc2832012-03-29 08:18:17117 'shell/shell_network_delegate.cc',
118 'shell/shell_network_delegate.h',
[email protected]fc41b212013-03-25 16:04:23119 'shell/shell_quota_permission_context.cc',
120 'shell/shell_quota_permission_context.h',
[email protected]74830f02012-01-30 22:27:04121 'shell/shell_render_process_observer.cc',
122 'shell/shell_render_process_observer.h',
[email protected]e3503ac2012-04-05 15:01:36123 'shell/shell_resource_dispatcher_host_delegate.cc',
124 'shell/shell_resource_dispatcher_host_delegate.h',
[email protected]efb5f572012-01-29 10:57:33125 'shell/shell_switches.cc',
126 'shell/shell_switches.h',
[email protected]4f92df82013-03-07 13:21:13127 'shell/shell_test_configuration.cc',
128 'shell/shell_test_configuration.h',
[email protected]c5f1e332011-09-27 01:08:03129 'shell/shell_url_request_context_getter.cc',
130 'shell/shell_url_request_context_getter.h',
[email protected]0d978ef2013-02-27 15:32:54131 'shell/shell_web_contents_view_delegate_android.cc',
[email protected]4c2aa392012-09-03 01:29:42132 'shell/shell_web_contents_view_delegate_creator.h',
133 'shell/shell_web_contents_view_delegate_gtk.cc',
[email protected]dcbe5fe32012-09-10 10:18:32134 'shell/shell_web_contents_view_delegate_mac.mm',
[email protected]4c9bf3482012-09-12 14:35:35135 'shell/shell_web_contents_view_delegate_win.cc',
[email protected]4c2aa392012-09-03 01:29:42136 'shell/shell_web_contents_view_delegate.h',
[email protected]8dafad32012-12-10 14:11:45137 'shell/webkit_test_controller.cc',
138 'shell/webkit_test_controller.h',
[email protected]55915a72012-12-18 11:55:25139 'shell/webkit_test_helpers.cc',
140 'shell/webkit_test_helpers.h',
[email protected]87715122012-10-11 15:53:06141 'shell/webkit_test_platform_support.h',
142 'shell/webkit_test_platform_support_android.cc',
143 'shell/webkit_test_platform_support_linux.cc',
144 'shell/webkit_test_platform_support_mac.mm',
145 'shell/webkit_test_platform_support_win.cc',
[email protected]9b4c6cd2012-08-20 10:47:45146 'shell/webkit_test_runner.cc',
147 'shell/webkit_test_runner.h',
[email protected]5629e0c2011-09-12 22:07:36148 ],
149 'msvs_settings': {
150 'VCLinkerTool': {
151 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
152 },
153 },
154 'conditions': [
155 ['OS=="win" and win_use_allocator_shim==1', {
156 'dependencies': [
157 '../base/allocator/allocator.gyp:allocator',
158 ],
159 }],
[email protected]9fbd3f862011-09-20 23:31:34160 ['OS=="win"', {
161 'resource_include_dirs': [
162 '<(SHARED_INTERMEDIATE_DIR)/webkit',
163 ],
[email protected]9fbd3f862011-09-20 23:31:34164 'dependencies': [
[email protected]9fbd3f862011-09-20 23:31:34165 '<(DEPTH)/webkit/support/webkit_support.gyp:webkit_strings',
166 ],
167 'configurations': {
168 'Debug_Base': {
169 'msvs_settings': {
170 'VCLinkerTool': {
171 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
172 },
173 },
174 },
175 },
[email protected]3bed5302013-02-15 19:31:41176 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
177 'msvs_disabled_warnings': [ 4267, ],
[email protected]85ff16042012-03-06 23:46:34178 }], # OS=="win"
[email protected]6eb6bb62012-11-10 06:30:59179 ['OS=="linux"', {
180 'dependencies': [
181 '../build/linux/system.gyp:fontconfig',
182 ],
183 }],
[email protected]689266d2012-08-07 12:52:20184 ['OS=="android"', {
[email protected]82e9e2b12012-07-19 00:32:01185 'dependencies': [
186 'content_shell_jni_headers',
187 ],
[email protected]689266d2012-08-07 12:52:20188 }, { # else: OS!="android"
189 'dependencies': [
190 # This dependency is for running DRT against the content shell, and
191 # this combination is not yet supported on Android.
192 '../webkit/support/webkit_support.gyp:webkit_support',
193 ],
[email protected]82e9e2b12012-07-19 00:32:01194 }], # OS=="android"
[email protected]c767d572012-07-27 10:55:58195 ['os_posix==1 and use_aura==1 and linux_use_tcmalloc==1', {
196 'dependencies': [
197 # This is needed by content/app/content_main_runner.cc
198 '../base/allocator/allocator.gyp:allocator',
199 ],
200 }],
[email protected]fa4a45832012-04-12 21:32:48201 ['use_aura==1', {
[email protected]c767d572012-07-27 10:55:58202 'dependencies': [
203 '../ui/aura/aura.gyp:aura',
204 '../ui/base/strings/ui_strings.gyp:ui_strings',
[email protected]9e7fca802012-09-01 18:53:05205 '../ui/views/controls/webview/webview.gyp:webview',
[email protected]c767d572012-07-27 10:55:58206 '../ui/views/views.gyp:views',
[email protected]0aa76932012-10-14 19:11:10207 '../ui/views/views.gyp:views_test_support',
[email protected]c767d572012-07-27 10:55:58208 '../ui/ui.gyp:ui_resources',
209 ],
[email protected]fa4a45832012-04-12 21:32:48210 'sources/': [
211 ['exclude', 'shell/shell_gtk.cc'],
212 ['exclude', 'shell/shell_win.cc'],
213 ],
[email protected]96b80b472012-07-03 19:41:56214 }], # use_aura==1
[email protected]c767d572012-07-27 10:55:58215 ['chromeos==1', {
216 'dependencies': [
[email protected]48dea152012-11-02 20:26:46217 '../ash/ash.gyp:ash',
[email protected]c767d572012-07-27 10:55:58218 '../chromeos/chromeos.gyp:chromeos',
219 ],
220 }], # chromeos==1
[email protected]929246a2013-02-28 13:55:20221 ['use_custom_freetype==1', {
222 'dependencies': [
223 '../third_party/freetype2/freetype2.gyp:freetype2',
224 ],
225 }],
[email protected]5629e0c2011-09-12 22:07:36226 ],
227 },
[email protected]c1f87b22011-10-05 21:59:33228 {
[email protected]ee75b8992012-01-27 07:53:57229 'target_name': 'content_shell_resources',
230 'type': 'none',
[email protected]b581eb402012-03-09 01:31:46231 'dependencies': [
232 'generate_content_shell_resources',
233 ],
234 'variables': {
235 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/content',
236 },
237 'includes': [ '../build/grit_target.gypi' ],
238 'copies': [
239 {
240 'destination': '<(PRODUCT_DIR)',
241 'files': [
242 '<(SHARED_INTERMEDIATE_DIR)/content/shell_resources.pak'
243 ],
244 },
245 ],
[email protected]4cb792f42012-03-24 03:12:42246 },
247 {
[email protected]b581eb402012-03-09 01:31:46248 'target_name': 'generate_content_shell_resources',
249 'type': 'none',
[email protected]ee75b8992012-01-27 07:53:57250 'variables': {
251 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/content',
252 },
253 'actions': [
254 {
255 'action_name': 'content_shell_resources',
256 'variables': {
257 'grit_grd_file': 'shell/shell_resources.grd',
258 },
259 'includes': [ '../build/grit_action.gypi' ],
260 },
261 ],
[email protected]ee75b8992012-01-27 07:53:57262 },
263 {
[email protected]81f30ce2012-01-18 22:10:33264 # We build a minimal set of resources so WebKit in content_shell has
265 # access to necessary resources.
266 'target_name': 'content_shell_pak',
267 'type': 'none',
[email protected]ee75b8992012-01-27 07:53:57268 'dependencies': [
[email protected]70019152012-12-19 11:44:19269 'browser/devtools/devtools_resources.gyp:devtools_resources',
[email protected]ee75b8992012-01-27 07:53:57270 'content_shell_resources',
[email protected]6c3e6492012-02-27 17:07:45271 '<(DEPTH)/ui/ui.gyp:ui_resources',
[email protected]ee75b8992012-01-27 07:53:57272 ],
[email protected]81f30ce2012-01-18 22:10:33273 'variables': {
274 'repack_path': '<(DEPTH)/tools/grit/grit/format/repack.py',
275 },
276 'actions': [
277 {
278 'action_name': 'repack_content_shell_pack',
279 'variables': {
280 'pak_inputs': [
281 '<(SHARED_INTERMEDIATE_DIR)/content/content_resources.pak',
[email protected]ee75b8992012-01-27 07:53:57282 '<(SHARED_INTERMEDIATE_DIR)/content/shell_resources.pak',
[email protected]81f30ce2012-01-18 22:10:33283 '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
[email protected]c767d572012-07-27 10:55:58284 '<(SHARED_INTERMEDIATE_DIR)/ui/app_locale_settings/app_locale_settings_en-US.pak',
[email protected]a52c7312012-07-24 22:45:57285 '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/ui_resources_100_percent.pak',
[email protected]e1c26ae2013-01-31 18:13:18286 '<(SHARED_INTERMEDIATE_DIR)/ui/ui_resources/webui_resources.pak',
[email protected]c767d572012-07-27 10:55:58287 '<(SHARED_INTERMEDIATE_DIR)/ui/ui_strings/ui_strings_en-US.pak',
[email protected]ee75b8992012-01-27 07:53:57288 '<(SHARED_INTERMEDIATE_DIR)/webkit/devtools_resources.pak',
[email protected]81f30ce2012-01-18 22:10:33289 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_chromium_resources.pak',
[email protected]30c8f542012-09-01 01:02:29290 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources_100_percent.pak',
[email protected]af551a62012-07-31 16:44:03291 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_strings_en-US.pak',
[email protected]81f30ce2012-01-18 22:10:33292 ],
[email protected]81f30ce2012-01-18 22:10:33293 },
294 'inputs': [
295 '<(repack_path)',
296 '<@(pak_inputs)',
297 ],
[email protected]81f30ce2012-01-18 22:10:33298 'action': ['python', '<(repack_path)', '<@(_outputs)',
299 '<@(pak_inputs)'],
[email protected]a08029b42012-04-25 03:18:46300 'conditions': [
301 ['OS!="android"', {
302 'outputs': [
303 '<(PRODUCT_DIR)/content_shell.pak',
304 ],
305 }, {
306 'outputs': [
307 '<(PRODUCT_DIR)/content_shell/assets/content_shell.pak',
308 ],
309 }],
310 ],
[email protected]81f30ce2012-01-18 22:10:33311 },
312 ],
313 },
314 {
[email protected]c1f87b22011-10-05 21:59:33315 'target_name': 'content_shell',
316 'type': 'executable',
[email protected]85ff16042012-03-06 23:46:34317 'mac_bundle': 1,
[email protected]c1f87b22011-10-05 21:59:33318 'defines!': ['CONTENT_IMPLEMENTATION'],
319 'variables': {
320 'chromium_code': 1,
321 },
322 'dependencies': [
323 'content_shell_lib',
[email protected]81f30ce2012-01-18 22:10:33324 'content_shell_pak',
[email protected]bb5d2d92012-10-15 07:45:42325 '../third_party/mesa/mesa.gyp:osmesa',
[email protected]c1f87b22011-10-05 21:59:33326 ],
327 'include_dirs': [
328 '..',
329 ],
330 'sources': [
[email protected]711f428e2012-06-22 02:18:23331 'app/startup_helper_win.cc',
[email protected]c1f87b22011-10-05 21:59:33332 'shell/shell_main.cc',
333 ],
[email protected]85ff16042012-03-06 23:46:34334 'mac_bundle_resources': [
335 'shell/mac/app.icns',
336 'shell/mac/app-Info.plist',
337 ],
338 # TODO(mark): Come up with a fancier way to do this. It should only
339 # be necessary to list app-Info.plist once, not the three times it is
340 # listed here.
341 'mac_bundle_resources!': [
342 'shell/mac/app-Info.plist',
343 ],
344 'xcode_settings': {
345 'INFOPLIST_FILE': 'shell/mac/app-Info.plist',
346 },
[email protected]c1f87b22011-10-05 21:59:33347 'msvs_settings': {
348 'VCLinkerTool': {
349 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
350 },
351 },
352 'conditions': [
353 ['OS=="win" and win_use_allocator_shim==1', {
354 'dependencies': [
355 '../base/allocator/allocator.gyp:allocator',
356 ],
357 }],
358 ['OS=="win"', {
[email protected]7fc83822012-03-30 19:53:29359 'sources': [
360 'shell/shell.rc',
361 ],
[email protected]c1f87b22011-10-05 21:59:33362 'configurations': {
363 'Debug_Base': {
364 'msvs_settings': {
365 'VCLinkerTool': {
366 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
367 },
368 },
369 },
370 },
[email protected]85ff16042012-03-06 23:46:34371 }], # OS=="win"
[email protected]27315ce42011-10-14 01:25:12372 ['OS == "win" or (toolkit_uses_gtk == 1 and selinux == 0)', {
373 'dependencies': [
374 '../sandbox/sandbox.gyp:sandbox',
375 ],
[email protected]85ff16042012-03-06 23:46:34376 }], # OS=="win" or (toolkit_uses_gtk == 1 and selinux == 0)
[email protected]398990892012-01-20 03:25:58377 ['toolkit_uses_gtk == 1', {
378 'dependencies': [
379 '<(DEPTH)/build/linux/system.gyp:gtk',
380 ],
[email protected]85ff16042012-03-06 23:46:34381 }], # toolkit_uses_gtk
382 ['OS=="mac"', {
383 'product_name': '<(content_shell_product_name)',
384 'dependencies!': [
385 'content_shell_lib',
386 ],
387 'dependencies': [
388 'content_shell_framework',
[email protected]180df8f2012-03-09 22:36:10389 'content_shell_helper_app',
390 ],
391 'copies': [
392 {
393 'destination': '<(PRODUCT_DIR)/<(content_shell_product_name).app/Contents/Frameworks',
394 'files': [
395 '<(PRODUCT_DIR)/<(content_shell_product_name) Helper.app',
396 ],
397 },
[email protected]85ff16042012-03-06 23:46:34398 ],
399 'postbuilds': [
400 {
401 'postbuild_name': 'Copy <(content_shell_product_name) Framework.framework',
402 'action': [
403 '../build/mac/copy_framework_unversioned.sh',
404 '${BUILT_PRODUCTS_DIR}/<(content_shell_product_name) Framework.framework',
405 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Frameworks',
406 ],
407 },
408 {
409 'postbuild_name': 'Fix Framework Link',
410 'action': [
411 'install_name_tool',
412 '-change',
413 '/Library/Frameworks/<(content_shell_product_name) Framework.framework/Versions/A/<(content_shell_product_name) Framework',
414 '@executable_path/../Frameworks/<(content_shell_product_name) Framework.framework/<(content_shell_product_name) Framework',
415 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
416 ],
417 },
418 {
419 # Modify the Info.plist as needed.
420 'postbuild_name': 'Tweak Info.plist',
421 'action': ['../build/mac/tweak_info_plist.py',
[email protected]6d302912012-11-05 21:57:28422 '--scm=1',
423 '--version=<(content_shell_version)'],
[email protected]85ff16042012-03-06 23:46:34424 },
425 {
[email protected]180df8f2012-03-09 22:36:10426 # This postbuid step is responsible for creating the following
427 # helpers:
428 #
429 # Content Shell Helper EH.app and Content Shell Helper NP.app are
430 # created from Content Shell Helper.app.
431 #
432 # The EH helper is marked for an executable heap. The NP helper
433 # is marked for no PIE (ASLR).
434 'postbuild_name': 'Make More Helpers',
435 'action': [
436 '../build/mac/make_more_helpers.sh',
437 'Frameworks',
438 '<(content_shell_product_name)',
439 ],
440 },
441 {
[email protected]85ff16042012-03-06 23:46:34442 # Make sure there isn't any Objective-C in the shell's
443 # executable.
444 'postbuild_name': 'Verify No Objective-C',
445 'action': [
446 '../build/mac/verify_no_objc.sh',
447 ],
448 },
449 ],
450 }], # OS=="mac"
[email protected]c1f87b22011-10-05 21:59:33451 ],
452 },
[email protected]fe2420d2012-08-21 07:28:33453 {
454 'target_name': 'content_shell_builder',
455 'type': 'none',
456 'dependencies': [
457 'content_shell',
[email protected]fe2420d2012-08-21 07:28:33458 ],
459 },
[email protected]5629e0c2011-09-12 22:07:36460 ],
[email protected]85ff16042012-03-06 23:46:34461 'conditions': [
462 ['OS=="mac"', {
463 'targets': [
464 {
465 'target_name': 'content_shell_framework',
466 'type': 'shared_library',
467 'product_name': '<(content_shell_product_name) Framework',
468 'mac_bundle': 1,
469 'mac_bundle_resources': [
[email protected]e3503ac2012-04-05 15:01:36470 'shell/mac/English.lproj/HttpAuth.xib',
[email protected]85ff16042012-03-06 23:46:34471 'shell/mac/English.lproj/MainMenu.xib',
[email protected]4cb792f42012-03-24 03:12:42472 '<(PRODUCT_DIR)/content_shell.pak'
[email protected]85ff16042012-03-06 23:46:34473 ],
474 'dependencies': [
475 'content_shell_lib',
476 ],
477 'include_dirs': [
478 '..',
479 ],
480 'sources': [
481 'shell/shell_content_main.cc',
482 'shell/shell_content_main.h',
483 ],
[email protected]5d96bbe2012-07-25 17:13:23484 'copies': [
485 {
486 # Copy FFmpeg binaries for audio/video support.
487 'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Libraries',
488 'files': [
489 '<(PRODUCT_DIR)/ffmpegsumo.so',
490 ],
491 },
492 ],
[email protected]180df8f2012-03-09 22:36:10493 }, # target content_shell_framework
494 {
495 'target_name': 'content_shell_helper_app',
496 'type': 'executable',
497 'variables': { 'enable_wexit_time_destructors': 1, },
498 'product_name': '<(content_shell_product_name) Helper',
499 'mac_bundle': 1,
500 'dependencies': [
501 'content_shell_framework',
502 ],
503 'sources': [
504 'shell/shell_main.cc',
505 'shell/mac/helper-Info.plist',
506 ],
507 # TODO(mark): Come up with a fancier way to do this. It should only
508 # be necessary to list helper-Info.plist once, not the three times it
509 # is listed here.
510 'mac_bundle_resources!': [
511 'shell/mac/helper-Info.plist',
512 ],
513 # TODO(mark): For now, don't put any resources into this app. Its
514 # resources directory will be a symbolic link to the browser app's
515 # resources directory.
516 'mac_bundle_resources/': [
517 ['exclude', '.*'],
518 ],
519 'xcode_settings': {
520 'INFOPLIST_FILE': 'shell/mac/helper-Info.plist',
521 },
522 'postbuilds': [
523 {
524 # The framework defines its load-time path
525 # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
526 # (chrome). A different relative path needs to be used in
527 # content_shell_helper_app.
528 'postbuild_name': 'Fix Framework Link',
529 'action': [
530 'install_name_tool',
531 '-change',
532 '/Library/Frameworks/<(content_shell_product_name) Framework.framework/Versions/A/<(content_shell_product_name) Framework',
533 '@executable_path/../../../../Frameworks/<(content_shell_product_name) Framework.framework/<(content_shell_product_name) Framework',
534 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
535 ],
536 },
537 {
538 # Modify the Info.plist as needed. The script explains why this
539 # is needed. This is also done in the chrome and chrome_dll
[email protected]bbf52442012-08-23 22:53:18540 # targets. In this case, --breakpad=0, --keystone=0, and --scm=0
541 # are used because Breakpad, Keystone, and SCM keys are
[email protected]180df8f2012-03-09 22:36:10542 # never placed into the helper.
543 'postbuild_name': 'Tweak Info.plist',
544 'action': ['../build/mac/tweak_info_plist.py',
545 '--breakpad=0',
546 '--keystone=0',
[email protected]6d302912012-11-05 21:57:28547 '--scm=0',
548 '--version=<(content_shell_version)'],
[email protected]180df8f2012-03-09 22:36:10549 },
550 {
551 # Make sure there isn't any Objective-C in the helper app's
552 # executable.
553 'postbuild_name': 'Verify No Objective-C',
554 'action': [
555 '../build/mac/verify_no_objc.sh',
556 ],
557 },
558 ],
[email protected]ec40c38f2012-06-28 16:37:49559 'conditions': [
560 ['component=="shared_library"', {
561 'xcode_settings': {
562 'LD_RUNPATH_SEARCH_PATHS': [
563 # Get back from Content Shell.app/Contents/Frameworks/
564 # Helper.app/Contents/MacOS
565 '@loader_path/../../../../../..',
566 ],
567 },
568 }],
569 ],
[email protected]180df8f2012-03-09 22:36:10570 }, # target content_shell_helper_app
[email protected]85ff16042012-03-06 23:46:34571 ],
572 }], # OS=="mac"
[email protected]cc66d282012-03-30 11:44:06573 ['OS=="android"', {
574 'targets': [
575 {
[email protected]a08029b42012-04-25 03:18:46576 # TODO(jrg): Update this action and other jni generators to only
577 # require specifying the java directory and generate the rest.
578 'target_name': 'content_shell_jni_headers',
579 'type': 'none',
[email protected]e46f66152012-07-19 20:02:55580 'sources': [
[email protected]153d4eb2013-02-12 02:08:18581 'shell/android/browsertests_apk/src/org/chromium/content_browsertests_apk/BrowserTestSystemMessageHandler.java',
[email protected]4d4eb5b2013-01-29 21:55:55582 'shell/android/browsertests_apk/src/org/chromium/content_browsertests_apk/ContentBrowserTestsActivity.java',
[email protected]e46f66152012-07-19 20:02:55583 'shell/android/java/src/org/chromium/content_shell/ShellManager.java',
584 'shell/android/java/src/org/chromium/content_shell/Shell.java',
585 ],
[email protected]029a7712013-01-15 08:11:42586 'direct_dependent_settings': {
587 'include_dirs': [
588 '<(SHARED_INTERMEDIATE_DIR)/content/shell',
589 ],
590 },
[email protected]a08029b42012-04-25 03:18:46591 'variables': {
[email protected]521cd942013-03-07 22:34:05592 'jni_gen_package': 'content/shell',
[email protected]a08029b42012-04-25 03:18:46593 },
594 'includes': [ '../build/jni_generator.gypi' ],
595 },
596 {
[email protected]c1101582012-06-25 17:07:18597 'target_name': 'libcontent_shell_content_view',
[email protected]a08029b42012-04-25 03:18:46598 'type': 'shared_library',
599 'dependencies': [
600 'content_shell_jni_headers',
601 'content_shell_lib',
602 'content_shell_pak',
603 # Skia is necessary to ensure the dependencies needed by
604 # WebContents are included.
605 '../skia/skia.gyp:skia',
606 '<(DEPTH)/media/media.gyp:player_android',
607 ],
[email protected]a08029b42012-04-25 03:18:46608 'sources': [
609 'shell/android/shell_library_loader.cc',
610 'shell/android/shell_library_loader.h',
[email protected]f83a47392012-07-12 22:15:04611 ],
[email protected]7abcaa82012-06-27 17:09:48612 'conditions': [
[email protected]d999c3cb2013-03-12 10:22:36613 ['android_webview_build==1', {
[email protected]7abcaa82012-06-27 17:09:48614 'ldflags': [
615 '-lgabi++', # For rtti
616 ],
617 }],
618 ],
[email protected]a08029b42012-04-25 03:18:46619 },
620 {
[email protected]4d4eb5b2013-01-29 21:55:55621 'target_name': 'content_shell_java',
622 'type': 'none',
623 'dependencies': [
624 'content_java',
625 ],
626 'variables': {
[email protected]4d4eb5b2013-01-29 21:55:55627 'java_in_dir': '../content/shell/android/java',
628 'has_java_resources': 1,
629 'R_package': 'org.chromium.content_shell',
630 'R_package_relpath': 'org/chromium/content_shell',
631 },
632 'includes': [ '../build/java.gypi' ],
633 },
634 {
[email protected]319d6a82012-09-20 22:52:28635 # content_shell_apk creates a .jar as a side effect. Any java targets
636 # that need that .jar in their classpath should depend on this target,
[email protected]4d4eb5b2013-01-29 21:55:55637 # content_shell_apk_java. Dependents of content_shell_apk receive its
638 # jar path in the variable 'apk_output_jar_path'. This target should
639 # only be used by targets which instrument content_shell_apk.
640 'target_name': 'content_shell_apk_java',
[email protected]319d6a82012-09-20 22:52:28641 'type': 'none',
[email protected]319d6a82012-09-20 22:52:28642 'dependencies': [
[email protected]319d6a82012-09-20 22:52:28643 'content_shell_apk',
[email protected]319d6a82012-09-20 22:52:28644 ],
[email protected]04fe3782012-10-09 02:20:29645 # This all_dependent_settings is used for java targets only. This will
646 # add the content_shell jar to the classpath of dependent java
647 # targets.
648 'all_dependent_settings': {
[email protected]319d6a82012-09-20 22:52:28649 'variables': {
[email protected]b74cf84e2012-11-16 07:31:49650 'input_jars_paths': ['>(apk_output_jar_path)'],
[email protected]319d6a82012-09-20 22:52:28651 },
652 },
653 # Add an action with the appropriate output. This allows the generated
654 # buildfiles to determine which target the output corresponds to.
655 'actions': [
656 {
657 'action_name': 'fake_generate_jar',
658 'inputs': [],
[email protected]b74cf84e2012-11-16 07:31:49659 'outputs': ['>(apk_output_jar_path)'],
[email protected]319d6a82012-09-20 22:52:28660 'action': [],
661 },
662 ],
663 },
[email protected]75c86a22012-09-26 03:50:37664 {
665 'target_name': 'content_shell_apk',
666 'type': 'none',
667 'dependencies': [
668 'content_java',
[email protected]4d4eb5b2013-01-29 21:55:55669 'content_shell_java',
670 'libcontent_shell_content_view',
[email protected]75c86a22012-09-26 03:50:37671 '../base/base.gyp:base_java',
672 '../media/media.gyp:media_java',
673 '../net/net.gyp:net_java',
674 '../ui/ui.gyp:ui_java',
675 ],
676 'variables': {
[email protected]75c86a22012-09-26 03:50:37677 'apk_name': 'ContentShell',
[email protected]4d4eb5b2013-01-29 21:55:55678 'manifest_package_name': 'org.chromium.content_shell_apk',
679 'java_in_dir': 'shell/android/shell_apk',
[email protected]bd6ab3db2013-03-26 17:35:21680 'resource_dir': 'shell/android/shell_apk/res',
[email protected]cbd76eb2012-10-11 23:23:49681 'native_libs_paths': ['<(SHARED_LIB_DIR)/libcontent_shell_content_view.so'],
[email protected]75c86a22012-09-26 03:50:37682 'additional_input_paths': ['<(PRODUCT_DIR)/content_shell/assets/content_shell.pak'],
[email protected]4d4eb5b2013-01-29 21:55:55683 'asset_location': '<(ant_build_out)/content_shell/assets',
[email protected]75c86a22012-09-26 03:50:37684 },
[email protected]75c86a22012-09-26 03:50:37685 'includes': [ '../build/java_apk.gypi' ],
686 },
[email protected]cc66d282012-03-30 11:44:06687 ],
688 }], # OS=="android"
689 ]
[email protected]5629e0c2011-09-12 22:07:36690}