blob: a1f7a76a894a88a16830eb9043b17436d1f08a9b [file] [log] [blame]
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
from waflib import Build, Logs, Utils, Task, TaskGen, Configure
import os
def options(opt):
opt.load('compiler_cxx gnu_dirs')
opt.load('flags boost doxygen coverage', tooldir=['.waf-tools'])
nrdopt = opt.add_option_group('NRD Options')
nrdopt.add_option('--debug',action='store_true',default=False,dest='debug',help='''Compile library debugging mode without all optimizations (-O0)''')
nrdopt.add_option('--with-tests', action='store_true',default=False,dest='with_tests',help='''Build unit tests''')
def configure(conf):
conf.load("compiler_cxx gnu_dirs boost flags")
conf.check_cfg(package='libndn-cpp-dev', args=['--cflags', '--libs'], uselib_store='NDN_CPP', mandatory=True)
boost_libs='system'
if conf.options.with_tests:
conf.env['WITH_TESTS'] = 1
conf.define('WITH_TESTS', 1);
boost_libs+=' unit_test_framework'
conf.check_boost(lib=boost_libs)
if conf.env.BOOST_VERSION_NUMBER < 104800:
Logs.error ("Minimum required boost version is 1.48")
Logs.error ("Please upgrade your distribution or install custom boost libraries" +
" (http://redmine.named-data.net/projects/nfd/wiki/Boost_FAQ)")
return
# conf.load('coverage')
# try:
# conf.load('doxygen')
# except:
# pass
conf.write_config_header('src/config.hpp')
def build (bld):
bld(
features=['cxx'],
name="nrd-objects",
source = bld.path.ant_glob('src/*.cpp', excl='src/main.cpp'),
use = 'NDN_CPP BOOST',
)
bld.program(
target = 'nrd',
source = 'src/main.cpp',
use = 'nrd-objects'
)
# Unit tests
if bld.env['WITH_TESTS']:
unit_tests = unittests = bld.program(
target='unit-tests',
features = 'cxx cxxprogram',
source = bld.path.ant_glob(['tests/**/*.cpp']),
use = 'nrd-objects',
includes = ['.', 'src'],
install_prefix = None,
)