build: Support tools with multiple translation units
Change-Id: I95c7ec4c0923e59b2652c6bba4ed2c0f00aa71da
Refs: #2344
diff --git a/tools/wscript b/tools/wscript
new file mode 100644
index 0000000..1f99ef6
--- /dev/null
+++ b/tools/wscript
@@ -0,0 +1,38 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+
+from waflib import Utils, Context
+
+top = '..'
+
+def build(bld):
+ # List all .cpp files (whole tool should be in one .cpp)
+ for i in bld.path.ant_glob(['*.cpp']):
+ name = str(i)[:-len(".cpp")]
+ bld(features=['cxx', 'cxxprogram'],
+ target="../bin/%s" % name,
+ source=[i] + bld.path.ant_glob(['%s/**/*.cpp' % name]),
+ use='ndn-cxx core-objects LIBRESOLV BOOST'
+ )
+
+ # List all directories files (tool can has multiple .cpp in the directory)
+ for name in bld.path.ant_glob(['*'], dir=True, src=False):
+ srcFiles = bld.path.ant_glob(['%s/**/*.cpp' % name])
+ if len(srcFiles) > 0:
+ bld(features=['cxx', 'cxxprogram'],
+ target="../bin/%s" % name,
+ source=srcFiles,
+ use='ndn-cxx core-objects LIBRESOLV BOOST',
+ includes='%s' % name,
+ )
+
+ 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/*'))