Files
libucore/SConstruct
T
2012-12-14 20:23:41 +01:00

84 lines
2.1 KiB
Python

import os
#version info of the library, we use 5 chars from the git hash
revision = os.popen('git describe --abbrev=5 --dirty --always').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 = ['-std=gnu99','-Wall', '-Wextra', '-Wundef', '-Wcast-qual','-Wshadow' ,'-Wcast-align','-pipe', '-ggdb', '-pthread'])
env.Append(LINKFLAGS = ['-O2', '-pthread'])
env.Append(CPPDEFINES = ['_FILE_OFFSET_BITS=64'])
env.Append(CPPPATH = ['#include'])
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',
'include',
'test',
]
for subdir in subdirs:
SConscript(subdir + '/SConscript', variant_dir='#build/' + subdir, src_dir='#'+subdir, duplicate=0)
env.Default('src')