]> www.ginac.de Git - ginac.git/blobdiff - check/CMakeLists.txt
[build] GiNaC can be built with CMake now.
[ginac.git] / check / CMakeLists.txt
diff --git a/check/CMakeLists.txt b/check/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4e9e745
--- /dev/null
@@ -0,0 +1,94 @@
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../ginac)
+add_definitions(-DIN_GINAC)
+
+set(ginac_tests
+       check_numeric
+       check_inifcns
+       check_matrices
+       check_lsolve
+       heur_gcd_bug
+       exam_paranoia
+       exam_heur_gcd
+       match_bug
+       parser_bugs
+       exam_numeric_archive
+       exam_numeric
+       exam_powerlaws
+       exam_inifcns
+       exam_inifcns_nstdsums
+       exam_differentiation
+       exam_polygcd
+       exam_normalization
+       exam_factor
+       exam_pseries
+       exam_matrices
+       exam_lsolve
+       exam_indexed
+       exam_color
+       exam_clifford
+       exam_archive
+       exam_structure
+       exam_hashmap
+       exam_misc
+       exam_mod_gcd
+       exam_cra
+       bugme_chinrem_gcd
+       pgcd_relatively_prime_bug
+       pgcd_infinite_loop)
+
+set(ginac_timings
+       time_dennyfliegner
+       time_gammaseries
+       time_vandermonde
+       time_toeplitz
+       time_hashmap
+       time_lw_A
+       time_lw_B
+       time_lw_C
+       time_lw_D
+       time_lw_E
+       time_lw_F
+       time_lw_G
+       time_lw_H
+       time_lw_IJKL
+       time_lw_M1
+       time_lw_M2
+       time_lw_N
+       time_lw_O
+       time_lw_P
+       time_lw_Pprime
+       time_lw_Q
+       time_lw_Qprime
+       time_antipode
+       time_fateman_expand
+       time_uvar_gcd
+       time_parser)
+
+macro(add_ginac_test thename)
+       if ("${${thename}_sources}" STREQUAL "")
+               set(${thename}_sources ${thename}.cpp ${${thename}_extra_src})
+       endif()
+       add_executable(${thename} EXCLUDE_FROM_ALL ${${thename}_sources})
+       target_link_libraries(${thename} ginac)
+       add_dependencies(check ${thename})
+       add_test(${thename} ${thename})
+endmacro()
+
+macro(add_ginac_timing thename)
+       set(${thename}_extra_src timer.cpp randomize_serials.cpp)
+       add_ginac_test(${thename})
+endmacro()
+
+set(check_matrices_extra_src genex.cpp)
+set(check_lsolve_extra_src genex.cpp)
+set(exam_heur_gcd_sources heur_gcd_bug.cpp)
+set(exam_numeric_archive_sources numeric_archive.cpp)
+
+foreach(tst ${ginac_tests})
+       add_ginac_test(${tst})
+endforeach()
+
+foreach(tmr ${ginac_timings})
+       add_ginac_timing(${tmr})
+endforeach()
+