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

from waflib import Utils

top = '..'

def build(bld):
    if not bld.env['WITH_TESTS']:
        return

    bld.objects(target='tests-base',
                source=bld.path.ant_glob('*.cpp'),
                use='repo-objects')

    bld.program(name='unit-tests',
                target='../unit-tests',
                source=bld.path.ant_glob('unit/**/*.cpp'),
                use='tests-base',
                install_path=None)

    bld.program(name='integrated-tests',
                target='../integrated-tests',
                source=bld.path.ant_glob('integrated/**/*.cpp'),
                use='tests-base',
                install_path=None)
