build: pass pkg_config_path to check_cfg() when looking for libndn-cxx

Instead of modifying os.environ.

This commit also updates some waf tools and fixes the value of
includedir in the generated .pc file.

Refs: #5042
Change-Id: Idf0481f36664cc085571265747a004655001c0ed
diff --git a/wscript b/wscript
index 77da859..c860fc8 100644
--- a/wscript
+++ b/wscript
@@ -1,50 +1,54 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
+from waflib import Context, Logs, Utils
+import os, subprocess
+
 VERSION = '0.5.2'
 APPNAME = 'ChronoSync'
 GIT_TAG_PREFIX = ''
 
-from waflib import Logs, Utils, Context
-import os, subprocess
-
 def options(opt):
     opt.load(['compiler_c', 'compiler_cxx', 'gnu_dirs'])
     opt.load(['default-compiler-flags', 'boost', 'doxygen', 'sphinx_build',
               'coverage', 'sanitizers'],
              tooldir=['.waf-tools'])
 
-    opt.add_option('--with-tests', action='store_true', default=False,
-                   help='Build unit tests')
+    optgrp = opt.add_option_group('ChronoSync Options')
+    optgrp.add_option('--with-tests', action='store_true', default=False,
+                      help='Build unit tests')
 
 def configure(conf):
     conf.load(['compiler_c', 'compiler_cxx', 'gnu_dirs',
-               'default-compiler-flags', 'boost', 'coverage',
+               'default-compiler-flags', 'boost',
                'doxygen', 'sphinx_build'])
 
-    if 'PKG_CONFIG_PATH' not in os.environ:
-        os.environ['PKG_CONFIG_PATH'] = Utils.subst_vars('${LIBDIR}/pkgconfig', conf.env)
-    conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'],
-                   uselib_store='NDN_CXX', mandatory=True)
+    conf.env.WITH_TESTS = conf.options.with_tests
 
-    boost_libs = 'system iostreams thread log log_setup'
-    if conf.options.with_tests:
-        conf.env['CHRONOSYNC_HAVE_TESTS'] = True
-        conf.define('CHRONOSYNC_HAVE_TESTS', 1)
-        boost_libs += ' unit_test_framework'
+    conf.check_cfg(package='libndn-cxx', args=['--cflags', '--libs'], uselib_store='NDN_CXX',
+                   pkg_config_path=os.environ.get('PKG_CONFIG_PATH', '%s/pkgconfig' % conf.env.LIBDIR))
+
+    boost_libs = ['system', 'iostreams']
+    if conf.env.WITH_TESTS:
+        boost_libs.append('unit_test_framework')
+
     conf.check_boost(lib=boost_libs, mt=True)
 
     conf.check_compiler_flags()
 
     # Loading "late" to prevent tests from being compiled with profiling flags
     conf.load('coverage')
-
     conf.load('sanitizers')
 
     # If there happens to be a static library, waf will put the corresponding -L flags
     # before dynamic library flags.  This can result in compilation failure when the
     # system has a different version of the ChronoSync library installed.
-    conf.env['STLIBPATH'] = ['.'] + conf.env['STLIBPATH']
+    conf.env.prepend_value('STLIBPATH', ['.'])
 
+    conf.define_cond('CHRONOSYNC_HAVE_TESTS', conf.env.WITH_TESTS)
+    # The config header will contain all defines that were added using conf.define()
+    # or conf.define_cond().  Everything that was added directly to conf.env.DEFINES
+    # will not appear in the config header, but will instead be passed directly to the
+    # compiler on the command line.
     conf.write_config_header('config.hpp')
 
 def build(bld):
@@ -56,28 +60,26 @@
               includes='src .',
               export_includes='src .')
 
-    if bld.env['CHRONOSYNC_HAVE_TESTS']:
+    if bld.env.WITH_TESTS:
         bld.recurse('tests')
 
     bld.install_files(
-        dest = '%s/ChronoSync' % bld.env['INCLUDEDIR'],
+        dest = '%s/ChronoSync' % bld.env.INCLUDEDIR,
         files = bld.path.ant_glob(['src/*.hpp', 'common.hpp']),
         cwd = bld.path.find_dir('src'),
         relative_trick = False)
 
     bld.install_files(
-        dest = '%s/ChronoSync' % bld.env['INCLUDEDIR'],
+        dest = '%s/ChronoSync' % bld.env.INCLUDEDIR,
         files = bld.path.get_bld().ant_glob(['src/*.hpp', 'common.hpp', 'config.hpp']),
         cwd = bld.path.get_bld().find_dir('src'),
         relative_trick = False)
 
-    bld(features = 'subst',
+    bld(features='subst',
         source='ChronoSync.pc.in',
         target='ChronoSync.pc',
-        install_path = '${LIBDIR}/pkgconfig',
-        PREFIX       = bld.env['PREFIX'],
-        INCLUDEDIR   = "%s/ChronoSync" % bld.env['INCLUDEDIR'],
-        VERSION      = VERSION)
+        install_path='${LIBDIR}/pkgconfig',
+        VERSION=VERSION)
 
 def docs(bld):
     from waflib import Options
@@ -115,7 +117,8 @@
         config='docs/conf.py',
         outdir='docs',
         source=bld.path.ant_glob('docs/**/*.rst'),
-        VERSION=VERSION)
+        version=VERSION_BASE,
+        release=VERSION)
 
 def version(ctx):
     # don't execute more than once