# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-

top = '..'

def build(bld):
    # core objects that can be shared between unit and integrated tests
    bld.objects(target='tests-base',
                features='pch',
                source=bld.path.ant_glob('*.cpp', excl=['main.cpp']),
                headers=['../ndn-cxx/common-pch.hpp', 'boost-test.hpp'],
                includes='.',
                export_includes='.',
                use='ndn-cxx BOOST')

    config_path = 'UNIT_TEST_CONFIG_PATH="%s"' % bld.bldnode.make_node('tmp-files')

    # unit test objects
    src = bld.path.ant_glob('unit-tests/**/*.cpp',
                            excl=['**/*-osx.t.cpp', '**/*-sqlite3.t.cpp'])
    if bld.env['HAVE_OSX_FRAMEWORKS']:
        src += bld.path.ant_glob('unit-tests/**/*-osx.t.cpp')

    # In case we want to make it optional later
    src += bld.path.ant_glob('unit-tests/**/*-sqlite3.t.cpp')

    bld.objects(target='unit-tests-objects',
                source=src,
                use='tests-base',
                defines=[config_path])

    # unit test app
    bld.program(target='../unit-tests',
                name='unit-tests',
                source='main.cpp',
                use='unit-tests-objects',
                install_path=None)

    bld.recurse('integrated')
