Logo Search packages:      
Sourcecode: waf version File versions  Download package

cs.py

#!/usr/bin/env python
# encoding: utf-8
# Thomas Nagy, 2006 (ita)

"C# support"

import TaskGen, Utils, Task, Options
from Logs import error
from TaskGen import before, after, taskgen, feature

flag_vars= ['FLAGS', 'ASSEMBLIES']

@feature('cs')
def init_cs(self):
      Utils.def_attrs(self,
            flags = '',
            assemblies = '',
            resources = '',
            uselib = '')

@feature('cs')
@after('init_cs')
def apply_uselib_cs(self):
      if not self.uselib:
            return
      global flag_vars
      for var in self.to_list(self.uselib):
            for v in self.flag_vars:
                  val = self.env[v+'_'+var]
                  if val: self.env.append_value(v, val)

@feature('cs')
@after('apply_uselib_cs')
@before('apply_core')
def apply_cs(self):
      try: self.meths.remove('apply_core')
      except ValueError: pass

      # process the flags for the assemblies
      for i in self.to_list(self.assemblies) + self.env['ASSEMBLIES']:
            self.env.append_unique('_ASSEMBLIES', '/r:'+i)

      # process the flags for the resources
      for i in self.to_list(self.resources):
            self.env.append_unique('_RESOURCES', '/resource:'+i)

      # what kind of assembly are we generating?
      self.env['_TYPE'] = getattr(self, 'type', 'exe')

      # additional flags
      self.env.append_unique('_FLAGS', self.to_list(self.flags))
      self.env.append_unique('_FLAGS', self.env.FLAGS)

      # process the sources
      nodes = [self.path.find_resource(i) for i in self.to_list(self.source)]
      self.create_task('mcs', nodes, self.path.find_or_declare(self.target))

Task.simple_task_type('mcs', '${MCS} ${SRC} /target:${_TYPE} /out:${TGT} ${_FLAGS} ${_ASSEMBLIES} ${_RESOURCES}', color='YELLOW')

def detect(conf):
      csc = getattr(Options.options, 'cscbinary', None)
      if csc:
            conf.env.MCS = csc
      conf.find_program(['gmcs', 'mcs'], var='MCS')

def set_options(opt):
      opt.add_option('--with-csc-binary', type='string', dest='cscbinary')


Generated by  Doxygen 1.6.0   Back to index