38f4ce9f25
refs #3658 Change-Id: Ia347074bea802eba5f539208e276e849a60db8a4
72 lines
2.5 KiB
Python
72 lines
2.5 KiB
Python
# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
|
|
|
|
from waflib import Utils, Context
|
|
|
|
top = '..'
|
|
|
|
TOOLS_DEPENDENCY = 'core-objects NDN_CXX BOOST LIBRESOLV'
|
|
|
|
def build(bld):
|
|
# single object tools
|
|
# tools/example-tool.cpp should a self-contained tool with a main function
|
|
# and it's built into build/bin/example-tool.
|
|
# These tools cannot be unit-tested.
|
|
for i in bld.path.ant_glob(['*.cpp']):
|
|
name = str(i)[:-len(".cpp")]
|
|
bld(features='cxx cxxprogram',
|
|
target="../bin/%s" % name,
|
|
source=[i],
|
|
use=TOOLS_DEPENDENCY
|
|
)
|
|
|
|
|
|
# sub-directory tools
|
|
# tools/example-tool/**/*.cpp is compiled and linked into build/bin/example-tool
|
|
# tools/example-tool/main.cpp must exist and it should contain the main function.
|
|
# All other objects are collected into 'tools-objects' and can be unit-tested.
|
|
testableObjects = []
|
|
for name in bld.path.ant_glob(['*'], dir=True, src=False):
|
|
mainFile = bld.path.find_node(['%s/main.cpp' % name])
|
|
if mainFile is None:
|
|
continue # not a C++ tool
|
|
srcFiles = bld.path.ant_glob(['%s/**/*.cpp' % name], excl=['%s/main.cpp' % name])
|
|
if len(srcFiles) > 0:
|
|
srcObjects = 'tools-%s-objects' % name
|
|
bld(features='cxx',
|
|
name=srcObjects,
|
|
source=srcFiles,
|
|
use=TOOLS_DEPENDENCY,
|
|
includes='%s' % name,
|
|
)
|
|
testableObjects.append(srcObjects)
|
|
|
|
bld(features='cxx cxxprogram',
|
|
target="../bin/%s" % name,
|
|
source=[mainFile],
|
|
use=TOOLS_DEPENDENCY + ' ' + srcObjects,
|
|
includes='%s' % name,
|
|
)
|
|
else:
|
|
bld(features='cxx cxxprogram',
|
|
target="../bin/%s" % name,
|
|
source=[mainFile],
|
|
use=TOOLS_DEPENDENCY,
|
|
includes='%s' % name,
|
|
)
|
|
|
|
bld(name='tools-objects',
|
|
export_includes='.',
|
|
use=testableObjects)
|
|
|
|
bld(features="subst",
|
|
source=bld.path.ant_glob(['*.sh', '*.py']),
|
|
target=['../bin/%s' % node.change_ext('')
|
|
for node in bld.path.ant_glob(['*.sh', '*.py'])],
|
|
install_path="${BINDIR}",
|
|
chmod=Utils.O755,
|
|
VERSION=Context.g_module.VERSION
|
|
)
|
|
|
|
bld.install_files("${DATAROOTDIR}/ndn",
|
|
bld.path.ant_glob('nfd-status-http-server-files/*'))
|