| Index: pylib/gyp/generator/ninja.py
|
| ===================================================================
|
| --- pylib/gyp/generator/ninja.py (revision 1719)
|
| +++ pylib/gyp/generator/ninja.py (working copy)
|
| @@ -374,6 +374,7 @@
|
| self.target = Target(spec['type'])
|
| self.is_standalone_static_library = bool(
|
| spec.get('standalone_static_library', 0))
|
| + self.uses_cpp = False
|
|
|
| self.is_mac_bundle = gyp.xcode_emulation.IsMacBundle(self.flavor, spec)
|
| self.xcode_settings = self.msvs_settings = None
|
| @@ -778,6 +779,7 @@
|
| self.ninja.variable('cc', '$cc_host')
|
| self.ninja.variable('cxx', '$cxx_host')
|
| self.ninja.variable('ld', '$ld_host')
|
| + self.ninja.variable('ldxx', '$ldxx_host')
|
|
|
| if self.flavor != 'mac' or len(self.archs) == 1:
|
| return self.WriteSourcesForArch(
|
| @@ -875,6 +877,7 @@
|
| obj_ext = self.obj_ext
|
| if ext in ('cc', 'cpp', 'cxx'):
|
| command = 'cxx'
|
| + self.uses_cpp = True
|
| elif ext == 'c' or (ext == 'S' and self.flavor != 'win'):
|
| command = 'cc'
|
| elif ext == 's' and self.flavor != 'win': # Doesn't generate .o.d files.
|
| @@ -891,6 +894,7 @@
|
| command = 'objc'
|
| elif self.flavor == 'mac' and ext == 'mm':
|
| command = 'objcxx'
|
| + self.uses_cpp = True
|
| elif self.flavor == 'win' and ext == 'rc':
|
| command = 'rc'
|
| obj_ext = '.res'
|
| @@ -995,6 +999,9 @@
|
| link_deps.extend(list(extra_link_deps))
|
|
|
| extra_bindings = []
|
| + if self.uses_cpp and self.flavor != 'win':
|
| + extra_bindings.append(('ld', '$ldxx'))
|
| +
|
| output = self.ComputeOutput(spec, arch)
|
| if arch is None and not self.is_mac_bundle:
|
| self.AppendPostbuildVariable(extra_bindings, spec, output, output)
|
| @@ -1643,9 +1650,10 @@
|
| else:
|
| cc = 'gcc'
|
| cxx = 'g++'
|
| - ld = '$cxx'
|
| - ld_c = '$cc'
|
| - ld_host = '$cxx_host'
|
| + ld = '$cc'
|
| + ldxx = '$cxx'
|
| + ld_host = '$cc_host'
|
| + ldxx_host = '$cxx_host'
|
|
|
| cc_host = None
|
| cxx_host = None
|
| @@ -1662,16 +1670,12 @@
|
| cc = os.path.join(build_to_root, value)
|
| if key == 'CXX':
|
| cxx = os.path.join(build_to_root, value)
|
| - if key == 'LD':
|
| - ld = os.path.join(build_to_root, value)
|
| if key == 'CC.host':
|
| cc_host = os.path.join(build_to_root, value)
|
| cc_host_global_setting = value
|
| if key == 'CXX.host':
|
| cxx_host = os.path.join(build_to_root, value)
|
| cxx_host_global_setting = value
|
| - if key == 'LD.host':
|
| - ld_host = os.path.join(build_to_root, value)
|
| if key.endswith('_wrapper'):
|
| wrappers[key[:-len('_wrapper')]] = os.path.join(build_to_root, value)
|
|
|
| @@ -1694,7 +1698,6 @@
|
| master_ninja.variable('cc', CommandWithWrapper('CC', wrappers, cc))
|
| cxx = GetEnvironFallback(['CXX_target', 'CXX'], cxx)
|
| master_ninja.variable('cxx', CommandWithWrapper('CXX', wrappers, cxx))
|
| - ld = GetEnvironFallback(['LD_target', 'LD'], ld)
|
|
|
| if flavor == 'win':
|
| master_ninja.variable('ld', ld)
|
| @@ -1705,6 +1708,7 @@
|
| master_ninja.variable('mt', 'mt.exe')
|
| else:
|
| master_ninja.variable('ld', CommandWithWrapper('LINK', wrappers, ld))
|
| + master_ninja.variable('ldxx', CommandWithWrapper('LINK', wrappers, ldxx))
|
| master_ninja.variable('ar', GetEnvironFallback(['AR_target', 'AR'], 'ar'))
|
|
|
| if generator_supports_multiple_toolsets:
|
| @@ -1716,7 +1720,6 @@
|
| master_ninja.variable('ar_host', GetEnvironFallback(['AR_host'], 'ar'))
|
| cc_host = GetEnvironFallback(['CC_host'], cc_host)
|
| cxx_host = GetEnvironFallback(['CXX_host'], cxx_host)
|
| - ld_host = GetEnvironFallback(['LD_host'], ld_host)
|
|
|
| # The environment variable could be used in 'make_global_settings', like
|
| # ['CC.host', '$(CC)'] or ['CXX.host', '$(CXX)'], transform them here.
|
| @@ -1733,6 +1736,8 @@
|
| else:
|
| master_ninja.variable('ld_host', CommandWithWrapper(
|
| 'LINK', wrappers, ld_host))
|
| + master_ninja.variable('ldxx_host', CommandWithWrapper(
|
| + 'LINK', wrappers, ldxx_host))
|
|
|
| master_ninja.newline()
|
|
|
|
|