import testing ;

project
    : requirements 
    <library>../build//boost_program_options
    <link>static
    <variant>debug
    
#    <define>_GLIBCXX_CONCEPT_CHECKS
#    <define>_GLIBCXX_DEBUG
    ;
    
rule po-test ( source : input-file ? )
{
    return
        [ run $(source) : : $(input-file) ]
        [ run $(source) : : $(input-file) 
          : <link>shared <define>BOOST_PROGRAM_OPTIONS_DYN_LINK=1
          : $(source:B)_dll ] 
    ;   
}    

test-suite program_options :

    [ po-test options_description_test.cpp ] 
    [ po-test parsers_test.cpp : config_test.cfg ]
    [ po-test variable_map_test.cpp ]
    [ po-test cmdline_test.cpp ]
    [ po-test positional_options_test.cpp ]
    [ po-test unicode_test.cpp ] 
    [ po-test winmain.cpp ] 
    [ po-test exception_test.cpp ]
    [ po-test split_test.cpp ]
    [ po-test unrecognized_test.cpp ]
    [ po-test required_test.cpp : required_test.cfg ]
    [ po-test exception_txt_test.cpp ]
    [ po-test optional_test.cpp ]
    [ run options_description_test.cpp : : : <rtti>off : options_description_no_rtti_test ]
    ;
        
exe test_convert : test_convert.cpp ;   

# `quick` target (for CI)
run quick.cpp : --path=initial ;