82 lines
2.0 KiB
Python
82 lines
2.0 KiB
Python
import os
|
|
|
|
#version info of the library
|
|
revision = svn_version = os.popen('svnversion').read()[:-1]
|
|
|
|
version_info = {
|
|
'version_major': 1 ,
|
|
'version_minor': 0 ,
|
|
'version_patch': 0 ,
|
|
'version_revision': revision,
|
|
}
|
|
|
|
AddOption('--build_type',
|
|
dest = 'build_type',
|
|
type = 'string',
|
|
nargs = 1,
|
|
action='store',
|
|
default='debug',
|
|
metavar='TYPE',
|
|
help = 'debug|release - Build a Debug (default) or Release variant'
|
|
)
|
|
AddOption('--prefix',
|
|
dest='prefix',
|
|
type='string',
|
|
nargs=1,
|
|
action='store',
|
|
metavar='DIR',
|
|
default='/usr',
|
|
help='installation prefix'
|
|
)
|
|
|
|
AddOption('--test_xml',
|
|
dest='test_xml',
|
|
action='store_true',
|
|
help='Create a result.xml when running the testsuite'
|
|
)
|
|
|
|
|
|
build_type = GetOption('build_type')
|
|
test_xml = GetOption('test_xml')
|
|
prefix = GetOption('prefix')
|
|
if not (build_type in ['debug', 'release']):
|
|
print "Error: expected 'debug' or 'release', found: " + build_type
|
|
Exit(1)
|
|
|
|
def InstallPerm(env, dest, files, perm):
|
|
obj = env.Install(dest, files)
|
|
for i in obj:
|
|
env.AddPostAction(i, Chmod(str(i), perm))
|
|
return dest
|
|
|
|
|
|
env = Environment(tools = ['default', 'textfile'])
|
|
env.AddMethod(InstallPerm)
|
|
Export('env', 'build_type', 'prefix', 'version_info', 'test_xml')
|
|
|
|
env.Append(CFLAGS = ['-Wall', '-Wextra', '-pipe', '-ggdb'])
|
|
env.Append(LINKFLAGS = ['-O2'])
|
|
env.Append(CPPDEFINES = ['_FILE_OFFSET_BITS=64'])
|
|
|
|
if build_type == 'release':
|
|
env.Append(CFLAGS = ['-O2'])
|
|
|
|
#this will turn off assert()
|
|
env.Append(CPPDEFINES = ['NDEBUG'])
|
|
|
|
elif build_type == 'debug':
|
|
env.Append(CPPDEFINES = ['DEBUG'])
|
|
|
|
#put all .sconsign files in one place
|
|
env.SConsignFile()
|
|
|
|
subdirs = [
|
|
'src',
|
|
'test'
|
|
]
|
|
|
|
for subdir in subdirs:
|
|
SConscript(subdir + '/SConscript', variant_dir='#build/' + subdir, src_dir='#'+subdir, duplicate=0)
|
|
|
|
env.Default('src')
|