87 lines
2.0 KiB
Python
87 lines
2.0 KiB
Python
#! /usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
# wscript
|
|
|
|
VERSION='0.0.1'
|
|
APPNAME='icfp08'
|
|
|
|
srcdir = '.'
|
|
blddir = 'build'
|
|
|
|
###########################
|
|
import types
|
|
|
|
def tolist(x):
|
|
if type(x) is types.ListType:
|
|
return x
|
|
return [x]
|
|
|
|
def env_mod(conf, use):
|
|
types = [ 'LIB', 'STATICLIB', 'LIBPATH', 'CPPPATH', 'CXXDEFINES', 'CCFLAGS', 'CXXFLAGS', 'LINKFLAGS' ]
|
|
bak = {}
|
|
for t in types:
|
|
bak[t] = conf.env[t]
|
|
for u in use:
|
|
conf.env[t] = tolist(conf.env[t]) + tolist(conf.env['%s_%s' % (t, u)])
|
|
return bak
|
|
|
|
def env_mod_revert(conf, bak):
|
|
for (k,v) in bak.items():
|
|
conf.env[k] = v
|
|
|
|
def CHECK_INCLUDE_FILES(conf, header, define, uselib = '', path = None, mandatory = 0, use = []):
|
|
envbak = env_mod(conf, use)
|
|
hconf = conf.create_header_configurator()
|
|
hconf.mandatory = mandatory
|
|
hconf.name = header
|
|
hconf.uselib_store = uselib
|
|
hconf.define = define
|
|
if path: hconf.path += path
|
|
res = hconf.run()
|
|
env_mod_revert(conf, envbak)
|
|
return res
|
|
|
|
def PKGCONFIG(conf, name, uselib = None, define = '', version = '', mandatory = 0):
|
|
if not uselib: uselib = name
|
|
hconf = conf.create_pkgconfig_configurator()
|
|
hconf.name = name
|
|
hconf.version = version
|
|
hconf.uselib_store = uselib
|
|
hconf.define = define
|
|
hconf.mandatory = mandatory
|
|
res = hconf.run()
|
|
return res
|
|
|
|
###########################
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def set_options(opt):
|
|
opt.tool_options('compiler_cc')
|
|
opt.tool_options('ragel', tooldir = '.')
|
|
|
|
def configure(conf):
|
|
conf.check_tool('compiler_cc')
|
|
conf.check_tool('ragel', tooldir = '.')
|
|
|
|
common_ccflags = [
|
|
'-std=gnu99', '-Wall', '-g', '-Wshadow', '-W', '-pedantic',
|
|
# '-fPIC', '-D_GNU_SOURCE',
|
|
]
|
|
conf.env['CCFLAGS'] += common_ccflags
|
|
|
|
PKGCONFIG(conf, "glib-2.0", uselib = 'glib', mandatory = 1)
|
|
incdir = conf.env['CPPPATH_glib'][0]
|
|
conf.env['CPPPATH_glib'] += [ incdir+'/glib-2.0/', incdir + '/glib-2.0/include/' ]
|
|
CHECK_INCLUDE_FILES(conf, "glib.h", "HAVE_GLIB_H", uselib = 'glib', use = ['glib'], mandatory = 1)
|
|
|
|
conf.write_config_header('src/config.h')
|
|
|
|
|
|
def build(bld):
|
|
bld.add_subdirs('src')
|