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.
82 lines
2.1 KiB
Python
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()
|
|
|