Index: build/common.gypi |
=================================================================== |
--- build/common.gypi (revision 22482) |
+++ build/common.gypi (working copy) |
@@ -13,6 +13,31 @@ |
# Variables expected to be overriden on the GYP command line (-D) or by |
# ~/.gyp/include.gypi. |
+ # Putting a variables dict inside another variables dict looks kind of |
+ # weird. This is done so that "branding" and "buildtype" are defined as |
+ # variables within the outer variables dict here. This is necessary |
+ # to get these variables defined for the conditions within this variables |
+ # dict that operate on these variables. |
+ 'variables': { |
+ # Override branding to select the desired branding flavor. |
+ 'branding%': 'Chromium', |
+ |
+ # Override buildtype to select the desired build flavor. |
+ # Dev - everyday build for development/testing |
+ # Official - release build (generally implies additional processing) |
+ # TODO(mmoss) Once 'buildtype' is fully supported (e.g. Windows gyp |
+ # conversion is done), some of the things which are now controlled by |
+ # 'branding', such as symbol generation, will need to be refactored based |
+ # on 'buildtype' (i.e. we don't care about saving symbols for non-Official |
+ # builds). |
+ 'buildtype%': 'Dev', |
+ }, |
+ |
+ # Define branding and buildtype on the basis of their settings within the |
+ # variables sub-dict above, unless overridden. |
+ 'branding%': '<(branding)', |
+ 'buildtype%': '<(buildtype)', |
+ |
# Override chromium_mac_pch and set it to 0 to suppress the use of |
# precompiled headers on the Mac. Prefix header injection may still be |
# used, but prefix headers will not be precompiled. This is useful when |
@@ -23,19 +48,6 @@ |
# Linux-Mac cross compiler distcc farm. |
'chromium_mac_pch%': 1, |
- # Override branding to select the desired branding flavor. |
- 'branding%': 'Chromium', |
- |
- # Override buildtype to select the desired build flavor. |
- # Dev - everyday build for development/testing |
- # Official - release build (generally implies additional processing) |
- # TODO(mmoss) Once 'buildtype' is fully supported (e.g. Windows gyp |
- # conversion is done), some of the things which are now controlled by |
- # 'branding', such as symbol generation, will need to be refactored based |
- # on 'buildtype' (i.e. we don't care about saving symbols for non-Official |
- # builds). |
- 'buildtype%': 'Dev', |
- |
# Set to 1 to enable code coverage. In addition to build changes |
# (e.g. extra CFLAGS), also creates a new target in the src/chrome |
# project file called "coverage". |
@@ -104,6 +116,31 @@ |
'linux_sandbox_chrome_path%': '/opt/google/chrome/chrome', |
'conditions': [ |
+ ['OS=="mac"', { |
+ 'conditions': [ |
+ # mac_product_name is set to the name of the .app bundle as it should |
+ # appear on disk. This duplicates data from |
+ # chrome/app/theme/chromium/BRANDING and |
+ # chrome/app/theme/google_chrome/BRANDING, but is necessary to get |
+ # these names into the build system. |
+ ['branding=="Chrome"', { |
+ 'mac_product_name%': 'Google Chrome', |
+ }, { # else: branding!="Chrome" |
+ 'mac_product_name%': 'Chromium', |
+ }], |
+ |
+ # Feature variables for enabling Mac Breakpad and Keystone auto-update |
+ # support. Both features are on by default in official builds with |
+ # Chrome branding. |
+ ['branding=="Chrome" and buildtype=="Official"', { |
+ 'mac_breakpad%': 1, |
+ 'mac_keystone%': 1, |
+ }, { # else: branding!="Chrome" or buildtype!="Official" |
+ 'mac_breakpad%': 0, |
+ 'mac_keystone%': 0, |
+ }], |
+ ], |
+ }], # OS=="mac" |
# Whether to use multiple cores to compile with visual studio. This is |
# optional because it sometimes causes corruption on VS 2005. |
# It is on by default on VS 2008 and off on VS 2005. |
@@ -514,7 +551,7 @@ |
['_mac_bundle', { |
'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-ObjC']}, |
}], |
- ['_type=="executable"', { |
+ ['_type=="executable" or _type=="shared_library"', { |
'target_conditions': [ |
['mac_real_dsym == 1', { |
# To get a real .dSYM bundle produced by dsymutil, set the |
@@ -527,9 +564,19 @@ |
'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym', |
'DEPLOYMENT_POSTPROCESSING': 'YES', |
'STRIP_INSTALLED_PRODUCT': 'YES', |
- }, |
- }, |
- }, |
+ 'target_conditions': [ |
+ ['_type=="shared_library"', { |
+ # The Xcode default is to strip debugging symbols |
+ # only (-S). Local symbols should be stripped as |
+ # well, which will be handled by -x. Xcode will |
+ # continue to insert -S when stripping even when |
+ # additional flags are added with STRIPFLAGS. |
+ 'STRIPFLAGS': '-x', |
+ }], # _type=="shared_library" |
+ ], # target_conditions |
+ }, # xcode_settings |
+ }, # configuration "Release" |
+ }, # configurations |
}, { # mac_real_dsym != 1 |
# To get a fast fake .dSYM bundle, use a post-build step to |
# produce the .dSYM and strip the executable. strip_from_xcode |
@@ -545,13 +592,13 @@ |
'postbuild_name': 'Strip If Needed', |
'action': ['<(strip_from_xcode_path)'], |
}, |
- ], |
- }], |
- ], |
- }], |
- ], |
- }, |
- }], |
+ ], # postbuilds |
+ }], # mac_real_dsym |
+ ], # target_conditions |
+ }], # _type=="executable" or _type=="shared_library" |
+ ], # target_conditions |
+ }, # target_defaults |
+ }], # OS=="mac" |
['OS=="win"', { |
'target_defaults': { |
'defines': [ |