waf/playground/distnet/app/wscript

82 lines
2.1 KiB
Python

#! /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()