waf

FORK: waf with some random patches
git clone https://git.neptards.moe/neptards/waf.git
Log | Files | Refs | README

wscript (2107B)


      1 #! /usr/bin/env python
      2 # encoding: utf-8
      3 
      4 """
      5 waf configure_all build_all
      6 """
      7 
      8 VERSION='1.0.0'
      9 APPNAME='app'
     10 
     11 top = '.'
     12 out = 'build'
     13 
     14 from waflib.extras import remote # optional
     15 from waflib.extras import distnet
     16 
     17 variants = [
     18 'linux_64_debug',
     19 'linux_64_release',
     20 'linux_32_debug',
     21 'linux_32_release',
     22 ]
     23 
     24 def options(opt):
     25 	opt.load('distnet')
     26 	opt.load('compiler_c')
     27 
     28 def configure(conf):
     29 	conf.load('distnet')
     30 	conf.load('compiler_c')
     31 
     32 	if conf.variant == 'linux_64_release':
     33 		conf.env.LIB_m = ['m']
     34 
     35 def build(bld):
     36 	bld.shlib(source='prep.c', target='prepouet', includes='.', use='m')
     37 	bld.shlib(source='main.c', target='pouet', includes='.', use='prepouet')
     38 
     39 def package(ctx):
     40 	for v in variants:
     41 		tar = 'build/%s.tarfile' % v
     42 		inputs = ['build/%s/libpouet.so' % v, 'build/%s/libprepouet.so' % v]
     43 		ctx.make_tarfile(tar, inputs)
     44 	ctx.make_tarfile('build/noarch.tarfile', ['head.h', 'waf_pouet.py'])
     45 
     46 # testing..........................................................................................
     47 #
     48 
     49 from waflib import Utils
     50 class problem(object):
     51 	def __init__(self):
     52 		self.reader = distnet.package_reader()
     53 		#self.reader.debug = 1
     54 		self.vtable = {self.reader.myproject : [self.reader.myversion]}
     55 
     56 	def add_constraint(self, pkgname, pkgver, text):
     57 		self.reader.cache_constraints[(pkgname, pkgver)] = distnet.parse_constraints(text)
     58 
     59 	def set_versions(self, pkgname, versions):
     60 		self.vtable[pkgname] = Utils.to_list(versions)
     61 
     62 def test(ctx):
     63 	p = problem()
     64 	p.add_constraint(APPNAME, VERSION, 'app1,1.0.*\napp2,1.0.*')
     65 	p.add_constraint('app1', '1.0.0', 'app3,1.0.*,')
     66 	p.add_constraint('app2', '1.0.0', 'app3,2.0.*,')
     67 	p.add_constraint('app3', '1.0.0', '')
     68 	p.add_constraint('app3', '2.0.0', '')
     69 
     70 	p.set_versions('app1', '1.0.0')
     71 	p.set_versions('app2', '1.0.0')
     72 	p.set_versions('app3', '1.0.0 2.0.0')
     73 
     74 	versions, constraints = p.reader.solve(p.vtable, {}, p.reader.myproject, p.reader.myversion)
     75 	#print versions
     76 	#print constraints
     77 	#for a, b in constraints.items():
     78 	#	print a, b
     79 	p.reader.constraints = p.reader.solution_to_constraints(versions, constraints)
     80 	p.reader.check_errors()
     81