summaryrefslogtreecommitdiffstats
path: root/content/content_shell.gypi
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 22:36:10 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-09 22:36:10 +0000
commit180df8f8967b97a5e65472409c0e110d979fdf64 (patch)
tree58c0528f17b93b3fd9c2c628918d7a572ef2982c /content/content_shell.gypi
parent82123a437f260df718996233ecec3f7e6d9ab717 (diff)
downloadchromium_src-180df8f8967b97a5e65472409c0e110d979fdf64.zip
chromium_src-180df8f8967b97a5e65472409c0e110d979fdf64.tar.gz
chromium_src-180df8f8967b97a5e65472409c0e110d979fdf64.tar.bz2
Make helper app, get closer to working content shell.
BUG=115784 TEST=none Review URL: https://chromiumcodereview.appspot.com/9656002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125921 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/content_shell.gypi')
-rw-r--r--content/content_shell.gypi93
1 files changed, 92 insertions, 1 deletions
diff --git a/content/content_shell.gypi b/content/content_shell.gypi
index d809c85..3d7176e 100644
--- a/content/content_shell.gypi
+++ b/content/content_shell.gypi
@@ -57,6 +57,7 @@
'shell/shell_browser_context.h',
'shell/shell_browser_main.cc',
'shell/shell_browser_main.h',
+ 'shell/shell_browser_main_mac.mm',
'shell/shell_content_browser_client.cc',
'shell/shell_content_browser_client.h',
'shell/shell_content_client.cc',
@@ -273,6 +274,15 @@
],
'dependencies': [
'content_shell_framework',
+ 'content_shell_helper_app',
+ ],
+ 'copies': [
+ {
+ 'destination': '<(PRODUCT_DIR)/<(content_shell_product_name).app/Contents/Frameworks',
+ 'files': [
+ '<(PRODUCT_DIR)/<(content_shell_product_name) Helper.app',
+ ],
+ },
],
'postbuilds': [
{
@@ -300,6 +310,22 @@
'--svn=1'],
},
{
+ # This postbuid step is responsible for creating the following
+ # helpers:
+ #
+ # Content Shell Helper EH.app and Content Shell Helper NP.app are
+ # created from Content Shell Helper.app.
+ #
+ # The EH helper is marked for an executable heap. The NP helper
+ # is marked for no PIE (ASLR).
+ 'postbuild_name': 'Make More Helpers',
+ 'action': [
+ '../build/mac/make_more_helpers.sh',
+ 'Frameworks',
+ '<(content_shell_product_name)',
+ ],
+ },
+ {
# Make sure there isn't any Objective-C in the shell's
# executable.
'postbuild_name': 'Verify No Objective-C',
@@ -334,7 +360,72 @@
'shell/shell_content_main.cc',
'shell/shell_content_main.h',
],
- },
+ }, # target content_shell_framework
+ {
+ 'target_name': 'content_shell_helper_app',
+ 'type': 'executable',
+ 'variables': { 'enable_wexit_time_destructors': 1, },
+ 'product_name': '<(content_shell_product_name) Helper',
+ 'mac_bundle': 1,
+ 'dependencies': [
+ 'content_shell_framework',
+ ],
+ 'sources': [
+ 'shell/shell_main.cc',
+ 'shell/mac/helper-Info.plist',
+ ],
+ # TODO(mark): Come up with a fancier way to do this. It should only
+ # be necessary to list helper-Info.plist once, not the three times it
+ # is listed here.
+ 'mac_bundle_resources!': [
+ 'shell/mac/helper-Info.plist',
+ ],
+ # TODO(mark): For now, don't put any resources into this app. Its
+ # resources directory will be a symbolic link to the browser app's
+ # resources directory.
+ 'mac_bundle_resources/': [
+ ['exclude', '.*'],
+ ],
+ 'xcode_settings': {
+ 'INFOPLIST_FILE': 'shell/mac/helper-Info.plist',
+ },
+ 'postbuilds': [
+ {
+ # The framework defines its load-time path
+ # (DYLIB_INSTALL_NAME_BASE) relative to the main executable
+ # (chrome). A different relative path needs to be used in
+ # content_shell_helper_app.
+ 'postbuild_name': 'Fix Framework Link',
+ 'action': [
+ 'install_name_tool',
+ '-change',
+ '/Library/Frameworks/<(content_shell_product_name) Framework.framework/Versions/A/<(content_shell_product_name) Framework',
+ '@executable_path/../../../../Frameworks/<(content_shell_product_name) Framework.framework/<(content_shell_product_name) Framework',
+ '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
+ ],
+ },
+ {
+ # Modify the Info.plist as needed. The script explains why this
+ # is needed. This is also done in the chrome and chrome_dll
+ # targets. In this case, --breakpad=0, --keystone=0, and --svn=0
+ # are used because Breakpad, Keystone, and Subversion keys are
+ # never placed into the helper.
+ 'postbuild_name': 'Tweak Info.plist',
+ 'action': ['../build/mac/tweak_info_plist.py',
+ '--breakpad=0',
+ '--keystone=0',
+ '--svn=0'],
+ },
+ {
+ # Make sure there isn't any Objective-C in the helper app's
+ # executable.
+ 'postbuild_name': 'Verify No Objective-C',
+ 'action': [
+ '../build/mac/verify_no_objc.sh',
+ ],
+ },
+ ],
+ }, # target content_shell_helper_app
],
}], # OS=="mac"
],