CMakeLists.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Testbed configuration
  2. include(FetchContent)
  3. # Fetch SDL3
  4. FetchContent_Declare(
  5. SDL3
  6. GIT_REPOSITORY https://github.com/libsdl-org/SDL
  7. GIT_TAG release-3.4.12
  8. GIT_SHALLOW 1
  9. )
  10. option(SDL_STATIC "Enable SDL static library" ON)
  11. option(SDL_SHARED "Disable SDL shared library" OFF)
  12. FetchContent_MakeAvailable(SDL3)
  13. # Fetch ImGui
  14. FetchContent_Declare(
  15. imgui
  16. GIT_REPOSITORY https://github.com/ocornut/imgui
  17. GIT_TAG v1.92.8
  18. GIT_SHALLOW 1
  19. )
  20. FetchContent_MakeAvailable(imgui)
  21. # Testbed executable
  22. add_executable(testbed)
  23. set_target_properties(testbed PROPERTIES CXX_EXTENSIONS OFF)
  24. target_compile_features(testbed PUBLIC ${ENTT_CXX_STD})
  25. target_compile_definitions(
  26. testbed
  27. PRIVATE
  28. ENTT_ID_TYPE=${ENTT_ID_TYPE}
  29. NOMINMAX
  30. )
  31. target_sources(
  32. testbed
  33. PRIVATE
  34. application/application.cpp
  35. application/context.cpp
  36. meta/meta.cpp
  37. system/command_system.cpp
  38. system/imgui_system.cpp
  39. system/input_system.cpp
  40. system/movement_system.cpp
  41. system/rendering_system.cpp
  42. testbed.cpp
  43. ${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp
  44. ${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp
  45. ${imgui_SOURCE_DIR}/imgui.cpp
  46. ${imgui_SOURCE_DIR}/imgui_demo.cpp
  47. ${imgui_SOURCE_DIR}/imgui_draw.cpp
  48. ${imgui_SOURCE_DIR}/imgui_tables.cpp
  49. ${imgui_SOURCE_DIR}/imgui_widgets.cpp
  50. )
  51. target_link_libraries(
  52. testbed
  53. PRIVATE
  54. EnTT::EnTT
  55. SDL3::SDL3
  56. )
  57. target_include_directories(
  58. testbed
  59. PRIVATE
  60. ${CMAKE_CURRENT_SOURCE_DIR}
  61. ${imgui_SOURCE_DIR}
  62. )