X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=site_scons%2Fsenfutil.py;h=38c82b6409c3cc3d50c24b14f4f0c47b994054e8;hb=0fb5ed1adf2f67dbf47fdfed3f3c8be989cf3618;hp=546846363b91f8fb4c7bc712ba048d7bb85d7cc5;hpb=3bd04877a6233d5f95c0b790e8ee4eab24317f55;p=senf.git diff --git a/site_scons/senfutil.py b/site_scons/senfutil.py index 5468463..38c82b6 100644 --- a/site_scons/senfutil.py +++ b/site_scons/senfutil.py @@ -1,5 +1,6 @@ import os.path, glob, site_tools.Yaptu from SCons.Script import * +import senfconf senfutildir = os.path.dirname(__file__) @@ -66,7 +67,8 @@ Special command line parameters: # This looks much more complicated than it is: We do three things here: # a) switch between final or debug options # b) parse the LOGLEVELS parameter into the correct SENF_LOG_CONF syntax -# c) check for a local SENF, set options accordingly and update that SENF if needed +# c) check for a local SENF, set options accordingly +# d) check, wether the boost extensions are needed def SetupForSENF(env, senf_path = []): global senfutildir @@ -75,13 +77,7 @@ def SetupForSENF(env, senf_path = []): loadTools(env) env.Append( - LIBS = [ 'senf', 'rt', '$BOOSTREGEXLIB', - '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', - '$BOOSTFSLIB' ], - BOOSTREGEXLIB = 'boost_regex', - BOOSTIOSTREAMSLIB = 'boost_iostreams', - BOOSTSIGNALSLIB = 'boost_signals', - BOOSTFSLIB = 'boost_filesystem', + LIBS = [ 'rt' ], CXXFLAGS = [ '-Wno-long-long', '$CXXFLAGS_' ], CXXFLAGS_ = BuildTypeOptions('CXXFLAGS'), @@ -160,6 +156,15 @@ def SetupForSENF(env, senf_path = []): if not env.GetOption('no_progress'): print "\nSENF library not found .. trying build anyway !!\n" + Configure(env) + + # Only add senf after all configure checks have run + env.Append( + CPPPATH = '${NEED_BOOST_EXT and "$SENFDIR/boost_ext" or None}', + LIBS = [ 'senf', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB', '$BOOSTSIGNALSLIB', + '$BOOSTFSLIB' ], + ) + env.Alias('all', '#') @@ -174,6 +179,7 @@ def DefaultOptions(env): LINKFLAGS_debug = [ '-g' ], ) + def Glob(env, exclude=[], subdirs=[]): testSources = env.Glob("*.test.cc", strings=True) sources = [ x @@ -188,6 +194,17 @@ def Glob(env, exclude=[], subdirs=[]): testSources.sort() return (sources, testSources) + +def Configure(env): + conf = env.Configure(clean=False, help=False, custom_tests = senfconf.Tests()) + env.Replace( + BOOST_VERSION = conf.CheckBoostVersion(), + BOOST_VARIANT = conf.CheckBoostVariants( '', 'mt' ), + NEED_BOOST_EXT = not conf.CheckCXXHeader("boost/bimap.hpp"), + ) + conf.Finish() + + tagfiles = None def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=False, senfdoc_path=[], @@ -262,7 +279,8 @@ def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=Fals 'tagfiles' : '$TAGFILES', 'output_dir' : 'doc', 'html_dir' : 'html', - 'html' : 'YES' }, + 'html' : 'YES', + 'DOXYGEN' : '$DOXYGEN' }, TAGFILES = tagfiles, DOCLIBDIR = libdir, DOXYGENCOM = "$DOCLIBDIR/doxygen.sh $DOXYOPTS $SOURCE")