# Hamigaki Audio Library Test Jamfile

#  Copyright Takeshi Mouri 2006.
#  Use, modification, and distribution are subject to the
#  Boost Software License, Version 1.0. (See accompanying file
#  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

#  See http://hamigaki.sourceforge.jp/libs/audio for library home page.

# Original Copyright
# ============================================================================>
# Boost.Iostreams Library test Jamfile

# (C) Copyright Jonathan Turkanis 2004
# Distributed under the Boost Software License, Version 1.0. (See accompanying 
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt.)

# See http://www.boost.org/libs/iostreams for documentation.
# <============================================================================

subproject libs/audio/test ;

import testing ;

import ../build/asio ;
import ../build/dxsdk ;
import ../build/ogg ;
import ../build/vorbis ;
import ../build/vorbisfile ;
import ../build/vorbisenc ;

DEPENDS all : test ;

{

template audio
    : # sources
      <lib>../build/hamigaki_audio
    : # build requirements
      <define>BOOST_ALL_NO_LIB=1
      <include>$(HAMIGAKI_ROOT)  <sysinclude>$(HAMIGAKI_ROOT)
      <include>$(BOOST_INCLUDE)  <sysinclude>$(BOOST_INCLUDE)
      <library-path>$(BOOST_LIBPATH)
      <vc-8_0><*><cflags>-wd4996
      <vc-8_0><*><cflags>-wd4819
      <vc-8_0><*><linkflags>-INCREMENTAL:NO
      <vc-7_1><*><linkflags>-INCREMENTAL:NO
      <mingw><*><find-library>winmm
      <borland-5_8_2><*><cxxflags>-w-8092
    : # build variants
    ;

template ogg
    : # sources
      <lib>../build/hamigaki_ogg
    : # build requirements
    : # build variants
    ;

template vorbis
    : # sources
      <lib>../build/hamigaki_vorbis
    : # build requirements
    : # build variants
    ;

template vorbisfile
    : # sources
      <lib>../build/hamigaki_vorbisfile
    : # build requirements
    : # build variants
    ;

template vorbisenc
    : # sources
      <lib>../build/hamigaki_vorbisenc
    : # build requirements
    : # build variants
    ;

rule audio-test ( sources + : requirements * )
{
    return [
        run $(sources) <template>audio
        : # command
        : # input files
        : # build requirements
        find-boost-unit_test_framework-lib
        $(requirements)
    ] ;
}

rule intialize_suite {
    TEST_SUITE =
      [ audio-test aiff_file_test.cpp
        <lib>../../iostreams/build/hamigaki_iostreams ]
      [ audio-test pcm_sink_test.cpp ]
      [ audio-test pcm_source_test.cpp ]
      [ audio-test wave_file_test.cpp
        <lib>../../iostreams/build/hamigaki_iostreams ] ;

    if ! $(NO_ASIO)
    {
        TEST_SUITE +=
            [ audio-test asio_sink_test.cpp <template>asio ]
            [ audio-test asio_source_test.cpp <template>asio ] ;
    }

    if ! $(NO_DXSDK)
    {
        TEST_SUITE +=
            [ audio-test direct_sound_test.cpp <template>dxsdk ]
            [ audio-test ds_capture_test.cpp <template>dxsdk ]
            [ audio-test ds_enum_test.cpp <template>dxsdk
              : <test-info>always_show_run_output ] ;
    }

    if ! $(NO_VORBIS)
    {
        TEST_SUITE +=
            [ audio-test vorbis_file_test.cpp
              <template>vorbisenc
              <template>vorbisfile
              <template>vorbis
              <template>ogg
              <lib>../../iostreams/build/hamigaki_iostreams ] ;
    }
}

intialize_suite ;

test-suite "audio"
    : $(TEST_SUITE)
    ;

}
