You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
			
		
		
		
		
			
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
| #! /usr/bin/env python
 | |
| # encoding: utf-8
 | |
| 
 | |
| top = '.'
 | |
| out = 'bin'
 | |
| 
 | |
| import os, re
 | |
| from waflib import Utils
 | |
| 
 | |
| def configure(conf):
 | |
| 	pass
 | |
| 
 | |
| def build(bld):
 | |
| 
 | |
| 	# the test.pc.in is a special case which is always handled
 | |
| 	bld(source='test.pc.in', VERSION='1.1', LIBS='moo', XPM_LIBS='-lxpm', LIBICONV='-liconv', XPM_CFLAGS='-O3', INTVAR=12)
 | |
| 
 | |
| 	tg = bld(
 | |
| 		features     = 'subst', # the feature 'subst' overrides the source/target processing
 | |
| 		source       = 'foo.in', # list of string or nodes
 | |
| 		target       = 'foo.txt', # list of strings or nodes
 | |
| 		encoding     = 'ascii', # file encoding for python3, default is latin-1
 | |
| 		install_path = '/tmp/uff/', # installation path, optional
 | |
| 		chmod        = Utils.O755, # installation mode, optional
 | |
| 		PREFIX       = bld.env.PREFIX, # variables to use in the substitution
 | |
| 		re_m4        = re.compile('%%(\w+)%%', re.M), # custom substitution
 | |
| 		BINDIR       = bld.env.BINDIR)
 | |
| 
 | |
| 	# if you are using an external dict, here is to merge the key/values:
 | |
| 	dct =  {'BINDIR': '/opt'}
 | |
| 	tg.__dict__.update(dct)
 | |
| 
 | |
| 	# if you want a file copy, pass "is_copy=True"
 | |
| 	bld(features='subst', source='wscript', target='wscript', is_copy=True)
 | |
| 
 | |
| 	# same thing with a simple function
 | |
| 	def fun(task, text):
 | |
| 		return text
 | |
| 	bld(features='subst', subst_fun=fun, source='wscript', target='wscript2')
 | |
| 
 | |
| 	def hlink(task):
 | |
| 		try:
 | |
| 			link = os.link
 | |
| 		except AttributeError:
 | |
| 			task.outputs[0].write(task.inputs[0].read('rb'), 'wb')
 | |
| 		else:
 | |
| 			for x, y in zip(task.inputs, task.outputs):
 | |
| 				try:
 | |
| 					os.remove(y.abspath())
 | |
| 				except OSError:
 | |
| 					pass
 | |
| 				os.link(x.abspath(), y.abspath())
 | |
| 	bld(features='subst', fun=hlink, source='wscript', target='wscript3')
 | |
| 
 | |
| 	# this one is just a reminder that simple files can be created (and a test too)
 | |
| 	bld(rule='echo "การไฟ่" > ${TGT}', target='uni.txt')
 | |
| 
 | |
| 	# and this is an alternate syntax
 | |
| 	#@bld.rule(source='wscript', target='wscript2')
 | |
| 	#def _(tsk):
 | |
| 	#	tsk.outputs[0].write(tsk.inputs[0].read())
 | |
| 
 |