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