build: Update of waf and waf-tools (fixing boost detection on some platforms)
Change-Id: I35ec6db068ee5f309a5af6f2e2e0b9b43430969f
diff --git a/wscript b/wscript
index 9e1f2b3..1cfebef 100644
--- a/wscript
+++ b/wscript
@@ -6,61 +6,49 @@
from waflib import Configure, Build, Logs
def options(opt):
- opt.load('compiler_c compiler_cxx boost doxygen gnu_dirs protoc')
- # opt.load('ndnx', tooldir=["waf-tools"])
+ opt.load('compiler_c compiler_cxx gnu_dirs')
+ opt.load('boost doxygen sphinx_build protoc default-compiler-flags pch',
+ tooldir='.waf-tools')
syncopt = opt.add_option_group ("ChronoSync Options")
- syncopt.add_option('--debug',action='store_true',default=False,dest='debug',help='''debugging mode''')
- syncopt.add_option('--with-log4cxx', action='store_true',default=False,dest='log4cxx',help='''Compile with log4cxx''')
- syncopt.add_option('--with-tests', action='store_true',default=False,dest='_test',help='''build unit tests''')
+ syncopt.add_option('--debug',action='store_true', default=False, dest='debug',
+ help='''debugging mode''')
+ syncopt.add_option('--with-log4cxx', action='store_true', default=False, dest='log4cxx',
+ help='''Compile with log4cxx''')
+ syncopt.add_option('--with-tests', action='store_true', default=False, dest='_test',
+ help='''build unit tests''')
def configure(conf):
- conf.load('compiler_c compiler_cxx gnu_dirs boost')
+ conf.load('compiler_c compiler_cxx gnu_dirs boost default-compiler-flags pch')
+ conf.load('doxygen sphinx_build')
+ conf.load('protoc')
- if conf.options.debug:
- conf.define ('_DEBUG', 1)
- conf.add_supported_cxxflags (cxxflags = ['-O0',
- '-Wall',
- '-Wno-unused-variable',
- '-g3',
- '-Wno-unused-private-field', # only clang supports
- '-fcolor-diagnostics', # only clang supports
- '-Qunused-arguments' # only clang supports
- ])
- else:
- conf.add_supported_cxxflags (cxxflags = ['-O3', '-g'])
-
- conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'], uselib_store='NDNCXX', mandatory=True)
+ conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'], uselib_store='NDNCXX',
+ mandatory=True)
conf.check_boost(lib='system iostreams thread unit_test_framework')
if conf.options.log4cxx:
- conf.check_cfg(package='liblog4cxx', args=['--cflags', '--libs'], uselib_store='LOG4CXX', mandatory=True)
+ conf.check_cfg(package='liblog4cxx', args=['--cflags', '--libs'], uselib_store='LOG4CXX',
+ mandatory=True)
if conf.options._test:
conf.define('_TEST', 1)
- try:
- conf.load('doxygen')
- except:
- pass
-
- conf.load('protoc')
-
-def build (bld):
- libsync = bld (
+def build(bld):
+ libsync = bld(
target="ChronoSync",
# vnum = "1.0.0",
features=['cxx', 'cxxshlib'],
- source = bld.path.ant_glob (['src/**/*.cc', 'src/**/*.proto']),
+ source = bld.path.ant_glob(['src/**/*.cc', 'src/**/*.proto']),
use = 'BOOST NDNCXX',
includes = ['src'],
)
# Unit tests
if bld.get_define("_TEST"):
- unittests = bld.program (
+ unittests = bld.program(
target="unit-tests",
source = bld.path.ant_glob(['tests/**/*.cc']),
features=['cxx', 'cxxprogram'],
@@ -69,26 +57,26 @@
install_path = None,
)
- if bld.get_define ("HAVE_LOG4CXX"):
+ if bld.get_define("HAVE_LOG4CXX"):
libsync.use += ' LOG4CXX'
if bld.get_define("_TEST"):
unittests.use += ' LOG4CXX'
- bld.install_files (
+ bld.install_files(
dest = "%s/ChronoSync" % bld.env['INCLUDEDIR'],
files = bld.path.ant_glob(['src/**/*.h']),
- cwd = bld.path.find_dir ("src"),
+ cwd = bld.path.find_dir("src"),
relative_trick = True,
)
- bld.install_files (
+ bld.install_files(
dest = "%s/ChronoSync" % bld.env['INCLUDEDIR'],
files = bld.path.get_bld().ant_glob(['src/**/*.h']),
- cwd = bld.path.get_bld().find_dir ("src"),
+ cwd = bld.path.get_bld().find_dir("src"),
relative_trick = True,
)
- pc = bld (
+ pc = bld(
features = "subst",
source='ChronoSync.pc.in',
target='ChronoSync.pc',
@@ -98,30 +86,9 @@
VERSION = VERSION,
)
-# doxygen docs
-from waflib.Build import BuildContext
-class doxy (BuildContext):
- cmd = "doxygen"
- fun = "doxygen"
-
-def doxygen (bld):
+def doxygen(bld):
if not bld.env.DOXYGEN:
- bld.fatal ("ERROR: cannot build documentation (`doxygen' is not found in $PATH)")
- bld (features="doxygen",
+ bld.fatal("ERROR: cannot build documentation(`doxygen' is not found in $PATH)")
+ bld(features="doxygen",
doxyfile='doc/doxygen.conf',
output_dir = 'doc')
-
-@Configure.conf
-def add_supported_cxxflags(self, cxxflags):
- """
- Check which cxxflags are supported by compiler and add them to env.CXXFLAGS variable
- """
- self.start_msg('Checking allowed flags for c++ compiler')
-
- supportedFlags = []
- for flag in cxxflags:
- if self.check_cxx (cxxflags=[flag], mandatory=False):
- supportedFlags += [flag]
-
- self.end_msg (' '.join (supportedFlags))
- self.env.CXXFLAGS += supportedFlags