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.
		
		
			
		
		
		
		
			
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
| #! /usr/bin/env python
 | |
| 
 | |
| bld.shlib(
 | |
| 	source = 'test_shlib.c',
 | |
| 	target = 'my_shared_lib',
 | |
| 	name   = 'xyz',
 | |
| 	vnum   = '1.2.3',
 | |
| 	defs   = 'foo.def')
 | |
| 
 | |
| 
 | |
| t = bld.program(
 | |
| 	#features = 'my_precious',
 | |
| 	source = 'main.c',
 | |
| 	target = 'test_shared_link',
 | |
| 	use    = 'xyz',
 | |
| 	# 1. settings flags directly
 | |
| 	#linkflags = ['-L/disk/comp/waf/demos/c/build/shlib', '-lmy_shared_lib']
 | |
| 	)
 | |
| # 2. another way of setting flags
 | |
| #t.env.linkflags = ['-L/disk/comp/waf/demos/c/build/shlib', '-lmy_shared_lib']
 | |
| 
 | |
| # 3. advanced flag control through 'feature' methods (standard practice when 1. or 2. is not enough)
 | |
| #import sys
 | |
| #from waflib import TaskGen
 | |
| #@TaskGen.feature('my_precious')
 | |
| #@TaskGen.after_method('apply_link', 'propagate_uselib_vars')
 | |
| #def set_flags(self):
 | |
| #	if sys.platform == 'linux2':
 | |
| #		self.link_task.env.LINKFLAGS = ['-Lshlib', '--whole-archive', '-lmy_shared_lib']
 | |
| #		self.link_task.env.LIB   = []
 | |
| #		self.link_task.env.STLIB = []
 | |
| #		self.link_task.env.STLIB_MARKER = []
 | |
| 
 | |
| # 4. changing the class - setting flags such as LINKFLAGS_cshlib is usually a much better idea
 | |
| #from waflib.Utils import run_once
 | |
| #from waflib.Tools.c import cprogram
 | |
| #class cprogram(cprogram):
 | |
| #	def runnable_status(self):
 | |
| #		self.set_flags()
 | |
| #		self.set_flags() # just to see
 | |
| #		return super(cprogram, self).runnable_status()
 | |
| #	@run_once
 | |
| #	def set_flags(self):
 | |
| #		self.env.append_value('LINKFLAGS', ['-g'])
 | |
| 
 |