parameters: (self, configs, deps, sources,
                     extra_outputs, extra_link_deps,
                     part_of_all, precompiled_header)
docstring: Write Makefile code for any 'sources' from the gyp input.
      These are source files necessary to build the current target.
  
      configs, deps, sources: input from gyp.
      extra_outputs: a list of extra outputs this action should be dependent on;
                     used to serialize action/rules before compilation
      extra_link_deps: a list that will be filled in with any outputs of
                       compilation (to be used in link lines)
      part_of_all: flag indicating this target is part of 'all'
docstring_summary: Write Makefile code for any 'sources' from the gyp input.
      These are source files necessary to build the current target.
docstring_tokens: Write Makefile code for any sources from the gyp input . These are source files necessary to build the current target .
function: def WriteSources(self, configs, deps, sources,
                     extra_outputs, extra_link_deps,
                     part_of_all, precompiled_header):
      """Write Makefile code for any 'sources' from the gyp input.
      These are source files necessary to build the current target.
  
      configs, deps, sources: input from gyp.
      extra_outputs: a list of extra outputs this action should be dependent on;
                     used to serialize action/rules before compilation
      extra_link_deps: a list that will be filled in with any outputs of
                       compilation (to be used in link lines)
      part_of_all: flag indicating this target is part of 'all'
      """
  
      # Write configuration-specific variables for CFLAGS, etc.
      for configname in sorted(configs.keys()):
        config = configs[configname]
        self.WriteList(config.get('defines'), 'DEFS_%s' % configname, prefix='-D',
            quoter=EscapeCppDefine)
  
        if self.flavor == 'mac':
          cflags = self.xcode_settings.GetCflags(configname)
          cflags_c = self.xcode_settings.GetCflagsC(configname)
          cflags_cc = self.xcode_settings.GetCflagsCC(configname)
          cflags_objc = self.xcode_settings.GetCflagsObjC(configname)
          cflags_objcc = self.xcode_settings.GetCflagsObjCC(configname)
        else:
          cflags = config.get('cflags')
          cflags_c = config.get('cflags_c')
          cflags_cc = config.get('cflags_cc')
  
        self.WriteLn("# Flags passed to all source files.");
        self.WriteList(cflags, 'CFLAGS_%s' % configname)
        self.WriteLn("# Flags passed to only C files.");
        self.WriteList(cflags_c, 'CFLAGS_C_%s' % configname)
        self.WriteLn("# Flags passed to only C++ files.");
        self.WriteList(cflags_cc, 'CFLAGS_CC_%s' % configname)
        if self.flavor == 'mac':
          self.WriteLn("# Flags passed to only ObjC files.");
          self.WriteList(cflags_objc, 'CFLAGS_OBJC_%s' % configname)
          self.WriteLn("# Flags passed to only ObjC++ files.");
          self.WriteList(cflags_objcc, 'CFLAGS_OBJCC_%s' % configname)
        includes = config.get('include_dirs')
        if includes:
          includes = map(Sourceify, map(self.Absolutify, includes))
        self.WriteList(includes, 'INCS_%s' % configname, prefix='-I')
  
      compilable = filter(Compilable, sources)
      objs = map(self.Objectify, map(self.Absolutify, map(Target, compilable)))
      self.WriteList(objs, 'OBJS')
  
      for obj in objs:
        assert ' ' not in obj, (
            "Spaces in object filenames not supported (%s)"  % obj)
      self.WriteLn('# Add to the list of files we specially track '
                   'dependencies for.')
      self.WriteLn('all_deps += $(OBJS)')
      self.WriteLn()
  
      # Make sure our dependencies are built first.
      if deps:
        self.WriteMakeRule(['$(OBJS)'], deps,
                           comment = 'Make sure our dependencies are built '
                                     'before any of us.',
                           order_only = True)
  
      # Make sure the actions and rules run first.
      # If they generate any extra headers etc., the per-.o file dep tracking
      # will catch the proper rebuilds, so order only is still ok here.
      if extra_outputs:
        self.WriteMakeRule(['$(OBJS)'], extra_outputs,
                           comment = 'Make sure our actions/rules run '
                                     'before any of us.',
                           order_only = True)
  
      pchdeps = precompiled_header.GetObjDependencies(compilable, objs )
      if pchdeps:
        self.WriteLn('# Dependencies from obj files to their precompiled headers')
        for source, obj, gch in pchdeps:
          self.WriteLn('%s: %s' % (obj, gch))
        self.WriteLn('# End precompiled header dependencies')
  
      if objs:
        extra_link_deps.append('$(OBJS)')
        self.WriteLn("""\
  # CFLAGS et al overrides must be target-local.
  # See "Target-specific Variable Values" in the GNU Make manual.""")
        self.WriteLn("$(OBJS): TOOLSET := $(TOOLSET)")
        self.WriteLn("$(OBJS): GYP_CFLAGS := "
                     "$(DEFS_$(BUILDTYPE)) "
                     "$(INCS_$(BUILDTYPE)) "
                     "%s " % precompiled_header.GetInclude('c') +
                     "$(CFLAGS_$(BUILDTYPE)) "
                     "$(CFLAGS_C_$(BUILDTYPE))")
        self.WriteLn("$(OBJS): GYP_CXXFLAGS := "
                     "$(DEFS_$(BUILDTYPE)) "
                     "$(INCS_$(BUILDTYPE)) "
                     "%s " % precompiled_header.GetInclude('cc') +
                     "$(CFLAGS_$(BUILDTYPE)) "
                     "$(CFLAGS_CC_$(BUILDTYPE))")
        if self.flavor == 'mac':
          self.WriteLn("$(OBJS): GYP_OBJCFLAGS := "
                       "$(DEFS_$(BUILDTYPE)) "
                       "$(INCS_$(BUILDTYPE)) "
                       "%s " % precompiled_header.GetInclude('m') +
                       "$(CFLAGS_$(BUILDTYPE)) "
                       "$(CFLAGS_C_$(BUILDTYPE)) "
                       "$(CFLAGS_OBJC_$(BUILDTYPE))")
          self.WriteLn("$(OBJS): GYP_OBJCXXFLAGS := "
                       "$(DEFS_$(BUILDTYPE)) "
                       "$(INCS_$(BUILDTYPE)) "
                       "%s " % precompiled_header.GetInclude('mm') +
                       "$(CFLAGS_$(BUILDTYPE)) "
                       "$(CFLAGS_CC_$(BUILDTYPE)) "
                       "$(CFLAGS_OBJCC_$(BUILDTYPE))")
  
      self.WritePchTargets(precompiled_header.GetPchBuildCommands())
  
      # If there are any object files in our input file list, link them into our
      # output.
      extra_link_deps += filter(Linkable, sources)
  
      self.WriteLn()
function_tokens: def WriteSources ( self , configs , deps , sources , extra_outputs , extra_link_deps , part_of_all , precompiled_header ) : # Write configuration-specific variables for CFLAGS, etc. for configname in sorted ( configs . keys ( ) ) : config = configs [ configname ] self . WriteList ( config . get ( 'defines' ) , 'DEFS_%s' % configname , prefix = '-D' , quoter = EscapeCppDefine ) if self . flavor == 'mac' : cflags = self . xcode_settings . GetCflags ( configname ) cflags_c = self . xcode_settings . GetCflagsC ( configname ) cflags_cc = self . xcode_settings . GetCflagsCC ( configname ) cflags_objc = self . xcode_settings . GetCflagsObjC ( configname ) cflags_objcc = self . xcode_settings . GetCflagsObjCC ( configname ) else : cflags = config . get ( 'cflags' ) cflags_c = config . get ( 'cflags_c' ) cflags_cc = config . get ( 'cflags_cc' ) self . WriteLn ( "# Flags passed to all source files." ) self . WriteList ( cflags , 'CFLAGS_%s' % configname ) self . WriteLn ( "# Flags passed to only C files." ) self . WriteList ( cflags_c , 'CFLAGS_C_%s' % configname ) self . WriteLn ( "# Flags passed to only C++ files." ) self . WriteList ( cflags_cc , 'CFLAGS_CC_%s' % configname ) if self . flavor == 'mac' : self . WriteLn ( "# Flags passed to only ObjC files." ) self . WriteList ( cflags_objc , 'CFLAGS_OBJC_%s' % configname ) self . WriteLn ( "# Flags passed to only ObjC++ files." ) self . WriteList ( cflags_objcc , 'CFLAGS_OBJCC_%s' % configname ) includes = config . get ( 'include_dirs' ) if includes : includes = map ( Sourceify , map ( self . Absolutify , includes ) ) self . WriteList ( includes , 'INCS_%s' % configname , prefix = '-I' ) compilable = filter ( Compilable , sources ) objs = map ( self . Objectify , map ( self . Absolutify , map ( Target , compilable ) ) ) self . WriteList ( objs , 'OBJS' ) for obj in objs : assert ' ' not in obj , ( "Spaces in object filenames not supported (%s)" % obj ) self . WriteLn ( '# Add to the list of files we specially track ' 'dependencies for.' ) self . WriteLn ( 'all_deps += $(OBJS)' ) self . WriteLn ( ) # Make sure our dependencies are built first. if deps : self . WriteMakeRule ( [ '$(OBJS)' ] , deps , comment = 'Make sure our dependencies are built ' 'before any of us.' , order_only = True ) # Make sure the actions and rules run first. # If they generate any extra headers etc., the per-.o file dep tracking # will catch the proper rebuilds, so order only is still ok here. if extra_outputs : self . WriteMakeRule ( [ '$(OBJS)' ] , extra_outputs , comment = 'Make sure our actions/rules run ' 'before any of us.' , order_only = True ) pchdeps = precompiled_header . GetObjDependencies ( compilable , objs ) if pchdeps : self . WriteLn ( '# Dependencies from obj files to their precompiled headers' ) for source , obj , gch in pchdeps : self . WriteLn ( '%s: %s' % ( obj , gch ) ) self . WriteLn ( '# End precompiled header dependencies' ) if objs : extra_link_deps . append ( '$(OBJS)' ) self . WriteLn ( """\
  # CFLAGS et al overrides must be target-local.
  # See "Target-specific Variable Values" in the GNU Make manual.""" ) self . WriteLn ( "$(OBJS): TOOLSET := $(TOOLSET)" ) self . WriteLn ( "$(OBJS): GYP_CFLAGS := " "$(DEFS_$(BUILDTYPE)) " "$(INCS_$(BUILDTYPE)) " "%s " % precompiled_header . GetInclude ( 'c' ) + "$(CFLAGS_$(BUILDTYPE)) " "$(CFLAGS_C_$(BUILDTYPE))" ) self . WriteLn ( "$(OBJS): GYP_CXXFLAGS := " "$(DEFS_$(BUILDTYPE)) " "$(INCS_$(BUILDTYPE)) " "%s " % precompiled_header . GetInclude ( 'cc' ) + "$(CFLAGS_$(BUILDTYPE)) " "$(CFLAGS_CC_$(BUILDTYPE))" ) if self . flavor == 'mac' : self . WriteLn ( "$(OBJS): GYP_OBJCFLAGS := " "$(DEFS_$(BUILDTYPE)) " "$(INCS_$(BUILDTYPE)) " "%s " % precompiled_header . GetInclude ( 'm' ) + "$(CFLAGS_$(BUILDTYPE)) " "$(CFLAGS_C_$(BUILDTYPE)) " "$(CFLAGS_OBJC_$(BUILDTYPE))" ) self . WriteLn ( "$(OBJS): GYP_OBJCXXFLAGS := " "$(DEFS_$(BUILDTYPE)) " "$(INCS_$(BUILDTYPE)) " "%s " % precompiled_header . GetInclude ( 'mm' ) + "$(CFLAGS_$(BUILDTYPE)) " "$(CFLAGS_CC_$(BUILDTYPE)) " "$(CFLAGS_OBJCC_$(BUILDTYPE))" ) self . WritePchTargets ( precompiled_header . GetPchBuildCommands ( ) ) # If there are any object files in our input file list, link them into our # output. extra_link_deps += filter ( Linkable , sources ) self . WriteLn ( )