CMakeLists.txt 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #
  2. # Tests configuration
  3. #
  4. include_directories($<TARGET_PROPERTY:EnTT,INTERFACE_INCLUDE_DIRECTORIES>)
  5. add_compile_options($<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_OPTIONS>)
  6. add_library(odr OBJECT odr.cpp)
  7. set_target_properties(odr PROPERTIES CXX_EXTENSIONS OFF)
  8. target_compile_definitions(odr PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_DEFINITIONS>)
  9. target_compile_features(odr PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
  10. target_compile_options(odr PRIVATE $<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-pedantic -Wall>)
  11. macro(SETUP_AND_ADD_TEST TEST_NAME TEST_SOURCE)
  12. add_executable(${TEST_NAME} $<TARGET_OBJECTS:odr> ${TEST_SOURCE})
  13. set_target_properties(${TEST_NAME} PROPERTIES CXX_EXTENSIONS OFF)
  14. target_link_libraries(${TEST_NAME} PRIVATE EnTT GTest::Main Threads::Threads)
  15. target_compile_definitions(${TEST_NAME} PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_DEFINITIONS>)
  16. target_compile_features(${TEST_NAME} PRIVATE $<TARGET_PROPERTY:EnTT,INTERFACE_COMPILE_FEATURES>)
  17. target_compile_options(${TEST_NAME} PRIVATE $<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-pedantic -Wall>)
  18. add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME})
  19. endmacro()
  20. # Test benchmark
  21. if(BUILD_BENCHMARK)
  22. SETUP_AND_ADD_TEST(benchmark benchmark/benchmark.cpp)
  23. endif()
  24. # Test mod
  25. if(BUILD_MOD)
  26. set(DUKTAPE_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/duktape)
  27. configure_file(${EnTT_SOURCE_DIR}/cmake/in/duktape.in ${DUKTAPE_DEPS_DIR}/CMakeLists.txt)
  28. execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${DUKTAPE_DEPS_DIR})
  29. execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${DUKTAPE_DEPS_DIR})
  30. set(DUKTAPE_SRC_DIR ${DUKTAPE_DEPS_DIR}/src/src)
  31. set(MOD_TEST_SOURCE ${DUKTAPE_SRC_DIR}/duktape.c mod/mod.cpp)
  32. SETUP_AND_ADD_TEST(mod "${MOD_TEST_SOURCE}")
  33. target_include_directories(mod PRIVATE ${DUKTAPE_SRC_DIR})
  34. endif()
  35. # Test snapshot
  36. if(BUILD_SNAPSHOT)
  37. set(CEREAL_DEPS_DIR ${EnTT_SOURCE_DIR}/deps/cereal)
  38. configure_file(${EnTT_SOURCE_DIR}/cmake/in/cereal.in ${CEREAL_DEPS_DIR}/CMakeLists.txt)
  39. execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${CEREAL_DEPS_DIR})
  40. execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${CEREAL_DEPS_DIR})
  41. set(CEREAL_SRC_DIR ${CEREAL_DEPS_DIR}/src/include)
  42. SETUP_AND_ADD_TEST(cereal snapshot/snapshot.cpp)
  43. target_include_directories(cereal PRIVATE ${CEREAL_SRC_DIR})
  44. endif()
  45. # Test core
  46. SETUP_AND_ADD_TEST(algorithm entt/core/algorithm.cpp)
  47. SETUP_AND_ADD_TEST(family entt/core/family.cpp)
  48. SETUP_AND_ADD_TEST(hashed_string entt/core/hashed_string.cpp)
  49. SETUP_AND_ADD_TEST(ident entt/core/ident.cpp)
  50. SETUP_AND_ADD_TEST(monostate entt/core/monostate.cpp)
  51. # Test entity
  52. SETUP_AND_ADD_TEST(actor entt/entity/actor.cpp)
  53. SETUP_AND_ADD_TEST(entity entt/entity/entity.cpp)
  54. SETUP_AND_ADD_TEST(helper entt/entity/helper.cpp)
  55. SETUP_AND_ADD_TEST(prototype entt/entity/prototype.cpp)
  56. SETUP_AND_ADD_TEST(registry entt/entity/registry.cpp)
  57. SETUP_AND_ADD_TEST(snapshot entt/entity/snapshot.cpp)
  58. SETUP_AND_ADD_TEST(sparse_set entt/entity/sparse_set.cpp)
  59. SETUP_AND_ADD_TEST(view entt/entity/view.cpp)
  60. # Test locator
  61. SETUP_AND_ADD_TEST(locator entt/locator/locator.cpp)
  62. # Test process
  63. SETUP_AND_ADD_TEST(process entt/process/process.cpp)
  64. SETUP_AND_ADD_TEST(scheduler entt/process/scheduler.cpp)
  65. # Test resource
  66. SETUP_AND_ADD_TEST(resource entt/resource/resource.cpp)
  67. # Test signal
  68. SETUP_AND_ADD_TEST(delegate entt/signal/delegate.cpp)
  69. SETUP_AND_ADD_TEST(dispatcher entt/signal/dispatcher.cpp)
  70. SETUP_AND_ADD_TEST(emitter entt/signal/emitter.cpp)
  71. SETUP_AND_ADD_TEST(sigh entt/signal/sigh.cpp)