Index: pylib/gyp/generator/make.py |
=================================================================== |
--- pylib/gyp/generator/make.py (revision 1509) |
+++ pylib/gyp/generator/make.py (working copy) |
@@ -125,8 +125,11 @@ |
LINK_COMMANDS_LINUX = """\ |
quiet_cmd_alink = AR($(TOOLSET)) $@ |
-cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) |
+cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) |
+quiet_cmd_alink_thin = AR($(TOOLSET)) $@ |
+cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) |
+ |
# Due to circular dependencies between libraries :(, we wrap the |
# special "figure out circular dependencies" flags around the entire |
# input list during linking. |
@@ -176,8 +179,11 @@ |
LINK_COMMANDS_ANDROID = """\ |
quiet_cmd_alink = AR($(TOOLSET)) $@ |
-cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) |
+cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) |
+quiet_cmd_alink_thin = AR($(TOOLSET)) $@ |
+cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) |
+ |
# Due to circular dependencies between libraries :(, we wrap the |
# special "figure out circular dependencies" flags around the entire |
# input list during linking. |
@@ -717,9 +723,12 @@ |
else: |
self.output = self.output_binary = self.ComputeOutput(spec) |
+ self.is_standalone_static_library = bool( |
+ spec.get('standalone_static_library', 0)) |
self._INSTALLABLE_TARGETS = ('executable', 'loadable_module', |
'shared_library') |
- if self.type in self._INSTALLABLE_TARGETS: |
+ if (self.is_standalone_static_library or |
+ self.type in self._INSTALLABLE_TARGETS): |
self.alias = os.path.basename(self.output) |
install_path = self._InstallableTargetInstallPath() |
else: |
@@ -1532,8 +1541,12 @@ |
for link_dep in link_deps: |
assert ' ' not in link_dep, ( |
"Spaces in alink input filenames not supported (%s)" % link_dep) |
- self.WriteDoCmd([self.output_binary], link_deps, 'alink', part_of_all, |
- postbuilds=postbuilds) |
+ if self.is_standalone_static_library: |
+ self.WriteDoCmd([self.output_binary], link_deps, 'alink', part_of_all, |
+ postbuilds=postbuilds) |
+ else: |
+ self.WriteDoCmd([self.output_binary], link_deps, 'alink_thin', |
+ part_of_all, postbuilds=postbuilds) |
elif self.type == 'shared_library': |
self.WriteLn('%s: LD_INPUTS := %s' % ( |
QuoteSpaces(self.output_binary), |
@@ -1573,9 +1586,12 @@ |
# 1) They need to install to the build dir or "product" dir. |
# 2) They get shortcuts for building (e.g. "make chrome"). |
# 3) They are part of "make all". |
- if self.type in self._INSTALLABLE_TARGETS: |
+ if (self.type in self._INSTALLABLE_TARGETS or |
+ self.is_standalone_static_library): |
if self.type == 'shared_library': |
file_desc = 'shared library' |
+ elif self.type == 'static_library': |
+ file_desc = 'static library' |
else: |
file_desc = 'executable' |
install_path = self._InstallableTargetInstallPath() |