imgui.cmake 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. if(TARGET imgui::imgui)
  2. return()
  3. endif()
  4. message(STATUS "Third-party: creating target 'imgui::imgui'")
  5. include(FetchContent)
  6. FetchContent_Declare(
  7. imgui
  8. GIT_REPOSITORY https://github.com/ocornut/imgui.git
  9. GIT_TAG v1.85
  10. )
  11. FetchContent_MakeAvailable(imgui)
  12. set(IMGUI_SRC
  13. "${imgui_SOURCE_DIR}/imgui.h"
  14. "${imgui_SOURCE_DIR}/imconfig.h"
  15. "${imgui_SOURCE_DIR}/imgui_internal.h"
  16. "${imgui_SOURCE_DIR}/imgui.cpp"
  17. "${imgui_SOURCE_DIR}/imgui_demo.cpp"
  18. "${imgui_SOURCE_DIR}/imgui_draw.cpp"
  19. "${imgui_SOURCE_DIR}/imgui_widgets.cpp"
  20. "${imgui_SOURCE_DIR}/imgui_tables.cpp"
  21. "${imgui_SOURCE_DIR}/imstb_rectpack.h"
  22. "${imgui_SOURCE_DIR}/imstb_textedit.h"
  23. "${imgui_SOURCE_DIR}/imstb_truetype.h"
  24. "${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.h"
  25. "${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp"
  26. "${imgui_SOURCE_DIR}/backends/imgui_impl_glfw.h"
  27. "${imgui_SOURCE_DIR}/backends/imgui_impl_glfw.cpp"
  28. "${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.h"
  29. "${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.cpp"
  30. )
  31. add_library(imgui ${IMGUI_SRC})
  32. add_library(imgui::imgui ALIAS imgui)
  33. # Include headers
  34. target_include_directories(imgui PUBLIC "${imgui_SOURCE_DIR}")
  35. # Compile definitions
  36. target_compile_definitions(imgui PUBLIC
  37. IMGUI_IMPL_OPENGL_LOADER_GLAD
  38. IMGUI_DISABLE_OBSOLETE_FUNCTIONS # to check for obsolete functions
  39. )
  40. # Dependencies
  41. include(glfw)
  42. include(glad)
  43. target_link_libraries(imgui PUBLIC glfw::glfw glad::glad)
  44. set_target_properties(imgui PROPERTIES FOLDER ThirdParty)