everything's working for new-build except Clean()
This commit is contained in:
parent
ef235136d9
commit
f21954eecd
3 changed files with 37 additions and 20 deletions
19
SConstruct
19
SConstruct
|
|
@ -7,9 +7,13 @@ import sys
|
||||||
vars = Variables(None, ARGUMENTS)
|
vars = Variables(None, ARGUMENTS)
|
||||||
vars.Add(PathVariable('DESTDIR', "Root directory to install in (useful for packaging scripts)", None, PathVariable.PathIsDirCreate))
|
vars.Add(PathVariable('DESTDIR', "Root directory to install in (useful for packaging scripts)", None, PathVariable.PathIsDirCreate))
|
||||||
vars.Add(PathVariable('prefix', "Where to install in the FHS", "/usr/local", PathVariable.PathAccept))
|
vars.Add(PathVariable('prefix', "Where to install in the FHS", "/usr/local", PathVariable.PathAccept))
|
||||||
|
vars.Add(ListVariable('bindings', 'Language bindings to build', 'none', ['python']))
|
||||||
|
|
||||||
env = Environment(ENV = {'PATH' : os.environ['PATH']}, variables = vars, tools=['default', 'scanreplace'], toolpath=['tools'])
|
env = Environment(ENV = {'PATH' : os.environ['PATH']}, variables = vars, tools=['default', 'scanreplace'], toolpath=['tools'])
|
||||||
|
|
||||||
|
if not 'bindings' in env:
|
||||||
|
env['bindings'] = []
|
||||||
|
|
||||||
def calcInstallPath(*elements):
|
def calcInstallPath(*elements):
|
||||||
path = os.path.abspath(os.path.join(*map(env.subst, elements)))
|
path = os.path.abspath(os.path.join(*map(env.subst, elements)))
|
||||||
if 'DESTDIR' in env:
|
if 'DESTDIR' in env:
|
||||||
|
|
@ -90,18 +94,23 @@ env["ENV"].update(x for x in os.environ.items() if x[0].startswith("CCC_"))
|
||||||
#rootpath = env['ROOTPATH'] = os.path.abspath('.')
|
#rootpath = env['ROOTPATH'] = os.path.abspath('.')
|
||||||
#env.Append(CPPPATH=os.path.join('#', "hammer"))
|
#env.Append(CPPPATH=os.path.join('#', "hammer"))
|
||||||
|
|
||||||
|
testruns = []
|
||||||
|
|
||||||
Export('env')
|
Export('env')
|
||||||
|
Export('testruns')
|
||||||
|
|
||||||
if not GetOption("in_place"):
|
if not GetOption("in_place"):
|
||||||
env['BUILD_BASE'] = 'build/$VARIANT'
|
env['BUILD_BASE'] = 'build/$VARIANT'
|
||||||
env.SConscript(["src/SConscript"], variant_dir='$BUILD_BASE/src')
|
lib = env.SConscript(["src/SConscript"], variant_dir='$BUILD_BASE/src')
|
||||||
env.SConscript(["examples/SConscript"], variant_dir='$BUILD_BASE/examples')
|
env.Alias("examples", env.SConscript(["examples/SConscript"], variant_dir='$BUILD_BASE/examples'))
|
||||||
else:
|
else:
|
||||||
env['BUILD_BASE'] = '.'
|
env['BUILD_BASE'] = '.'
|
||||||
env.SConscript(["src/SConscript"])
|
lib = env.SConscript(["src/SConscript"])
|
||||||
env.SConscript(["examples/SConscript"])
|
env.Alias(env.SConscript(["examples/SConscript"]))
|
||||||
|
|
||||||
env.Command('test', '$BUILD_BASE/src/test_suite', 'env LD_LIBRARY_PATH=$BUILD_BASE/src $SOURCE')
|
#env.Command('test', '$BUILD_BASE/src/test_suite', 'env LD_LIBRARY_PATH=$BUILD_BASE/src $SOURCE')
|
||||||
|
|
||||||
|
env.Alias("test", testruns)
|
||||||
|
|
||||||
env.Alias("install", "$libpath")
|
env.Alias("install", "$libpath")
|
||||||
env.Alias("install", "$incpath")
|
env.Alias("install", "$incpath")
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
# -*- python -*-
|
# -*- python -*-
|
||||||
Import('env')
|
import os.path
|
||||||
|
Import('env testruns')
|
||||||
bindings = ['python']
|
|
||||||
|
|
||||||
dist_headers = [
|
dist_headers = [
|
||||||
"hammer.h",
|
"hammer.h",
|
||||||
|
|
@ -62,15 +61,16 @@ misc_hammer_parts = [
|
||||||
'registry.c',
|
'registry.c',
|
||||||
'system_allocator.c']
|
'system_allocator.c']
|
||||||
|
|
||||||
tests = ['t_benchmark.c',
|
ctests = ['t_benchmark.c',
|
||||||
't_bitreader.c',
|
't_bitreader.c',
|
||||||
't_bitwriter.c',
|
't_bitwriter.c',
|
||||||
't_parser.c',
|
't_parser.c',
|
||||||
't_grammar.c',
|
't_grammar.c',
|
||||||
't_misc.c']
|
't_misc.c']
|
||||||
|
|
||||||
libhammer_shared = env.SharedLibrary('hammer', parsers + backends + misc_hammer_parts)
|
libhammer_shared = env.SharedLibrary('hammer', parsers + backends + misc_hammer_parts)
|
||||||
libhammer_static = env.StaticLibrary('hammer', parsers + backends + misc_hammer_parts)
|
libhammer_static = env.StaticLibrary('hammer', parsers + backends + misc_hammer_parts)
|
||||||
|
Default(libhammer_shared, libhammer_static)
|
||||||
|
|
||||||
env.Install("$libpath", [libhammer_static, libhammer_shared])
|
env.Install("$libpath", [libhammer_static, libhammer_shared])
|
||||||
env.Install("$incpath", dist_headers)
|
env.Install("$incpath", dist_headers)
|
||||||
|
|
@ -81,9 +81,12 @@ env.Install("$pkgconfigpath", "../../../libhammer.pc")
|
||||||
testenv = env.Clone()
|
testenv = env.Clone()
|
||||||
testenv.ParseConfig('pkg-config --cflags --libs glib-2.0')
|
testenv.ParseConfig('pkg-config --cflags --libs glib-2.0')
|
||||||
testenv.Append(LIBS=['hammer'], LIBPATH=['.'])
|
testenv.Append(LIBS=['hammer'], LIBPATH=['.'])
|
||||||
testenv.Program('test_suite', tests + ['test_suite.c'])
|
ctestexec = testenv.Program('test_suite', ctests + ['test_suite.c'])
|
||||||
|
ctest = Alias('testc', [ctestexec], "".join(["env LD_LIBRARY_PATH=", os.path.dirname(ctestexec[0].path), " ", ctestexec[0].path]))
|
||||||
|
AlwaysBuild(ctest)
|
||||||
|
testruns.append(ctest)
|
||||||
|
|
||||||
Export("libhammer_static libhammer_shared")
|
Export("libhammer_static libhammer_shared")
|
||||||
|
|
||||||
for b in bindings:
|
for b in env['bindings']:
|
||||||
env.SConscript(["bindings/%s/SConscript" % b])
|
env.SConscript(["bindings/%s/SConscript" % b])
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
# -*- python -*-
|
# -*- python -*-
|
||||||
import os.path
|
import os, os.path
|
||||||
Import('env libhammer_shared')
|
Import('env libhammer_shared testruns')
|
||||||
|
|
||||||
pythonenv = env.Clone(IMPLICIT_COMMAND_DEPENDENCIES = 0)
|
pythonenv = env.Clone(IMPLICIT_COMMAND_DEPENDENCIES = 0)
|
||||||
|
|
||||||
pythonenv.Append(CPPPATH = ['../../', '/usr/include/python2.7'])
|
pythonenv.Append(CPPPATH = ['../../'])
|
||||||
pythonenv.Append(CCFLAGS = ['-fpic', '-DSWIG', '-Wno-all', '-Wno-extra', '-Wno-error'])
|
pythonenv.Append(CCFLAGS = ['-fpic', '-DSWIG', '-Wno-all', '-Wno-extra', '-Wno-error'])
|
||||||
|
pythonenv.ParseConfig("pkg-config --cflags python")
|
||||||
pythonenv.Append(LIBS = ['hammer'])
|
pythonenv.Append(LIBS = ['hammer'])
|
||||||
pythonenv.Append(LIBPATH = ['../../'])
|
pythonenv.Append(LIBPATH = ['../../'])
|
||||||
pythonenv.Append(SWIGFLAGS = ['-DHAMMER_INTERNAL__NO_STDARG_H', '-Isrc/', '-python'])
|
pythonenv.Append(SWIGFLAGS = ['-DHAMMER_INTERNAL__NO_STDARG_H', '-Isrc/', '-python'])
|
||||||
|
|
@ -15,9 +16,13 @@ pythonenv.Command("hammer.i", "../swig/hammer.i", Copy("$TARGET", "$SOURCE"))
|
||||||
swig = ['hammer.i']
|
swig = ['hammer.i']
|
||||||
|
|
||||||
libhammer_python = pythonenv.SharedLibrary('hammer', swig, SHLIBPREFIX='_')
|
libhammer_python = pythonenv.SharedLibrary('hammer', swig, SHLIBPREFIX='_')
|
||||||
|
Default(libhammer_python)
|
||||||
|
|
||||||
pytestenv = pythonenv.Clone()
|
pytestenv = pythonenv.Clone()
|
||||||
pytestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
pytestenv['ENV']['LD_LIBRARY_PATH'] = os.path.dirname(str(libhammer_shared[0]))
|
||||||
pytestenv.Command(None, ['hammer_tests.py'] + libhammer_python, "nosetests -vv $SOURCE")
|
pytestexec = pytestenv.Command(None, ['hammer_tests.py'] + libhammer_python, "nosetests -vv $SOURCE")
|
||||||
|
pytest = Alias("testpython", [pytestexec], pytestexec)
|
||||||
|
AlwaysBuild(pytest)
|
||||||
|
testruns.append(pytest)
|
||||||
|
|
||||||
Clean('.', ['hammer.pyc', 'hammer_tests.py', 'hammer_tests.pyc'])
|
Clean('.', ['hammer.pyc', 'hammer_tests.py', 'hammer_tests.pyc'])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue