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

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

Issue 10407108: ninja windows: support precompiled headers (Closed) Base URL: https://gyp.googlecode.com/svn/trunk
Patch Set: update docstrings Created 8 years, 7 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
OLDNEW
1 # Copyright (c) 2012 Google Inc. All rights reserved. 1 # Copyright (c) 2012 Google Inc. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """ 5 """
6 This module contains classes that help to emulate xcodebuild behavior on top of 6 This module contains classes that help to emulate xcodebuild behavior on top of
7 other build systems, such as make and ninja. 7 other build systems, such as make and ninja.
8 """ 8 """
9 9
10 import gyp.common 10 import gyp.common
(...skipping 714 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 return '-include %s' % self.header 725 return '-include %s' % self.header
726 else: 726 else:
727 return '' 727 return ''
728 728
729 def _Gch(self, lang): 729 def _Gch(self, lang):
730 """Returns the actual file name of the prefix header for language |lang|.""" 730 """Returns the actual file name of the prefix header for language |lang|."""
731 assert self.compile_headers 731 assert self.compile_headers
732 return self.compiled_headers[lang] + '.gch' 732 return self.compiled_headers[lang] + '.gch'
733 733
734 def GetObjDependencies(self, sources, objs): 734 def GetObjDependencies(self, sources, objs):
735 """Given a list of source files and the corresponding object files, returns 735 """Given a list of source files and the corresponding object files,
736 a list of (source, object, gch) tuples, where |gch| is the build-directory 736 returns a list of gch files, where |gch| is the build-directory relative
Nico 2012/05/23 20:53:29 My guess is that this interface change will break
scottmg 2012/05/24 20:34:39 Thanks, those "unused" returns make a lot more sen
737 relative path to the gch file each object file depends on. |compilable[i]| 737 path to the gch file each object file depends on."""
738 has to be the source file belonging to |objs[i]|."""
739 if not self.header or not self.compile_headers: 738 if not self.header or not self.compile_headers:
740 return [] 739 return []
741 740
742 result = [] 741 result = []
743 for source, obj in zip(sources, objs): 742 for source, obj in zip(sources, objs):
744 ext = os.path.splitext(source)[1] 743 ext = os.path.splitext(source)[1]
745 lang = { 744 lang = {
746 '.c': 'c', 745 '.c': 'c',
747 '.cpp': 'cc', '.cc': 'cc', '.cxx': 'cc', 746 '.cpp': 'cc', '.cc': 'cc', '.cxx': 'cc',
748 '.m': 'm', 747 '.m': 'm',
749 '.mm': 'mm', 748 '.mm': 'mm',
750 }.get(ext, None) 749 }.get(ext, None)
751 if lang: 750 if lang:
752 result.append((source, obj, self._Gch(lang))) 751 result.append(self._Gch(lang))
753 return result 752 return result
754 753
755 def GetGchBuildCommands(self): 754 def GetPchBuildCommands(self):
756 """Returns [(path_to_gch, language_flag, language, header)]. 755 """Returns [(path_to_gch, language_flag, language, header, extra_vars)].
757 |path_to_gch| and |header| are relative to the build directory. 756 |path_to_gch| and |header| are relative to the build directory.
758 """ 757 """
759 if not self.header or not self.compile_headers: 758 if not self.header or not self.compile_headers:
760 return [] 759 return []
761 return [ 760 return [
762 (self._Gch('c'), '-x c-header', 'c', self.header), 761 (self._Gch('c'), '-x c-header', 'c', self.header, []),
763 (self._Gch('cc'), '-x c++-header', 'cc', self.header), 762 (self._Gch('cc'), '-x c++-header', 'cc', self.header, []),
764 (self._Gch('m'), '-x objective-c-header', 'm', self.header), 763 (self._Gch('m'), '-x objective-c-header', 'm', self.header, []),
765 (self._Gch('mm'), '-x objective-c++-header', 'mm', self.header), 764 (self._Gch('mm'), '-x objective-c++-header', 'mm', self.header, []),
766 ] 765 ]
767 766
768 767
769 def MergeGlobalXcodeSettingsToSpec(global_dict, spec): 768 def MergeGlobalXcodeSettingsToSpec(global_dict, spec):
770 """Merges the global xcode_settings dictionary into each configuration of the 769 """Merges the global xcode_settings dictionary into each configuration of the
771 target represented by spec. For keys that are both in the global and the local 770 target represented by spec. For keys that are both in the global and the local
772 xcode_settings dict, the local key gets precendence. 771 xcode_settings dict, the local key gets precendence.
773 """ 772 """
774 # The xcode generator special-cases global xcode_settings and does something 773 # The xcode generator special-cases global xcode_settings and does something
775 # that amounts to merging in the global xcode_settings into each local 774 # that amounts to merging in the global xcode_settings into each local
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 def GetSpecPostbuildCommands(spec, quiet=False): 1018 def GetSpecPostbuildCommands(spec, quiet=False):
1020 """Returns the list of postbuilds explicitly defined on |spec|, in a form 1019 """Returns the list of postbuilds explicitly defined on |spec|, in a form
1021 executable by a shell.""" 1020 executable by a shell."""
1022 postbuilds = [] 1021 postbuilds = []
1023 for postbuild in spec.get('postbuilds', []): 1022 for postbuild in spec.get('postbuilds', []):
1024 if not quiet: 1023 if not quiet:
1025 postbuilds.append('echo POSTBUILD\\(%s\\) %s' % ( 1024 postbuilds.append('echo POSTBUILD\\(%s\\) %s' % (
1026 spec['target_name'], postbuild['postbuild_name'])) 1025 spec['target_name'], postbuild['postbuild_name']))
1027 postbuilds.append(gyp.common.EncodePOSIXShellList(postbuild['action'])) 1026 postbuilds.append(gyp.common.EncodePOSIXShellList(postbuild['action']))
1028 return postbuilds 1027 return postbuilds
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698