imgui.cmake 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. GIT_SHALLOW TRUE
  11. )
  12. FetchContent_MakeAvailable(imgui)
  13. set(IMGUI_SRC
  14. "${imgui_SOURCE_DIR}/imgui.h"
  15. "${imgui_SOURCE_DIR}/imconfig.h"
  16. "${imgui_SOURCE_DIR}/imgui_internal.h"
  17. "${imgui_SOURCE_DIR}/imgui.cpp"
  18. "${imgui_SOURCE_DIR}/imgui_demo.cpp"
  19. "${imgui_SOURCE_DIR}/imgui_draw.cpp"
  20. "${imgui_SOURCE_DIR}/imgui_widgets.cpp"
  21. "${imgui_SOURCE_DIR}/imgui_tables.cpp"
  22. "${imgui_SOURCE_DIR}/imstb_rectpack.h"
  23. "${imgui_SOURCE_DIR}/imstb_textedit.h"
  24. "${imgui_SOURCE_DIR}/imstb_truetype.h"
  25. "${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.h"
  26. "${imgui_SOURCE_DIR}/backends/imgui_impl_opengl3.cpp"
  27. "${imgui_SOURCE_DIR}/backends/imgui_impl_glfw.h"
  28. "${imgui_SOURCE_DIR}/backends/imgui_impl_glfw.cpp"
  29. "${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.h"
  30. "${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.cpp"
  31. )
  32. add_library(imgui ${IMGUI_SRC})
  33. add_library(imgui::imgui ALIAS imgui)
  34. # Include headers
  35. target_include_directories(imgui PUBLIC "${imgui_SOURCE_DIR}")
  36. # Compile definitions
  37. target_compile_definitions(imgui PUBLIC
  38. IMGUI_IMPL_OPENGL_LOADER_GLAD
  39. IMGUI_DISABLE_OBSOLETE_FUNCTIONS # to check for obsolete functions
  40. )
  41. # Dependencies
  42. include(glfw)
  43. include(glad)
  44. target_link_libraries(imgui PUBLIC glfw::glfw glad::glad)
  45. set_target_properties(imgui PROPERTIES FOLDER ThirdParty)