CMakeLists.txt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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.2.8
  8. GIT_SHALLOW 1
  9. )
  10. FetchContent_MakeAvailable(SDL3)
  11. # Fetch ImGui
  12. FetchContent_Declare(
  13. imgui
  14. GIT_REPOSITORY https://github.com/ocornut/imgui
  15. GIT_TAG v1.91.9
  16. GIT_SHALLOW 1
  17. )
  18. FetchContent_GetProperties(imgui)
  19. if(NOT imgui_POPULATED)
  20. FetchContent_Populate(imgui)
  21. set(imgui_INCLUDE_DIR ${imgui_SOURCE_DIR})
  22. endif()
  23. # Testbed executable
  24. add_executable(testbed)
  25. set_target_properties(testbed PROPERTIES CXX_EXTENSIONS OFF)
  26. target_compile_features(testbed PUBLIC ${ENTT_CXX_STD})
  27. target_compile_definitions(
  28. testbed
  29. PRIVATE
  30. ENTT_ID_TYPE=${ENTT_ID_TYPE}
  31. NOMINMAX
  32. )
  33. target_sources(
  34. testbed
  35. PRIVATE
  36. application/application.cpp
  37. application/context.cpp
  38. testbed.cpp
  39. ${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp
  40. ${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp
  41. ${imgui_SOURCE_DIR}/imgui.cpp
  42. ${imgui_SOURCE_DIR}/imgui_demo.cpp
  43. ${imgui_SOURCE_DIR}/imgui_draw.cpp
  44. ${imgui_SOURCE_DIR}/imgui_tables.cpp
  45. ${imgui_SOURCE_DIR}/imgui_widgets.cpp
  46. )
  47. target_link_libraries(
  48. testbed
  49. PRIVATE
  50. EnTT::EnTT
  51. SDL3::SDL3
  52. )
  53. target_include_directories(
  54. testbed
  55. PRIVATE
  56. ${CMAKE_CURRENT_SOURCE_DIR}
  57. ${imgui_SOURCE_DIR}
  58. )