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

"""
 Copyright (c) 2013-2015,  Regents of the University of California,
                    2015,  Colorado State University.

 This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).

 ndn-cxx library is free software: you can redistribute it and/or modify it under the
 terms of the GNU Lesser General Public License as published by the Free Software
 Foundation, either version 3 of the License, or (at your option) any later version.

 ndn-cxx library is distributed in the hope that it will be useful, but WITHOUT ANY
 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.

 You should have received copies of the GNU General Public License and GNU Lesser
 General Public License along with ndn-cxx, e.g., in COPYING.md file.  If not, see
 <http://www.gnu.org/licenses/>.

 See AUTHORS.md for complete list of ndn-cxx authors and contributors.
"""

top = '..'

def build(bld):
    # unit test objects
    unit_tests_objects = bld(
        target='unit-test-objects',
        name='unit-test-objects',
        features="cxx",
        source=bld.path.ant_glob(['unit-tests/**/*.cpp']),
        use='NDN_CXX BOOST ndn_atmos_objects',
        includes='.',
        install_path=None)

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

