CMakeLists.txt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. find_package (Python COMPONENTS Interpreter)
  2. if (CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo)
  3. set(TEST_BUILD_TYPE --test)
  4. elseif (CMAKE_BUILD_TYPE STREQUAL Debug)
  5. set(TEST_BUILD_TYPE --debug)
  6. endif ()
  7. if (NO_ICU)
  8. set(TEST_ICU --not-tag exclude_noicu)
  9. endif()
  10. if (BuildJIT)
  11. set(VARIANT --jit)
  12. else ()
  13. set(TEST_VARIANT --variants=disable_jit)
  14. set(VARIANT --noJit)
  15. endif()
  16. # Target to run all tests
  17. add_custom_target(check)
  18. if (CMAKE_BUILD_TYPE STREQUAL Release)
  19. add_custom_target(smoke-check
  20. COMMAND echo "Running Hello World test"
  21. COMMAND ${CMAKE_BINARY_DIR}/ch ${CMAKE_CURRENT_SOURCE_DIR}/Basics/hello.js
  22. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  23. USES_TERMINAL
  24. DEPENDS ch
  25. )
  26. add_dependencies(check smoke-check)
  27. else()
  28. add_custom_target(bytecode-check
  29. COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/../tools/regenByteCode.py ${VARIANT} --verify --binary=${CMAKE_BINARY_DIR}/ch
  30. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  31. USES_TERMINAL
  32. DEPENDS ch
  33. )
  34. add_custom_target(regression-check
  35. COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/runtests.py ${TEST_BUILD_TYPE} ${TEST_ICU} ${TEST_VARIANT} --binary=${CMAKE_BINARY_DIR}/ch
  36. WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
  37. USES_TERMINAL
  38. DEPENDS ch
  39. )
  40. add_dependencies(check bytecode-check regression-check)
  41. endif()
  42. if (NOT NO_ICU AND NOT EMBED_ICU)
  43. add_custom_target(native-check
  44. COMMAND ./test_native.sh ${CMAKE_BINARY_DIR}/ch ${CMAKE_BUILD_TYPE} ${CMAKE_C_COMPILER} ${CMAKE_CXX_COMPILER} ${CMAKE_SOURCE_DIR}
  45. WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/native-tests
  46. USES_TERMINAL
  47. DEPENDS ch
  48. )
  49. add_dependencies(check native-check)
  50. else()
  51. set(ICU_MESSAGE "Native tests are DISABLED, as they require ICU to be installed, and not embedded. NO_ICU = ${NO_ICU} EMBED_ICU = ${EMBED_ICU}")
  52. message(WARNING ${ICU_MESSAGE})
  53. add_custom_target(warn-icu-tests
  54. COMMAND echo "${ICU_MESSAGE}"
  55. USES_TERMINAL
  56. )
  57. add_dependencies(check warn-icu-tests)
  58. endif()
  59. if (NOT STATIC_LIBRARY)
  60. add_dependencies(check ChakraCore)
  61. endif()