CMakeLists.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #
  2. # Tests configuration
  3. #
  4. add_library(odr OBJECT odr.cpp)
  5. # Test benchmark
  6. if(BUILD_BENCHMARK)
  7. add_executable(
  8. benchmark
  9. $<TARGET_OBJECTS:odr>
  10. benchmark/benchmark.cpp
  11. )
  12. target_link_libraries(benchmark PRIVATE gtest_main Threads::Threads)
  13. add_test(NAME benchmark COMMAND benchmark)
  14. endif()
  15. # Test mod
  16. if(BUILD_MOD)
  17. set(DUKTAPE_DEPS_DIR ${entt_SOURCE_DIR}/deps/duktape)
  18. configure_file(${entt_SOURCE_DIR}/cmake/in/duktape.in ${DUKTAPE_DEPS_DIR}/CMakeLists.txt)
  19. execute_process(COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY ${DUKTAPE_DEPS_DIR})
  20. execute_process(COMMAND ${CMAKE_COMMAND} --build . WORKING_DIRECTORY ${DUKTAPE_DEPS_DIR})
  21. set(DUKTAPE_SRC_DIR ${DUKTAPE_DEPS_DIR}/src/src)
  22. add_executable(
  23. mod
  24. $<TARGET_OBJECTS:odr>
  25. ${DUKTAPE_SRC_DIR}/duktape.c
  26. mod/mod.cpp
  27. )
  28. target_include_directories(mod PRIVATE ${DUKTAPE_SRC_DIR})
  29. target_link_libraries(mod PRIVATE gtest_main Threads::Threads m)
  30. add_test(NAME mod COMMAND mod)
  31. endif()
  32. # Test core
  33. add_executable(
  34. core
  35. $<TARGET_OBJECTS:odr>
  36. entt/core/family.cpp
  37. entt/core/hashed_string.cpp
  38. entt/core/ident.cpp
  39. )
  40. target_link_libraries(core PRIVATE gtest_main Threads::Threads)
  41. add_test(NAME core COMMAND core)
  42. # Test entity
  43. add_executable(
  44. entity
  45. $<TARGET_OBJECTS:odr>
  46. entt/entity/actor.cpp
  47. entt/entity/registry.cpp
  48. entt/entity/sparse_set.cpp
  49. entt/entity/view.cpp
  50. )
  51. target_link_libraries(entity PRIVATE gtest_main Threads::Threads)
  52. add_test(NAME entity COMMAND entity)
  53. # Test locator
  54. add_executable(
  55. locator
  56. $<TARGET_OBJECTS:odr>
  57. entt/locator/locator.cpp
  58. )
  59. target_link_libraries(locator PRIVATE gtest_main Threads::Threads)
  60. add_test(NAME locator COMMAND locator)
  61. # Test process
  62. add_executable(
  63. process
  64. $<TARGET_OBJECTS:odr>
  65. entt/process/process.cpp
  66. entt/process/scheduler.cpp
  67. )
  68. target_link_libraries(process PRIVATE gtest_main Threads::Threads)
  69. add_test(NAME process COMMAND process)
  70. # Test resource
  71. add_executable(
  72. resource
  73. $<TARGET_OBJECTS:odr>
  74. entt/resource/resource.cpp
  75. )
  76. target_link_libraries(resource PRIVATE gtest_main Threads::Threads)
  77. add_test(NAME resource COMMAND resource)
  78. # Test signal
  79. add_executable(
  80. signal
  81. $<TARGET_OBJECTS:odr>
  82. entt/signal/bus.cpp
  83. entt/signal/delegate.cpp
  84. entt/signal/dispatcher.cpp
  85. entt/signal/emitter.cpp
  86. entt/signal/sigh.cpp
  87. entt/signal/signal.cpp
  88. )
  89. target_link_libraries(signal PRIVATE gtest_main Threads::Threads)
  90. add_test(NAME signal COMMAND signal)