# test/Jamfile.v2 controls building of MSM Library unit tests
#
# Copyright (c) 2010 Christophe Henry
#
# Use, modification and distribution is 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)

# bring in rules for testing
import testing ;
import os ;
import ../../config/checks/config : requires ;

project msm
    :
    requirements
        <include>.
       <toolset>gcc:<cxxflags>"-ftemplate-depth-300 -g0"
       <toolset>darwin:<cxxflags>"-ftemplate-depth-300 -g0"
       <toolset>intel:<cxxflags>"-g0"
       <toolset>gcc:<optimization>off
       <toolset>darwin:<optimization>off
       <toolset>intel:<optimization>off
       <library>/boost/test//boost_unit_test_framework/<link>static
       <library>/boost/serialization//boost_serialization/<link>static
    ;

test-suite msm-unit-tests
    :
    [ run Anonymous.cpp ]
    [ run AnonymousEuml.cpp ]
    [ run CompositeEuml.cpp ]
    [ run CompositeMachine.cpp ]
    [ run Constructor.cpp ]
    [ run Entries.cpp ]
    [ run History.cpp ]
    [ run OrthogonalDeferred.cpp ]
    [ run OrthogonalDeferred2.cpp ]
    [ run OrthogonalDeferred3.cpp ]
    [ run OrthogonalDeferredEuml.cpp ]
    [ run SimpleEuml.cpp ]
    [ run SimpleEuml2.cpp ]
    [ run SimpleInternal.cpp ]
    [ run SimpleInternalEuml.cpp ]
    [ run SimpleInternalFunctors.cpp ]
    [ run SimpleMachine.cpp ]
    [ run KleeneDeferred.cpp ]
    [ run SimpleWithFunctors.cpp ]
    [ run Serialize.cpp ]
    [ run SerializeWithHistory.cpp ]
    [ run SerializeSimpleEuml.cpp ]
    [ run TestConstructor.cpp ]
    [ run ManyDeferTransitions.cpp ]
    [ run Back11AnonymousAndGuard.cpp ]
    [ run Back11Throwing.cpp ]
    [ run Back11KleeneDeferred.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11Anonymous.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11BigWithFunctors.cpp  : :
        : [ requires cxx11_variadic_templates ] ]    
    [ run Back11CompositeMachine.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11Entries.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11OrthogonalDeferred3.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11SimpleInternalEuml.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11SimpleInternalFunctors.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11SimpleMachine.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11SimpleWithFunctors.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11TestDeferIn2Regions.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11ManyDeferTransitions.cpp  : :
        : [ requires cxx11_variadic_templates ] ]
    [ run Back11SimpleWithPuml.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    [ run Back11OnlyStringPuml.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    [ run Back11SimpleInternalWithPuml.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    [ run Back11OrthogonalDeferred3WithPuml.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    [ run puml_syntax.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    [ run puml_syntax_2.cpp  : :
        : [ requires cxx20_hdr_version cxx20_hdr_barrier cxx20_hdr_compare cxx20_hdr_format cxx20_hdr_ranges cxx20_hdr_numbers  ] ]
    ;