Index: pylib/gyp/generator/make.py |
=================================================================== |
--- pylib/gyp/generator/make.py (revision 1508) |
+++ pylib/gyp/generator/make.py (working copy) |
@@ -718,7 +718,7 @@ |
self.output = self.output_binary = self.ComputeOutput(spec) |
self._INSTALLABLE_TARGETS = ('executable', 'loadable_module', |
- 'shared_library') |
+ 'shared_library', 'standalone_static_library') |
if self.type in self._INSTALLABLE_TARGETS: |
self.alias = os.path.basename(self.output) |
install_path = self._InstallableTargetInstallPath() |
@@ -785,7 +785,8 @@ |
target_outputs[qualified_target] = install_path |
# Update global list of link dependencies. |
- if self.type in ('static_library', 'shared_library'): |
+ if self.type in ('static_library', 'standalone_static_library', |
+ 'shared_library'): |
target_link_deps[qualified_target] = self.output_binary |
# Currently any versions have the same effect, but in future the behavior |
@@ -1287,13 +1288,14 @@ |
assert not self.is_mac_bundle |
if self.flavor == 'mac' and self.type in ( |
- 'static_library', 'executable', 'shared_library', 'loadable_module'): |
+ 'static_library', 'executable', 'shared_library', 'loadable_module', |
+ 'standalone_static_library'): |
return self.xcode_settings.GetExecutablePath() |
target = spec['target_name'] |
target_prefix = '' |
target_ext = '' |
- if self.type == 'static_library': |
+ if self.type in ('static_library', 'standalone_static_library'): |
if target[:3] == 'lib': |
target = target[3:] |
target_prefix = 'lib' |
@@ -1320,7 +1322,8 @@ |
def _InstallImmediately(self): |
return self.toolset == 'target' and self.flavor == 'mac' and self.type in ( |
- 'static_library', 'executable', 'shared_library', 'loadable_module') |
+ 'static_library', 'standalone_static_library','executable', |
+ 'shared_library', 'loadable_module') |
def ComputeOutput(self, spec): |
@@ -1534,6 +1537,14 @@ |
"Spaces in alink input filenames not supported (%s)" % link_dep) |
self.WriteDoCmd([self.output_binary], link_deps, 'alink', part_of_all, |
postbuilds=postbuilds) |
+ elif self.type == 'standalone_static_library': |
+ self.WriteLn( |
+ 'cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^)') |
+ 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) |
borenet
2012/10/01 21:27:48
What should be the behavior when a standalone_stat
|
elif self.type == 'shared_library': |
self.WriteLn('%s: LD_INPUTS := %s' % ( |
QuoteSpaces(self.output_binary), |
@@ -1576,6 +1587,8 @@ |
if self.type in self._INSTALLABLE_TARGETS: |
if self.type == 'shared_library': |
file_desc = 'shared library' |
+ elif self.type == 'standalone_static_library': |
+ file_desc = 'static library' |
else: |
file_desc = 'executable' |
install_path = self._InstallableTargetInstallPath() |
@@ -1719,7 +1732,8 @@ |
link_deps: A list of link dependencies, which must be sorted in |
the order from dependencies to dependents. |
""" |
- if self.type not in ('executable', 'shared_library', 'static_library'): |
+ if self.type not in ('executable', 'shared_library', 'static_library', |
+ 'standalone_static_library'): |
return |
self.WriteLn('# Variable definitions for Android applications') |
@@ -1784,7 +1798,7 @@ |
self.WriteLn('include $(BUILD_EXECUTABLE)') |
elif self.type == 'shared_library': |
self.WriteLn('include $(BUILD_SHARED_LIBRARY)') |
- elif self.type == 'static_library': |
+ elif self.type in ('static_library', 'standalone_static_library'): |
self.WriteLn('include $(BUILD_STATIC_LIBRARY)') |
self.WriteLn() |