cmake: turn imgui from an INTERFACE library into an OBJECT library

Saves us from compiling imgui multiple times and makes cmake invoked
clang-tidy automatically skip the imgui header and implementation files
because they are not directly part of our targets.
This commit is contained in:
oxmox 2023-02-18 11:23:19 +01:00
parent 823932af16
commit 01742f13d7

View file

@ -2,11 +2,9 @@ option(NNG_SETSTACKSIZE "Use rlimit for thread stack size" ON)
set(NNG_TESTS OFF)
set(NNG_ENABLE_NNGCAT OFF)
add_subdirectory(nng)
find_package(SDL2 REQUIRED)
add_library(imgui INTERFACE)
target_sources(imgui INTERFACE
add_library(imgui OBJECT
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui.cpp
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_demo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/imgui/imgui_draw.cpp
@ -16,5 +14,5 @@ target_sources(imgui INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/imgui/backends/imgui_impl_sdlrenderer.cpp
)
target_include_directories(imgui INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
target_link_libraries(imgui INTERFACE SDL2::SDL2-static)
target_include_directories(imgui PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
target_link_libraries(imgui PUBLIC SDL2::SDL2-static)