File: cs.py

package info (click to toggle)
xiphos 4.1.0.1%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 18,572 kB
  • sloc: ansic: 25,543; cpp: 13,223; python: 12,684; xml: 2,951; sh: 144; makefile: 42
file content (44 lines) | stat: -rw-r--r-- 1,592 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /usr/bin/env python
# encoding: utf-8

import TaskGen,Utils,Task,Options
from Logs import error
from TaskGen import before,after,taskgen,feature
flag_vars=['FLAGS','ASSEMBLIES']
def init_cs(self):
	Utils.def_attrs(self,flags='',assemblies='',resources='',uselib='')
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)
def apply_cs(self):
	try:self.meths.remove('apply_core')
	except ValueError:pass
	for i in self.to_list(self.assemblies)+self.env['ASSEMBLIES']:
		self.env.append_unique('_ASSEMBLIES','/r:'+i)
	for i in self.to_list(self.resources):
		self.env.append_unique('_RESOURCES','/resource:'+i)
	self.env['_TYPE']=getattr(self,'type','exe')
	self.env.append_unique('_FLAGS',self.to_list(self.flags))
	self.env.append_unique('_FLAGS',self.env.FLAGS)
	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')

feature('cs')(init_cs)
feature('cs')(apply_uselib_cs)
after('init_cs')(apply_uselib_cs)
feature('cs')(apply_cs)
after('apply_uselib_cs')(apply_cs)
before('apply_core')(apply_cs)