File: winres.py

package info (click to toggle)
xiphos 4.0.4%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 17,288 kB
  • ctags: 4,500
  • sloc: ansic: 29,213; cpp: 13,069; python: 12,734; xml: 3,170; sh: 39; makefile: 36
file content (32 lines) | stat: -rw-r--r-- 1,046 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
#! /usr/bin/env python
# encoding: utf-8

import os,sys,re
import TaskGen,Task
from Utils import quote_whitespace
from TaskGen import extension
EXT_WINRC=['.rc']
winrc_str='${WINRC} ${_CPPDEFFLAGS} ${_CCDEFFLAGS} ${WINRCFLAGS} ${_CPPINCFLAGS} ${_CCINCFLAGS} ${WINRC_TGT_F} ${TGT} ${WINRC_SRC_F} ${SRC}'
def rc_file(self,node):
	obj_ext='.rc.o'
	if self.env['WINRC_TGT_F']=='/fo':obj_ext='.res'
	rctask=self.create_task('winrc',node,node.change_ext(obj_ext))
	self.compiled_tasks.append(rctask)
Task.simple_task_type('winrc',winrc_str,color='BLUE',before='cc cxx',shell=False)
def detect(conf):
	v=conf.env
	winrc=v['WINRC']
	v['WINRC_TGT_F']='-o'
	v['WINRC_SRC_F']='-i'
	if not winrc:
		if v['CC_NAME']in['gcc','cc','g++','c++']:
			winrc=conf.find_program('windres',var='WINRC',path_list=v['PATH'])
		elif v['CC_NAME']=='msvc':
			winrc=conf.find_program('RC',var='WINRC',path_list=v['PATH'])
			v['WINRC_TGT_F']='/fo'
			v['WINRC_SRC_F']=''
	if not winrc:
		conf.fatal('winrc was not found!')
	v['WINRCFLAGS']=''

extension(EXT_WINRC)(rc_file)