CMakeLists.txt 3.2 KB

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