Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Side by Side Diff: pylib/gyp/mac_tool.py

Issue 23781011: ninja/mac: Insert a few synthesized Info.plist entries. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pylib/gyp/generator/ninja.py ('k') | pylib/gyp/xcode_emulation.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 Google Inc. All rights reserved. 2 # Copyright (c) 2012 Google Inc. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Utility functions to perform Xcode-style build steps. 6 """Utility functions to perform Xcode-style build steps.
7 7
8 These functions are executed via gyp-mac-tool when using the Makefile generator. 8 These functions are executed via gyp-mac-tool when using the Makefile generator.
9 """ 9 """
10 10
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 fp.close() 109 fp.close()
110 if header.startswith("\xFE\xFF"): 110 if header.startswith("\xFE\xFF"):
111 return "UTF-16" 111 return "UTF-16"
112 elif header.startswith("\xFF\xFE"): 112 elif header.startswith("\xFF\xFE"):
113 return "UTF-16" 113 return "UTF-16"
114 elif header.startswith("\xEF\xBB\xBF"): 114 elif header.startswith("\xEF\xBB\xBF"):
115 return "UTF-8" 115 return "UTF-8"
116 else: 116 else:
117 return None 117 return None
118 118
119 def ExecCopyInfoPlist(self, source, dest): 119 def ExecCopyInfoPlist(self, source, dest, *keys):
120 """Copies the |source| Info.plist to the destination directory |dest|.""" 120 """Copies the |source| Info.plist to the destination directory |dest|."""
121 # Read the source Info.plist into memory. 121 # Read the source Info.plist into memory.
122 fd = open(source, 'r') 122 fd = open(source, 'r')
123 lines = fd.read() 123 lines = fd.read()
124 fd.close() 124 fd.close()
125 125
126 # Insert synthesized key/value pairs (e.g. BuildMachineOSBuild).
127 plist = plistlib.readPlistFromString(lines)
128 plist = dict(plist.items() + zip(keys[::2], keys[1::2]))
129 lines = plistlib.writePlistToString(plist)
130
126 # Go through all the environment variables and replace them as variables in 131 # Go through all the environment variables and replace them as variables in
127 # the file. 132 # the file.
128 IDENT_RE = re.compile('[/\s]') 133 IDENT_RE = re.compile('[/\s]')
129 for key in os.environ: 134 for key in os.environ:
130 if key.startswith('_'): 135 if key.startswith('_'):
131 continue 136 continue
132 evar = '${%s}' % key 137 evar = '${%s}' % key
133 evalue = os.environ[key] 138 evalue = os.environ[key]
134 lines = string.replace(lines, evar, evalue) 139 lines = string.replace(lines, evar, evalue)
135 140
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 def _Relink(self, dest, link): 241 def _Relink(self, dest, link):
237 """Creates a symlink to |dest| named |link|. If |link| already exists, 242 """Creates a symlink to |dest| named |link|. If |link| already exists,
238 it is overwritten.""" 243 it is overwritten."""
239 if os.path.lexists(link): 244 if os.path.lexists(link):
240 os.remove(link) 245 os.remove(link)
241 os.symlink(dest, link) 246 os.symlink(dest, link)
242 247
243 248
244 if __name__ == '__main__': 249 if __name__ == '__main__':
245 sys.exit(main(sys.argv[1:])) 250 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « pylib/gyp/generator/ninja.py ('k') | pylib/gyp/xcode_emulation.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698