summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxantares <xantares09@hotmail.com>2014-04-18 14:29:32 +0200
committerxantares <xantares09@hotmail.com>2014-04-18 14:29:32 +0200
commitc73da00ba165469ede5525cf08f9ff6b88fdf30b (patch)
tree483c9f8320cf16ed2355aba29c0cb08857bbada0
parent043ad420b224d3cfe2eb6a665bf8914695fb3691 (diff)
downloadswig-c73da00ba165469ede5525cf08f9ff6b88fdf30b.tar.gz
Runable python and ruby tests.
-rw-r--r--Examples/test-suite/CMakeLists.txt926
1 files changed, 474 insertions, 452 deletions
diff --git a/Examples/test-suite/CMakeLists.txt b/Examples/test-suite/CMakeLists.txt
index aacd4aae1..aa43f5382 100644
--- a/Examples/test-suite/CMakeLists.txt
+++ b/Examples/test-suite/CMakeLists.txt
@@ -1,41 +1,500 @@
set ( SWIG_EXECUTABLE ${CMAKE_BINARY_DIR}/swig )
-set( LANGUAGES )
+set ( CPP_TEST_CASES
+ abstract_access
+ abstract_inherit
+ abstract_inherit_ok
+ abstract_signature
+ abstract_typedef
+ abstract_typedef2
+ abstract_virtual
+ access_change
+ add_link
+ aggregate
+ allowexcept
+ allprotected
+ allprotected_not
+ anonymous_bitfield
+ apply_signed_char
+ apply_strings
+ argout
+ array_member
+ array_typedef_memberin
+ arrayref
+ arrays_dimensionless
+ arrays_global
+ arrays_global_twodim
+ arrays_scope
+ autodoc
+ bloody_hell
+ bools
+ catches
+ cast_operator
+ casts
+ char_binary
+ char_strings
+ class_forward
+ class_ignore
+ class_scope_weird
+ compactdefaultargs
+ const_const_2
+ constant_pointers
+ constover
+ constructor_copy
+ constructor_exception
+ constructor_explicit
+ constructor_ignore
+ constructor_rename
+ constructor_value
+ contract
+ conversion
+ conversion_namespace
+ conversion_ns_template
+ cplusplus_throw
+ cpp_basic
+ cpp_enum
+ cpp_namespace
+ cpp_nodefault
+ cpp_static
+ cpp_typedef
+ curiously_recurring_template_pattern
+ default_args
+ default_arg_values
+ default_constructor
+ defvalue_constructor
+ derived_byvalue
+ derived_nested
+ destructor_reprotected
+ director_abstract
+ director_alternating
+ director_basic
+ director_binary_string
+ director_classes
+ director_classic
+ director_constructor
+ director_default
+ director_detect
+ director_enum
+ director_exception
+ director_extend
+ director_finalizer
+ director_frob
+ director_ignore
+ director_keywords
+ director_namespace_clash
+ director_nspace
+ director_nspace_director_name_collision
+ director_nested
+ director_overload
+ director_overload2
+ director_primitives
+ director_protected
+ director_protected_overloaded
+ director_redefined
+ director_smartptr
+ director_thread
+ director_unroll
+ director_using
+ director_wombat
+ disown
+ dynamic_cast
+ empty
+ enum_plus
+ enum_rename
+ enum_scope_template
+ enum_template
+ enum_thorough
+ enum_var
+ evil_diamond
+ evil_diamond_ns
+ evil_diamond_prop
+ exception_order
+ extend
+ extend_constructor_destructor
+ extend_default
+ extend_placement
+ extend_special_variables
+ extend_template
+ extend_template_ns
+ extend_typedef_class
+ extern_c
+ extern_namespace
+ extern_throws
+ expressions
+ features
+ fragments
+ friends
+ funcptr_cpp
+ fvirtual
+ global_namespace
+ global_ns_arg
+ global_scope_types
+ global_vars
+ grouping
+ ignore_parameter
+ import_nomodule
+ inherit
+ inherit_missing
+ inherit_same_name
+ inherit_target_language
+ inherit_void_arg
+ inline_initializer
+ insert_directive
+ keyword_rename
+ kind
+ langobj
+ li_attribute
+ li_attribute_template
+ li_boost_shared_ptr
+ li_boost_shared_ptr_bits
+ li_boost_shared_ptr_template
+ li_boost_shared_ptr_attribute
+ li_carrays
+ li_cdata
+ li_cpointer
+ li_std_auto_ptr
+ li_stdint
+ li_swigtype_inout
+ li_typemaps
+ li_typemaps_apply
+ li_windows
+ long_long_apply
+ memberin_extend
+ member_funcptr_galore
+ member_pointer
+ member_template
+ minherit
+ minherit2
+ mixed_types
+ multiple_inheritance
+ name_cxx
+ name_warnings
+ namespace_class
+ namespace_enum
+ namespace_extend
+ namespace_forward_declaration
+ namespace_nested
+ namespace_spaces
+ namespace_template
+ namespace_typedef_class
+ namespace_typemap
+ namespace_union
+ namespace_virtual_method
+ nspace
+ nspace_extend
+ naturalvar
+ naturalvar_more
+ naturalvar_onoff
+ nested_class
+ nested_directors
+ nested_comment
+ nested_scope
+ nested_workaround
+ newobject1
+ null_pointer
+ operator_overload
+ operator_overload_break
+ operator_pointer_ref
+ operbool
+ ordering
+ overload_bool
+ overload_copy
+ overload_extend
+ overload_method
+ overload_numeric
+ overload_rename
+ overload_return_type
+ overload_simple
+ overload_subtype
+ overload_template
+ overload_template_fast
+ pointer_reference
+ preproc_constants
+ primitive_ref
+ private_assign
+ protected_rename
+ pure_virtual
+ redefined
+ redefined_not
+ refcount
+ reference_global_vars
+ register_par
+ rename1
+ rename2
+ rename3
+ rename4
+ rename_scope
+ rename_simple
+ rename_strip_encoder
+ rename_pcre_encoder
+ rename_pcre_enum
+ rename_predicates
+ restrict_cplusplus
+ return_const_value
+ return_value_scope
+ rname
+ samename
+ sizet
+ smart_pointer_const
+ smart_pointer_const2
+ smart_pointer_const_overload
+ smart_pointer_extend
+ smart_pointer_member
+ smart_pointer_multi
+ smart_pointer_multi_typedef
+ smart_pointer_namespace
+ smart_pointer_namespace2
+ smart_pointer_not
+ smart_pointer_overload
+ smart_pointer_protected
+ smart_pointer_rename
+ smart_pointer_simple
+ smart_pointer_static
+ smart_pointer_template_const_overload
+ smart_pointer_template_defaults_overload
+ smart_pointer_templatemethods
+ smart_pointer_templatevariables
+ smart_pointer_typedef
+ special_variables
+ special_variable_macros
+ static_array_member
+ static_const_member
+ static_const_member_2
+ struct_initialization_cpp
+ struct_value
+ symbol_clash
+ template_arg_replace
+ template_arg_scope
+ template_arg_typename
+ template_array_numeric
+ template_basic
+ template_base_template
+ template_classes
+ template_const_ref
+ template_construct
+ template_default
+ template_default2
+ template_default_arg
+ template_default_arg_virtual_destructor
+ template_default_class_parms
+ template_default_class_parms_typedef
+ template_default_inherit
+ template_default_qualify
+ template_default_vw
+ template_enum
+ template_enum_ns_inherit
+ template_enum_typedef
+ template_explicit
+ template_extend1
+ template_extend2
+ template_extend_overload
+ template_extend_overload_2
+ template_forward
+ template_inherit
+ template_inherit_abstract
+ template_int_const
+ template_methods
+ template_namespace_forward_declaration
+ template_using_directive_and_declaration_forward
+ template_nested
+ template_nested_typemaps
+ template_ns
+ template_ns2
+ template_ns3
+ template_ns4
+ template_ns_enum
+ template_ns_enum2
+ template_ns_inherit
+ template_ns_scope
+ template_partial_arg
+ template_partial_specialization
+ template_partial_specialization_typedef
+ template_qualifier
+ template_ref_type
+ template_rename
+ template_retvalue
+ template_specialization
+ template_specialization_defarg
+ template_specialization_enum
+ template_static
+ template_tbase_template
+ template_template_parameters
+ template_typedef
+ template_typedef_class_template
+ template_typedef_cplx
+ template_typedef_cplx2
+ template_typedef_cplx3
+ template_typedef_cplx4
+ template_typedef_cplx5
+ template_typedef_funcptr
+ template_typedef_inherit
+ template_typedef_ns
+ template_typedef_ptr
+ template_typedef_rec
+ template_typedef_typedef
+ template_typemaps
+ template_typemaps_typedef
+ template_typemaps_typedef2
+ template_using
+ template_virtual
+ template_whitespace
+ threads
+ threads_exception
+ throw_exception
+ typedef_array_member
+ typedef_class
+ typedef_funcptr
+ typedef_inherit
+ typedef_mptr
+ typedef_reference
+ typedef_scope
+ typedef_sizet
+ typedef_struct
+ typedef_typedef
+ typemap_arrays
+ typemap_array_qualifiers
+ typemap_delete
+ typemap_directorout
+ typemap_global_scope
+ typemap_manyargs
+ typemap_namespace
+ typemap_ns_using
+ typemap_numinputs
+ typemap_template
+ typemap_template_parm_typedef
+ typemap_out_optimal
+ typemap_qualifier_strip
+ typemap_variables
+ typemap_various
+ typename
+ types_directive
+ union_scope
+ using1
+ using2
+ using_composition
+ using_directive_and_declaration
+ using_directive_and_declaration_forward
+ using_extend
+ using_inherit
+ using_namespace
+ using_namespace_loop
+ using_pointers
+ using_private
+ using_protected
+ valuewrapper
+ valuewrapper_base
+ valuewrapper_const
+ valuewrapper_opaque
+ varargs
+ varargs_overload
+ virtual_destructor
+ virtual_poly
+ virtual_vs_nonvirtual_base
+ voidtest
+ wallkw
+ wrapmacro)
+
+
+set ( LANGUAGES )
+
+macro(add_test_language language extension interpreter)
+ list ( APPEND LANGUAGES ${language} ${interpreter} )
+ set (${language}_ext ${extension})
+ set (${language}_interpreter ${interpreter})
+ add_subdirectory ( ${language} )
+endmacro()
-option ( USE_PYTHON "use python for tests" ON )
+include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} )
+
+macro ( swig_and_compile testname language )
+ set (SWIG_CXX_FLAG)
+ set ( SWIG_CXX_EXTENSION ".c")
+ if (1)
+ set (SWIG_CXX_FLAG "-c++")
+ set(SWIG_CXX_EXTENSION ".cxx")
+ endif ()
+ set (SWIG_OUTPUT ${testname}${language}_wrap${SWIG_CXX_EXTENSION} )
+ add_custom_command(OUTPUT ${SWIG_OUTPUT}
+ COMMAND ${SWIG_EXECUTABLE} -${language} ${SWIG_CXX_FLAG}
+ -I${CMAKE_SOURCE_DIR}/Lib/${language} -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/Lib
+ -o ${SWIG_OUTPUT}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../${testname}.i
+ )
+ set(name ${testname}_${language})
+
+ set(SWIG_MODULE_${name}_REAL_NAME ${testname}_${language})
+
+ add_library(${SWIG_MODULE_${name}_REAL_NAME} MODULE EXCLUDE_FROM_ALL ${SWIG_OUTPUT} )
+
+ set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES LIBRARY_OUTPUT_NAME ${testname})
+ if (${language} STREQUAL python)
+ set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES LIBRARY_OUTPUT_NAME _${testname})
+ set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
+ if(WIN32 AND NOT CYGWIN)
+ set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES SUFFIX ".pyd")
+ endif()
+ elseif(${language} STREQUAL ruby)
+ set_target_properties(${SWIG_MODULE_${name}_REAL_NAME} PROPERTIES PREFIX "")
+ endif ()
+
+ add_dependencies(check-${language}-test-suite ${SWIG_MODULE_${name}_REAL_NAME})
+
+ set ( testfile ${CMAKE_CURRENT_SOURCE_DIR}/${testname}_runme${${language}_ext} )
+ if ( EXISTS ${testfile} )
+ add_test(${name} "${${language}_interpreter}" ${testfile})
+ if ( DEFINED ${language}_test_environment )
+ set_tests_properties ( ${name} PROPERTIES ENVIRONMENT "${${language}_test_environment}" )
+ endif ()
+ endif ()
+endmacro()
+
+add_custom_target ( check-test-suite )
+# foreach( language ${LANGUAGES} )
+# file ( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${language} )
+# add_custom_target ( check-${language}-test-suite )
+# foreach( CPP_TEST_CASE ${CPP_TEST_CASES} )
+# swig_and_compile ( ${CPP_TEST_CASE} ${language} )
+# endforeach()
+# add_dependencies(check-test-suite check-${language}-test-suite)
+# endforeach()
+
+
+macro(add_tests language)
+ add_custom_target ( check-${language}-test-suite )
+ foreach( CPP_TEST_CASE ${CPP_TEST_CASES} )
+ swig_and_compile ( ${CPP_TEST_CASE} ${language} )
+ endforeach()
+ add_dependencies(check-test-suite check-${language}-test-suite)
+endmacro()
+
+option ( USE_PYTHON "python" ON )
if ( USE_PYTHON )
find_package ( PythonInterp )
find_package ( PythonLibs )
endif ()
if ( PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
- list( APPEND LANGUAGES python )
- set (python_ext ".py")
- set(python_interpreter ${PYTHON_EXECUTABLE})
- set ( python_test_environment "PYTHONPATH=${CMAKE_CURRENT_BINARY_DIR}" )
- include_directories ( ${PYTHON_INCLUDE_DIR} )
+ add_test_language ( python ".py" ${PYTHON_EXECUTABLE} )
endif ()
-option (USE_JAVA "java" ON)
+option ( USE_JAVA "java" OFF )
if(USE_JAVA)
find_package(JNI)
endif ()
if (JNI_FOUND)
list( APPEND LANGUAGES java )
- set (java_ext ".java")
+ set ( java_ext ".java" )
include_directories ( ${JNI_INCLUDE_DIRS} )
endif ()
-option (USE_RUBY "ruby" ON)
+option ( USE_RUBY "ruby" ON )
if(USE_RUBY)
find_package(Ruby)
endif ()
if (RUBY_FOUND)
- list( APPEND LANGUAGES ruby )
- set (ruby_ext ".rb")
- include_directories ( ${RUBY_INCLUDE_DIRS} )
+ add_test_language ( ruby ".rb" ${RUBY_EXECUTABLE} )
endif ()
option (USE_OCTAVE "octave" OFF)
@@ -60,447 +519,10 @@ if (OCTAVE_FOUND)
list( APPEND LANGUAGES octave )
endif ()
-option (USE_MONO "mono" OFF)
-if(USE_MONO)
+option (USE_CSHARP "csharp" OFF)
+if(USE_CSHARP)
find_program(MCS_EXECUTABLE NAMES mcs)
endif ()
if (MCS_EXECUTABLE)
list( APPEND LANGUAGES csharp )
endif ()
-
-
-
-set ( CPP_TEST_CASES
- abstract_access
- abstract_inherit
- abstract_inherit_ok
- abstract_signature
- abstract_typedef
- abstract_typedef2
- abstract_virtual
- access_change
- add_link
- aggregate
- allowexcept
-# allprotected
-# allprotected_not
-# anonymous_bitfield
-# apply_signed_char
-# apply_strings
-# argout
-# array_member
-# array_typedef_memberin
-# arrayref
-# arrays_dimensionless
-# arrays_global
-# arrays_global_twodim
-# arrays_scope
-# autodoc
-# bloody_hell
-# bools
-# catches
-# cast_operator
-# casts
-# char_binary
-# char_strings
-# class_forward
-# class_ignore
-# class_scope_weird
-# compactdefaultargs
-# const_const_2
-# constant_pointers
-# constover
-# constructor_copy
-# constructor_exception
-# constructor_explicit
-# constructor_ignore
-# constructor_rename
-# constructor_value
-# contract
-# conversion
-# conversion_namespace
-# conversion_ns_template
-# cplusplus_throw
-# cpp_basic
-# cpp_enum
-# cpp_namespace
-# cpp_nodefault
-# cpp_static
-# cpp_typedef
-# curiously_recurring_template_pattern
-# default_args
-# default_arg_values
-# default_constructor
-# defvalue_constructor
-# derived_byvalue
-# derived_nested
-# destructor_reprotected
-# director_abstract
-# director_alternating
-# director_basic
-# director_binary_string
-# director_classes
-# director_classic
-# director_constructor
-# director_default
-# director_detect
-# director_enum
-# director_exception
-# director_extend
-# director_finalizer
-# director_frob
-# director_ignore
-# director_keywords
-# director_namespace_clash
-# director_nspace
-# director_nspace_director_name_collision
-# director_nested
-# director_overload
-# director_overload2
-# director_primitives
-# director_protected
-# director_protected_overloaded
-# director_redefined
-# director_smartptr
-# director_thread
-# director_unroll
-# director_using
-# director_wombat
-# disown
-# dynamic_cast
-# empty
-# enum_plus
-# enum_rename
-# enum_scope_template
-# enum_template
-# enum_thorough
-# enum_var
-# evil_diamond
-# evil_diamond_ns
-# evil_diamond_prop
-# exception_order
-# extend
-# extend_constructor_destructor
-# extend_default
-# extend_placement
-# extend_special_variables
-# extend_template
-# extend_template_ns
-# extend_typedef_class
-# extern_c
-# extern_namespace
-# extern_throws
-# expressions
-# features
-# fragments
-# friends
-# funcptr_cpp
-# fvirtual
-# global_namespace
-# global_ns_arg
-# global_scope_types
-# global_vars
-# grouping
-# ignore_parameter
-# import_nomodule
-# inherit
-# inherit_missing
-# inherit_same_name
-# inherit_target_language
-# inherit_void_arg
-# inline_initializer
-# insert_directive
-# keyword_rename
-# kind
-# langobj
-# li_attribute
-# li_attribute_template
-# li_boost_shared_ptr
-# li_boost_shared_ptr_bits
-# li_boost_shared_ptr_template
-# li_boost_shared_ptr_attribute
-# li_carrays
-# li_cdata
-# li_cpointer
-# li_std_auto_ptr
-# li_stdint
-# li_swigtype_inout
-# li_typemaps
-# li_typemaps_apply
-# li_windows
-# long_long_apply
-# memberin_extend
-# member_funcptr_galore
-# member_pointer
-# member_template
-# minherit
-# minherit2
-# mixed_types
-# multiple_inheritance
-# name_cxx
-# name_warnings
-# namespace_class
-# namespace_enum
-# namespace_extend
-# namespace_forward_declaration
-# namespace_nested
-# namespace_spaces
-# namespace_template
-# namespace_typedef_class
-# namespace_typemap
-# namespace_union
-# namespace_virtual_method
-# nspace
-# nspace_extend
-# naturalvar
-# naturalvar_more
-# naturalvar_onoff
-# nested_class
-# nested_directors
-# nested_comment
-# nested_scope
-# nested_workaround
-# newobject1
-# null_pointer
-# operator_overload
-# operator_overload_break
-# operator_pointer_ref
-# operbool
-# ordering
-# overload_bool
-# overload_copy
-# overload_extend
-# overload_method
-# overload_numeric
-# overload_rename
-# overload_return_type
-# overload_simple
-# overload_subtype
-# overload_template
-# overload_template_fast
-# pointer_reference
-# preproc_constants
-# primitive_ref
-# private_assign
-# protected_rename
-# pure_virtual
-# redefined
-# redefined_not
-# refcount
-# reference_global_vars
-# register_par
-# rename1
-# rename2
-# rename3
-# rename4
-# rename_scope
-# rename_simple
-# rename_strip_encoder
-# rename_pcre_encoder
-# rename_pcre_enum
-# rename_predicates
-# restrict_cplusplus
-# return_const_value
-# return_value_scope
-# rname
-# samename
-# sizet
-# smart_pointer_const
-# smart_pointer_const2
-# smart_pointer_const_overload
-# smart_pointer_extend
-# smart_pointer_member
-# smart_pointer_multi
-# smart_pointer_multi_typedef
-# smart_pointer_namespace
-# smart_pointer_namespace2
-# smart_pointer_not
-# smart_pointer_overload
-# smart_pointer_protected
-# smart_pointer_rename
-# smart_pointer_simple
-# smart_pointer_static
-# smart_pointer_template_const_overload
-# smart_pointer_template_defaults_overload
-# smart_pointer_templatemethods
-# smart_pointer_templatevariables
-# smart_pointer_typedef
-# special_variables
-# special_variable_macros
-# static_array_member
-# static_const_member
-# static_const_member_2
-# struct_initialization_cpp
-# struct_value
-# symbol_clash
-# template_arg_replace
-# template_arg_scope
-# template_arg_typename
-# template_array_numeric
-# template_basic
-# template_base_template
-# template_classes
-# template_const_ref
-# template_construct
-# template_default
-# template_default2
-# template_default_arg
-# template_default_arg_virtual_destructor
-# template_default_class_parms
-# template_default_class_parms_typedef
-# template_default_inherit
-# template_default_qualify
-# template_default_vw
-# template_enum
-# template_enum_ns_inherit
-# template_enum_typedef
-# template_explicit
-# template_extend1
-# template_extend2
-# template_extend_overload
-# template_extend_overload_2
-# template_forward
-# template_inherit
-# template_inherit_abstract
-# template_int_const
-# template_methods
-# template_namespace_forward_declaration
-# template_using_directive_and_declaration_forward
-# template_nested
-# template_nested_typemaps
-# template_ns
-# template_ns2
-# template_ns3
-# template_ns4
-# template_ns_enum
-# template_ns_enum2
-# template_ns_inherit
-# template_ns_scope
-# template_partial_arg
-# template_partial_specialization
-# template_partial_specialization_typedef
-# template_qualifier
-# template_ref_type
-# template_rename
-# template_retvalue
-# template_specialization
-# template_specialization_defarg
-# template_specialization_enum
-# template_static
-# template_tbase_template
-# template_template_parameters
-# template_typedef
-# template_typedef_class_template
-# template_typedef_cplx
-# template_typedef_cplx2
-# template_typedef_cplx3
-# template_typedef_cplx4
-# template_typedef_cplx5
-# template_typedef_funcptr
-# template_typedef_inherit
-# template_typedef_ns
-# template_typedef_ptr
-# template_typedef_rec
-# template_typedef_typedef
-# template_typemaps
-# template_typemaps_typedef
-# template_typemaps_typedef2
-# template_using
-# template_virtual
-# template_whitespace
-# threads
-# threads_exception
-# throw_exception
-# typedef_array_member
-# typedef_class
-# typedef_funcptr
-# typedef_inherit
-# typedef_mptr
-# typedef_reference
-# typedef_scope
-# typedef_sizet
-# typedef_struct
- typedef_typedef
- typemap_arrays
- typemap_array_qualifiers
- typemap_delete
- typemap_directorout
- typemap_global_scope
- typemap_manyargs
- typemap_namespace
- typemap_ns_using
- typemap_numinputs
- typemap_template
- typemap_template_parm_typedef
- typemap_out_optimal
- typemap_qualifier_strip
- typemap_variables
- typemap_various
- typename
- types_directive
- union_scope
- using1
- using2
- using_composition
- using_directive_and_declaration
- using_directive_and_declaration_forward
- using_extend
- using_inherit
- using_namespace
- using_namespace_loop
- using_pointers
- using_private
- using_protected
- valuewrapper
- valuewrapper_base
- valuewrapper_const
- valuewrapper_opaque
- varargs
- varargs_overload
- virtual_destructor
- virtual_poly
- virtual_vs_nonvirtual_base
- voidtest
- wallkw
- wrapmacro )
-
-include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} )
-
-macro ( swig_and_compile TESTCASE LANGUAGE )
- set (SWIG_CXX_FLAG)
- set ( SWIG_CXX_EXTENSION ".c")
- if (1)
- set (SWIG_CXX_FLAG "-c++")
- set(SWIG_CXX_EXTENSION ".cxx")
- endif ()
-
- set (SWIG_OUTPUT ${TESTCASE}${LANGUAGE}_wrap${SWIG_CXX_EXTENSION} )
- add_custom_command(OUTPUT ${SWIG_OUTPUT}
- COMMAND ${SWIG_EXECUTABLE} -${LANGUAGE} ${SWIG_CXX_FLAG}
-# -outdir ${CMAKE_CURRENT_BINARY_DIR}/
- -I${CMAKE_SOURCE_DIR}/Lib/${LANGUAGE} -I${CMAKE_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/Lib
- -o ${SWIG_OUTPUT}
- ${CMAKE_CURRENT_SOURCE_DIR}/${TESTCASE}.i
- )
- add_library(${TESTCASE}_${LANGUAGE} MODULE EXCLUDE_FROM_ALL ${SWIG_OUTPUT} )
- set_target_properties(${TESTCASE}_${LANGUAGE} PROPERTIES PREFIX "_")
-# set_target_properties(${TESTCASE}_${LANGUAGE} PROPERTIES OUTPUT_NAME "${TESTCASE}_${LANGUAGE}")
-
- add_dependencies(check-${LANGUAGE}-test-suite ${TESTCASE}_${LANGUAGE})
-
- set ( testfile ${CMAKE_CURRENT_SOURCE_DIR}/${LANGUAGE}/${TESTCASE}_runme${${LANGUAGE}_ext} )
- if ( EXISTS ${testfile} )
- add_test(${TESTCASE}_${LANGUAGE} "${${LANGUAGE}_interpreter}" ${testfile})
- set_tests_properties ( ${TESTCASE}_${LANGUAGE} PROPERTIES ENVIRONMENT "${python_test_environment}" )
-
- endif ()
-endmacro()
-
-add_custom_target ( check-test-suite )
-foreach( LANGUAGE ${LANGUAGES} )
- add_custom_target ( check-${LANGUAGE}-test-suite )
- foreach( CPP_TEST_CASE ${CPP_TEST_CASES} )
- swig_and_compile ( ${CPP_TEST_CASE} ${LANGUAGE} )
- endforeach()
- add_dependencies(check-test-suite check-${LANGUAGE}-test-suite)
-endforeach()