123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #! /usr/bin/env python
- # encoding: utf-8
- """
- waf configure_all build_all
- """
- VERSION='1.0.0'
- APPNAME='app'
- top = '.'
- out = 'build'
- from waflib.extras import remote # optional
- from waflib.extras import distnet
- variants = [
- 'linux_64_debug',
- 'linux_64_release',
- 'linux_32_debug',
- 'linux_32_release',
- ]
- def options(opt):
- opt.load('distnet')
- opt.load('compiler_c')
- def configure(conf):
- conf.load('distnet')
- conf.load('compiler_c')
- if conf.variant == 'linux_64_release':
- conf.env.LIB_m = ['m']
- def build(bld):
- bld.shlib(source='prep.c', target='prepouet', includes='.', use='m')
- bld.shlib(source='main.c', target='pouet', includes='.', use='prepouet')
- def package(ctx):
- for v in variants:
- tar = 'build/%s.tarfile' % v
- inputs = ['build/%s/libpouet.so' % v, 'build/%s/libprepouet.so' % v]
- ctx.make_tarfile(tar, inputs)
- ctx.make_tarfile('build/noarch.tarfile', ['head.h', 'waf_pouet.py'])
- # testing..........................................................................................
- #
- from waflib import Utils
- class problem(object):
- def __init__(self):
- self.reader = distnet.package_reader()
- #self.reader.debug = 1
- self.vtable = {self.reader.myproject : [self.reader.myversion]}
- def add_constraint(self, pkgname, pkgver, text):
- self.reader.cache_constraints[(pkgname, pkgver)] = distnet.parse_constraints(text)
- def set_versions(self, pkgname, versions):
- self.vtable[pkgname] = Utils.to_list(versions)
- def test(ctx):
- p = problem()
- p.add_constraint(APPNAME, VERSION, 'app1,1.0.*\napp2,1.0.*')
- p.add_constraint('app1', '1.0.0', 'app3,1.0.*,')
- p.add_constraint('app2', '1.0.0', 'app3,2.0.*,')
- p.add_constraint('app3', '1.0.0', '')
- p.add_constraint('app3', '2.0.0', '')
- p.set_versions('app1', '1.0.0')
- p.set_versions('app2', '1.0.0')
- p.set_versions('app3', '1.0.0 2.0.0')
- versions, constraints = p.reader.solve(p.vtable, {}, p.reader.myproject, p.reader.myversion)
- #print versions
- #print constraints
- #for a, b in constraints.items():
- # print a, b
- p.reader.constraints = p.reader.solution_to_constraints(versions, constraints)
- p.reader.check_errors()
|