| Index: pylib/gyp/generator/make.py
|
| ===================================================================
|
| --- pylib/gyp/generator/make.py (revision 1398)
|
| +++ pylib/gyp/generator/make.py (working copy)
|
| @@ -898,7 +898,7 @@
|
| # Same for environment.
|
| self.WriteLn("%s: obj := $(abs_obj)" % QuoteSpaces(outputs[0]))
|
| self.WriteLn("%s: builddir := $(abs_builddir)" % QuoteSpaces(outputs[0]))
|
| - self.WriteXcodeEnv(outputs[0], self.GetXcodeEnv())
|
| + self.WriteSortedXcodeEnv(outputs[0], self.GetSortedXcodeEnv())
|
|
|
| for input in inputs:
|
| assert ' ' not in input, (
|
| @@ -908,7 +908,7 @@
|
| "Spaces in action output filenames not supported (%s)" % output)
|
|
|
| # See the comment in WriteCopies about expanding env vars.
|
| - env = self.GetXcodeEnv()
|
| + env = self.GetSortedXcodeEnv()
|
| outputs = [gyp.xcode_emulation.ExpandEnvVars(o, env) for o in outputs]
|
| inputs = [gyp.xcode_emulation.ExpandEnvVars(i, env) for i in inputs]
|
|
|
| @@ -1069,7 +1069,7 @@
|
| # As a workaround, manually expand variables at gyp time. Since 'copies'
|
| # can't run scripts, there's no need to write the env then.
|
| # WriteDoCmd() will escape spaces for .d files.
|
| - env = self.GetXcodeEnv()
|
| + env = self.GetSortedXcodeEnv()
|
| output = gyp.xcode_emulation.ExpandEnvVars(output, env)
|
| path = gyp.xcode_emulation.ExpandEnvVars(path, env)
|
| self.WriteDoCmd([output], [path], 'copy', part_of_all)
|
| @@ -1111,7 +1111,8 @@
|
| '@plutil -convert xml1 $@ $@'])
|
| info_plist = intermediate_plist
|
| # plists can contain envvars and substitute them into the file.
|
| - self.WriteXcodeEnv(out, self.GetXcodeEnv(additional_settings=extra_env))
|
| + self.WriteSortedXcodeEnv(
|
| + out, self.GetSortedXcodeEnv(additional_settings=extra_env))
|
| self.WriteDoCmd([out], [info_plist], 'mac_tool,,,copy-info-plist',
|
| part_of_all=True)
|
| bundle_deps.append(out)
|
| @@ -1448,7 +1449,7 @@
|
| # Envvars may be referenced by TARGET_POSTBUILDS_$(BUILDTYPE),
|
| # so we must output its definition first, since we declare variables
|
| # using ":=".
|
| - self.WriteXcodeEnv(self.output, self.GetXcodePostbuildEnv())
|
| + self.WriteSortedXcodeEnv(self.output, self.GetSortedXcodePostbuildEnv())
|
|
|
| for configname in target_postbuilds:
|
| self.WriteLn('%s: TARGET_POSTBUILDS_%s := %s' %
|
| @@ -1783,33 +1784,33 @@
|
| self.fp.write(text + '\n')
|
|
|
|
|
| - def GetXcodeEnv(self, additional_settings=None):
|
| - return gyp.xcode_emulation.GetXcodeEnv(
|
| + def GetSortedXcodeEnv(self, additional_settings=None):
|
| + return gyp.xcode_emulation.GetSortedXcodeEnv(
|
| self.xcode_settings, "$(abs_builddir)",
|
| os.path.join("$(abs_srcdir)", self.path), "$(BUILDTYPE)",
|
| additional_settings)
|
|
|
|
|
| - def GetXcodePostbuildEnv(self):
|
| + def GetSortedXcodePostbuildEnv(self):
|
| # CHROMIUM_STRIP_SAVE_FILE is a chromium-specific hack.
|
| # TODO(thakis): It would be nice to have some general mechanism instead.
|
| strip_save_file = self.xcode_settings.GetPerTargetSetting(
|
| 'CHROMIUM_STRIP_SAVE_FILE', '')
|
| # Even if strip_save_file is empty, explicitly write it. Else a postbuild
|
| # might pick up an export from an earlier target.
|
| - return self.GetXcodeEnv(
|
| + return self.GetSortedXcodeEnv(
|
| additional_settings={'CHROMIUM_STRIP_SAVE_FILE': strip_save_file})
|
|
|
|
|
| - def WriteXcodeEnv(self, target, env):
|
| - for k in gyp.xcode_emulation.TopologicallySortedEnvVarKeys(env):
|
| + def WriteSortedXcodeEnv(self, target, env):
|
| + for k, v in env:
|
| # For
|
| # foo := a\ b
|
| # the escaped space does the right thing. For
|
| # export foo := a\ b
|
| # it does not -- the backslash is written to the env as literal character.
|
| # So don't escape spaces in |env[k]|.
|
| - self.WriteLn('%s: export %s := %s' % (QuoteSpaces(target), k, env[k]))
|
| + self.WriteLn('%s: export %s := %s' % (QuoteSpaces(target), k, v))
|
|
|
|
|
| def Objectify(self, path):
|
|
|