| Index: pylib/gyp/generator/ninja.py
|
| ===================================================================
|
| --- pylib/gyp/generator/ninja.py (revision 1513)
|
| +++ pylib/gyp/generator/ninja.py (working copy)
|
| @@ -366,6 +366,8 @@
|
| self.toolset = spec['toolset']
|
| config = spec['configurations'][config_name]
|
| self.target = Target(spec['type'])
|
| + self.is_standalone_static_library = bool(
|
| + spec.get('standalone_static_library', 0))
|
|
|
| self.is_mac_bundle = gyp.xcode_emulation.IsMacBundle(self.flavor, spec)
|
| self.xcode_settings = self.msvs_settings = None
|
| @@ -952,8 +954,13 @@
|
| if self.xcode_settings:
|
| variables.append(('libtool_flags',
|
| self.xcode_settings.GetLibtoolflags(config_name)))
|
| - self.ninja.build(self.target.binary, 'alink', link_deps,
|
| - order_only=compile_deps, variables=variables)
|
| + if (self.flavor not in ('mac', 'win') and not
|
| + self.is_standalone_static_library):
|
| + self.ninja.build(self.target.binary, 'alink_thin', link_deps,
|
| + order_only=compile_deps, variables=variables)
|
| + else:
|
| + self.ninja.build(self.target.binary, 'alink', link_deps,
|
| + order_only=compile_deps, variables=variables)
|
| else:
|
| self.WriteLink(spec, config_name, config, link_deps)
|
| return self.target.binary
|
| @@ -1137,7 +1144,7 @@
|
| elif self.flavor == 'win' and self.toolset == 'target':
|
| type_in_output_root += ['shared_library']
|
|
|
| - if type in type_in_output_root:
|
| + if type in type_in_output_root or self.is_standalone_static_library:
|
| return filename
|
| elif type == 'shared_library':
|
| libdir = 'lib'
|
| @@ -1494,6 +1501,10 @@
|
| master_ninja.rule(
|
| 'alink',
|
| description='AR $out',
|
| + command='rm -f $out && $ar rcs $out $in')
|
| + master_ninja.rule(
|
| + 'alink_thin',
|
| + description='AR $out',
|
| command='rm -f $out && $ar rcsT $out $in')
|
|
|
| # This allows targets that only need to depend on $lib's API to declare an
|
|
|