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.
7 # Product name is used for Mac bundle.
8 'app_shell_product_name': 'App Shell',
9 # The version is high enough to be supported by Omaha (at least 31)
10 # but fake enough to be obviously not a Chrome release.
11 'app_shell_version': '38.1234.5678.9',
16 'target_name': 'app_shell_lib',
17 'type': 'static_library',
19 'app_shell_version_header',
20 '<(DEPTH)/base/base.gyp:base',
21 '<(DEPTH)/base/base.gyp:base_prefs',
22 '<(DEPTH)/components/components.gyp:pref_registry',
23 '<(DEPTH)/components/components.gyp:update_client',
24 '<(DEPTH)/components/components.gyp:user_prefs',
25 '<(DEPTH)/components/components.gyp:web_cache_renderer',
26 '<(DEPTH)/content/content.gyp:content',
27 '<(DEPTH)/content/content.gyp:content_browser',
28 '<(DEPTH)/content/content.gyp:content_gpu',
29 '<(DEPTH)/content/content.gyp:content_ppapi_plugin',
30 '<(DEPTH)/content/content_shell_and_tests.gyp:content_shell_lib',
31 '<(DEPTH)/device/core/core.gyp:device_core',
32 '<(DEPTH)/device/hid/hid.gyp:device_hid',
33 '<(DEPTH)/extensions/browser/api/api_registration.gyp:extensions_api_registration',
34 '<(DEPTH)/extensions/common/api/api.gyp:extensions_api',
35 '<(DEPTH)/extensions/extensions.gyp:extensions_browser',
36 '<(DEPTH)/extensions/extensions.gyp:extensions_common',
37 '<(DEPTH)/extensions/extensions.gyp:extensions_renderer',
38 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak',
39 '<(DEPTH)/extensions/extensions.gyp:extensions_utility',
40 '<(DEPTH)/extensions/extensions_resources.gyp:extensions_resources',
41 '<(DEPTH)/extensions/shell/browser/api/api_registration.gyp:shell_api_registration',
42 '<(DEPTH)/extensions/shell/common/api/api.gyp:shell_api',
43 '<(DEPTH)/mojo/mojo_base.gyp:mojo_environment_chromium',
44 '<(DEPTH)/skia/skia.gyp:skia',
45 '<(DEPTH)/third_party/WebKit/public/blink.gyp:blink',
46 '<(DEPTH)/third_party/mojo/mojo_edk.gyp:mojo_system_impl',
47 '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
49 'export_dependent_settings': [
50 '<(DEPTH)/content/content.gyp:content_browser',
54 '<(SHARED_INTERMEDIATE_DIR)',
55 '<(SHARED_INTERMEDIATE_DIR)/extensions/shell',
60 'app/shell_main_delegate.cc',
61 'app/shell_main_delegate.h',
62 'browser/api/identity/identity_api.cc',
63 'browser/api/identity/identity_api.h',
64 'browser/shell_browser_context_keyed_service_factories.cc',
65 'browser/shell_browser_context_keyed_service_factories.h',
66 'browser/default_shell_browser_main_delegate.cc',
67 'browser/default_shell_browser_main_delegate.h',
68 'browser/desktop_controller.cc',
69 'browser/desktop_controller.h',
70 'browser/media_capture_util.cc',
71 'browser/media_capture_util.h',
72 'browser/shell_app_delegate.cc',
73 'browser/shell_app_delegate.h',
74 'browser/shell_app_view_guest_delegate.cc',
75 'browser/shell_app_view_guest_delegate.h',
76 'browser/shell_app_window_client.cc',
77 'browser/shell_app_window_client.h',
78 'browser/shell_app_window_client_mac.mm',
79 'browser/shell_audio_controller_chromeos.cc',
80 'browser/shell_audio_controller_chromeos.h',
81 'browser/shell_browser_context.cc',
82 'browser/shell_browser_context.h',
83 'browser/shell_browser_main_delegate.h',
84 'browser/shell_browser_main_parts.cc',
85 'browser/shell_browser_main_parts.h',
86 'browser/shell_browser_main_parts_mac.h',
87 'browser/shell_browser_main_parts_mac.mm',
88 'browser/shell_content_browser_client.cc',
89 'browser/shell_content_browser_client.h',
90 'browser/shell_desktop_controller_mac.h',
91 'browser/shell_desktop_controller_mac.mm',
92 'browser/shell_device_client.cc',
93 'browser/shell_device_client.h',
94 'browser/shell_display_info_provider.cc',
95 'browser/shell_display_info_provider.h',
96 'browser/shell_extension_host_delegate.cc',
97 'browser/shell_extension_host_delegate.h',
98 'browser/shell_extension_system.cc',
99 'browser/shell_extension_system.h',
100 'browser/shell_extension_system_factory.cc',
101 'browser/shell_extension_system_factory.h',
102 'browser/shell_extension_web_contents_observer.cc',
103 'browser/shell_extension_web_contents_observer.h',
104 'browser/shell_extensions_api_client.cc',
105 'browser/shell_extensions_api_client.h',
106 'browser/shell_extensions_browser_client.cc',
107 'browser/shell_extensions_browser_client.h',
108 'browser/shell_native_app_window.cc',
109 'browser/shell_native_app_window.h',
110 'browser/shell_native_app_window_mac.h',
111 'browser/shell_native_app_window_mac.mm',
112 'browser/shell_network_controller_chromeos.cc',
113 'browser/shell_network_controller_chromeos.h',
114 'browser/shell_network_delegate.cc',
115 'browser/shell_network_delegate.h',
116 'browser/shell_oauth2_token_service.cc',
117 'browser/shell_oauth2_token_service.h',
118 'browser/shell_prefs.cc',
119 'browser/shell_prefs.h',
120 'browser/shell_runtime_api_delegate.cc',
121 'browser/shell_runtime_api_delegate.h',
122 'browser/shell_special_storage_policy.cc',
123 'browser/shell_special_storage_policy.h',
124 'browser/shell_speech_recognition_manager_delegate.cc',
125 'browser/shell_speech_recognition_manager_delegate.h',
126 'browser/shell_update_query_params_delegate.cc',
127 'browser/shell_update_query_params_delegate.h',
128 'browser/shell_url_request_context_getter.cc',
129 'browser/shell_url_request_context_getter.h',
130 'browser/shell_web_contents_modal_dialog_manager.cc',
131 'common/shell_content_client.cc',
132 'common/shell_content_client.h',
133 'common/shell_extensions_client.cc',
134 'common/shell_extensions_client.h',
135 'common/switches.cc',
137 'renderer/shell_content_renderer_client.cc',
138 'renderer/shell_content_renderer_client.h',
139 'renderer/shell_extensions_renderer_client.cc',
140 'renderer/shell_extensions_renderer_client.h',
141 'utility/shell_content_utility_client.cc',
142 'utility/shell_content_utility_client.h',
147 '<(DEPTH)/ui/wm/wm.gyp:wm',
150 'browser/shell_app_window_client_aura.cc',
151 'browser/shell_desktop_controller_aura.cc',
152 'browser/shell_desktop_controller_aura.h',
153 'browser/shell_native_app_window_aura.cc',
154 'browser/shell_native_app_window_aura.h',
155 'browser/shell_screen.cc',
156 'browser/shell_screen.h',
161 '<(DEPTH)/chromeos/chromeos.gyp:chromeos',
162 '<(DEPTH)/ui/chromeos/ui_chromeos.gyp:ui_chromeos',
163 '<(DEPTH)/ui/display/display.gyp:display',
166 'browser/api/shell_gcd/shell_gcd_api.cc',
167 'browser/api/shell_gcd/shell_gcd_api.h',
168 'browser/api/vpn_provider/vpn_service_factory.cc',
171 ['disable_nacl==0 and OS=="linux"', {
173 '<(DEPTH)/components/nacl.gyp:nacl_helper',
176 ['disable_nacl==0', {
178 '<(DEPTH)/components/nacl.gyp:nacl',
179 '<(DEPTH)/components/nacl.gyp:nacl_browser',
180 '<(DEPTH)/components/nacl.gyp:nacl_common',
181 '<(DEPTH)/components/nacl.gyp:nacl_renderer',
182 '<(DEPTH)/components/nacl.gyp:nacl_switches',
185 'browser/shell_nacl_browser_delegate.cc',
186 'browser/shell_nacl_browser_delegate.h',
192 'target_name': 'app_shell',
193 'type': 'executable',
197 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak',
209 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
213 '<(DEPTH)/sandbox/sandbox.gyp:sandbox',
216 ['OS=="win" and win_use_allocator_shim==1', {
218 '<(DEPTH)/base/allocator/allocator.gyp:allocator',
222 'product_name': '<(app_shell_product_name)',
227 'app_shell_framework',
230 'mac_bundle_resources': [
231 'app/app-Info.plist',
233 # TODO(mark): Come up with a fancier way to do this. It should only
234 # be necessary to list app-Info.plist once, not the three times it is
236 'mac_bundle_resources!': [
237 'app/app-Info.plist',
240 'INFOPLIST_FILE': 'app/app-Info.plist',
243 'destination': '<(PRODUCT_DIR)/<(app_shell_product_name).app/Contents/Frameworks',
245 '<(PRODUCT_DIR)/<(app_shell_product_name) Helper.app',
250 'postbuild_name': 'Copy <(app_shell_product_name) Framework.framework',
252 '../../build/mac/copy_framework_unversioned.sh',
253 '${BUILT_PRODUCTS_DIR}/<(app_shell_product_name) Framework.framework',
254 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Frameworks',
258 # Modify the Info.plist as needed.
259 'postbuild_name': 'Tweak Info.plist',
260 'action': ['../../build/mac/tweak_info_plist.py',
262 '--version=<(app_shell_version)'],
265 # This postbuild step is responsible for creating the following
268 # App Shell Helper EH.app and App Shell Helper NP.app are
269 # created from App Shell Helper.app.
271 # The EH helper is marked for an executable heap. The NP helper
272 # is marked for no PIE (ASLR).
273 'postbuild_name': 'Make More Helpers',
275 '../../build/mac/make_more_helpers.sh',
277 '<(app_shell_product_name)',
281 # Make sure there isn't any Objective-C in the shell's
283 'postbuild_name': 'Verify No Objective-C',
285 '../../build/mac/verify_no_objc.sh',
293 'target_name': 'app_shell_unittests',
294 'type': 'executable',
297 '<(DEPTH)/base/base.gyp:base',
298 '<(DEPTH)/base/base.gyp:test_support_base',
299 '<(DEPTH)/content/content.gyp:content_app_both',
300 '<(DEPTH)/content/content_shell_and_tests.gyp:test_support_content',
301 '<(DEPTH)/extensions/extensions.gyp:extensions_shell_and_test_pak',
302 '<(DEPTH)/extensions/extensions.gyp:extensions_test_support',
303 '<(DEPTH)/testing/gtest.gyp:gtest',
306 '../test/extensions_unittests_main.cc',
307 'browser/api/identity/identity_api_unittest.cc',
308 'browser/shell_oauth2_token_service_unittest.cc',
309 'browser/shell_prefs_unittest.cc',
310 'common/shell_content_client_unittest.cc'
313 ['disable_nacl==0', {
315 'browser/shell_nacl_browser_delegate_unittest.cc',
320 'browser/shell_desktop_controller_aura_unittest.cc',
321 'browser/shell_native_app_window_aura_unittest.cc',
322 'browser/shell_screen_unittest.cc',
325 '<(DEPTH)/ui/aura/aura.gyp:aura_test_support',
330 '<(DEPTH)/chromeos/chromeos.gyp:chromeos_test_support_without_gmock',
333 'browser/api/shell_gcd/shell_gcd_api_unittest.cc',
334 'browser/shell_audio_controller_chromeos_unittest.cc',
337 ['OS=="win" and win_use_allocator_shim==1', {
339 '<(DEPTH)/base/allocator/allocator.gyp:allocator',
345 'target_name': 'app_shell_version_header',
347 'direct_dependent_settings': {
349 '<(SHARED_INTERMEDIATE_DIR)',
354 'action_name': 'version_header',
355 'message': 'Generating version header file: <@(_outputs)',
357 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE',
361 '<(lastchange_path)',
362 'common/version.h.in',
365 '<(SHARED_INTERMEDIATE_DIR)/extensions/shell/common/version.h',
369 '<(version_py_path)',
370 '-f', '<(lastchange_path)',
371 '-f', '<(version_path)',
372 'common/version.h.in',
376 '../../build/util/version.gypi',
387 'target_name': 'app_shell_framework',
388 'type': 'shared_library',
389 'product_name': '<(app_shell_product_name) Framework',
391 'mac_bundle_resources': [
392 '<(PRODUCT_DIR)/extensions_shell_and_test.pak',
393 'app/framework-Info.plist',
395 'mac_bundle_resources!': [
396 'app/framework-Info.plist',
399 # The framework is placed within the .app's Framework
400 # directory. DYLIB_INSTALL_NAME_BASE and
401 # LD_DYLIB_INSTALL_NAME affect -install_name.
402 'DYLIB_INSTALL_NAME_BASE':
403 '@executable_path/../Frameworks',
404 # See /build/mac/copy_framework_unversioned.sh for
405 # information on LD_DYLIB_INSTALL_NAME.
406 'LD_DYLIB_INSTALL_NAME':
407 '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(WRAPPER_NAME)/$(PRODUCT_NAME)',
409 'INFOPLIST_FILE': 'app/framework-Info.plist',
418 'app/shell_main_mac.h',
419 'app/shell_main_mac.cc',
423 # Modify the Info.plist as needed. The script explains why
424 # this is needed. This is also done in the chrome target.
425 # The framework needs the Breakpad keys if this feature is
426 # enabled. It does not need the Keystone keys; these always
427 # come from the outer application bundle. The framework
428 # doesn't currently use the SCM keys for anything,
429 # but this seems like a really good place to store them.
430 'postbuild_name': 'Tweak Info.plist',
431 'action': ['../../build/mac/tweak_info_plist.py',
435 '--version=<(app_shell_version)',
436 '--branding=<(app_shell_product_name)'],
440 ['icu_use_data_file_flag==1', {
441 'mac_bundle_resources': [
442 '<(PRODUCT_DIR)/icudtl.dat',
445 ['v8_use_external_startup_data==1', {
446 'mac_bundle_resources': [
447 '<(PRODUCT_DIR)/natives_blob.bin',
448 '<(PRODUCT_DIR)/snapshot_blob.bin',
452 }, # target app_shell_framework
454 'target_name': 'app_shell_helper',
455 'type': 'executable',
456 'variables': { 'enable_wexit_time_destructors': 1, },
457 'product_name': '<(app_shell_product_name) Helper',
460 'app_shell_framework',
464 'app/helper-Info.plist',
466 # TODO(mark): Come up with a fancier way to do this. It should only
467 # be necessary to list helper-Info.plist once, not the three times it
469 'mac_bundle_resources!': [
470 'app/helper-Info.plist',
472 # TODO(mark): For now, don't put any resources into this app. Its
473 # resources directory will be a symbolic link to the browser app's
474 # resources directory.
475 'mac_bundle_resources/': [
479 'INFOPLIST_FILE': 'app/helper-Info.plist',
483 # The framework defines its load-time path
484 # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
485 # (chrome). A different relative path needs to be used in
487 'postbuild_name': 'Fix Framework Link',
491 '@executable_path/../Frameworks/<(app_shell_product_name) Framework.framework/<(app_shell_product_name) Framework',
492 '@executable_path/../../../<(app_shell_product_name) Framework.framework/<(app_shell_product_name) Framework',
493 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
497 # Modify the Info.plist as needed. The script explains why this
498 # is needed. This is also done in the chrome and chrome_dll
499 # targets. In this case, --breakpad=0, --keystone=0, and --scm=0
500 # are used because Breakpad, Keystone, and SCM keys are
501 # never placed into the helper.
502 'postbuild_name': 'Tweak Info.plist',
503 'action': ['../../build/mac/tweak_info_plist.py',
507 '--version=<(app_shell_version)'],
510 # Make sure there isn't any Objective-C in the helper app's
512 'postbuild_name': 'Verify No Objective-C',
514 '../../build/mac/verify_no_objc.sh',
518 }, # target app_shell_helper