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

top = '..'

def build(bld):
    # List all .cpp files (whole example in one .cpp)
    for ex in bld.path.ant_glob('*.cpp'):
        name = ex.change_ext('').path_from(bld.path.get_bld())
        bld.program(name='example-%s' % name,
                    target='nac-%s' % name,
                    source=[ex],
                    use='libndn-nac',
                    install_path=None)

    # List all directories (example can have multiple .cpp in the directory)
    for subdir in bld.path.ant_glob('*', dir=True, src=False):
        name = subdir.path_from(bld.path)
        bld.program(name='example-%s' % name,
                    target=name,
                    source=subdir.ant_glob('**/*.cpp'),
                    use='libndn-nac',
                    includes=name,
                    install_path=None)
