CMakeLists.txt 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. cmake_minimum_required (VERSION 3.5)
  2. enable_testing()
  3. project(basic_checks)
  4. set(MATLAB_FIND_DEBUG TRUE)
  5. # the success of the following command is dependent on the current configuration:
  6. # - on 32bits builds (cmake is building with 32 bits), it looks for 32 bits Matlab
  7. # - on 64bits builds (cmake is building with 64 bits), it looks for 64 bits Matlab
  8. if(IS_MCR)
  9. set(RUN_UNIT_TESTS FALSE)
  10. else()
  11. set(RUN_UNIT_TESTS TRUE)
  12. set(components MAIN_PROGRAM)
  13. endif()
  14. if(NOT "${MCR_ROOT}" STREQUAL "")
  15. set(Matlab_ROOT_DIR "${MCR_ROOT}")
  16. if(NOT EXISTS "${MCR_ROOT}")
  17. message(FATAL_ERROR "MCR does not exist ${MCR_ROOT}")
  18. endif()
  19. endif()
  20. find_package(Matlab REQUIRED COMPONENTS ${components})
  21. matlab_add_mex(
  22. # target name
  23. NAME cmake_matlab_test_wrapper1
  24. # output name
  25. OUTPUT_NAME cmake_matlab_mex1
  26. SRC ${CMAKE_CURRENT_SOURCE_DIR}/../matlab_wrapper1.cpp
  27. DOCUMENTATION ${CMAKE_CURRENT_SOURCE_DIR}/../help_text1.m.txt
  28. )
  29. if(RUN_UNIT_TESTS)
  30. matlab_add_unit_test(
  31. NAME ${PROJECT_NAME}_matlabtest-1
  32. TIMEOUT 300
  33. UNITTEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../cmake_matlab_unit_tests1.m
  34. ADDITIONAL_PATH $<TARGET_FILE_DIR:cmake_matlab_test_wrapper1>
  35. )
  36. # timeout tests, TIMEOUT set to very short on purpose
  37. matlab_add_unit_test(
  38. NAME ${PROJECT_NAME}_matlabtest-2
  39. TIMEOUT 15
  40. UNITTEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../cmake_matlab_unit_tests_timeout.m
  41. ADDITIONAL_PATH $<TARGET_FILE_DIR:cmake_matlab_test_wrapper1>
  42. )
  43. set_tests_properties(${PROJECT_NAME}_matlabtest-2 PROPERTIES WILL_FAIL TRUE)
  44. # testing the test without the unittest framework of Matlab
  45. matlab_add_unit_test(
  46. NAME ${PROJECT_NAME}_matlabtest-3
  47. TIMEOUT 300
  48. NO_UNITTEST_FRAMEWORK
  49. UNITTEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../cmake_matlab_unit_tests2.m
  50. ADDITIONAL_PATH $<TARGET_FILE_DIR:cmake_matlab_test_wrapper1>
  51. )
  52. matlab_add_unit_test(
  53. NAME ${PROJECT_NAME}_matlabtest-4
  54. TIMEOUT 300
  55. NO_UNITTEST_FRAMEWORK
  56. UNITTEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../cmake_matlab_unit_tests3.m
  57. ADDITIONAL_PATH $<TARGET_FILE_DIR:cmake_matlab_test_wrapper1>
  58. )
  59. set_tests_properties(${PROJECT_NAME}_matlabtest-4 PROPERTIES WILL_FAIL TRUE)
  60. endif()
  61. # checking correct flags passed
  62. # EXCLUDE_FROM_ALL appears after a multiargs (like SRC)
  63. matlab_add_mex(
  64. # target name
  65. NAME cmake_matlab_test_exclude_from_all
  66. # output name
  67. OUTPUT_NAME cmake_matlab_mex_dummy
  68. SRC ${CMAKE_CURRENT_SOURCE_DIR}/../matlab_wrapper_failure.cpp
  69. EXCLUDE_FROM_ALL
  70. )