Skip to content

Commit

Permalink
Add var helloimgui_target (name of hello_imgui target)
Browse files Browse the repository at this point in the history
  • Loading branch information
pthom committed Dec 18, 2023
1 parent 2f5bc9e commit 153efef
Showing 1 changed file with 41 additions and 41 deletions.
82 changes: 41 additions & 41 deletions src/hello_imgui/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
set(target_name hello_imgui)
message(STATUS "Library ${target_name}")
set(helloimgui_target hello_imgui)
message(STATUS "Library ${helloimgui_target}")

set(imgui_backends_dir ${HELLOIMGUI_IMGUI_SOURCE_DIR}/backends)

Expand All @@ -8,44 +8,44 @@ if (APPLE)
else()
file(GLOB_RECURSE sources *.h *.cpp *.c)
endif()
add_library(${target_name} ${sources})
add_library(${helloimgui_target} ${sources})

set_property(TARGET ${target_name} PROPERTY CXX_STANDARD 17)
set_property(TARGET ${helloimgui_target} PROPERTY CXX_STANDARD 17)

target_include_directories(${target_name} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..)
target_link_libraries(${target_name} PUBLIC imgui)
target_include_directories(${helloimgui_target} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/..)
target_link_libraries(${helloimgui_target} PUBLIC imgui)


if (HELLO_IMGUI_IMGUI_SHARED)
target_compile_definitions(${target_name} PRIVATE GImGui=GImGuiFromHelloImGui)
target_compile_definitions(${target_name} PRIVATE HELLO_IMGUI_IMGUI_SHARED)
target_compile_definitions(${helloimgui_target} PRIVATE GImGui=GImGuiFromHelloImGui)
target_compile_definitions(${helloimgui_target} PRIVATE HELLO_IMGUI_IMGUI_SHARED)
endif()

if(APPLE AND NOT IOS)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_MACOS)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_MACOS)
enable_language(OBJC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -x objective-c++")
endif()

if(IOS)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_IOS)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_IOS)
endif()

if (IOS)
target_compile_definitions(${target_name} PUBLIC IOS)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_MOBILEDEVICE)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_CANNOTQUIT)
target_compile_definitions(${helloimgui_target} PUBLIC IOS)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_MOBILEDEVICE)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_CANNOTQUIT)

# this is a hack because imgui_impl_opengl3.cpp does not include <TargetConditional.h>
# and thus TARGET_OS_IOS is not found as it should be
target_compile_definitions(${target_name} PRIVATE TARGET_OS_IOS)
target_compile_definitions(${helloimgui_target} PRIVATE TARGET_OS_IOS)
endif()

if (EMSCRIPTEN)
set(HELLOIMGUI_USE_SDL_OPENGL3 ON)
set(HELLOIMGUI_USE_GLFW_OPENGL3 OFF)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_GLES3)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_CANNOTQUIT)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_GLES3)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_CANNOTQUIT)
endif()


Expand All @@ -56,7 +56,7 @@ function(_link_opengles_sdl target)
target_link_libraries(${target} PUBLIC GLESv3)
endif()

target_compile_definitions(${target_name}
target_compile_definitions(${target}
PUBLIC
IMGUI_IMPL_OPENGL_LOADER_CUSTOM="<OpenGLES/ES3/gl.h>"
IMGUI_IMPL_OPENGL_ES3
Expand Down Expand Up @@ -104,14 +104,14 @@ endfunction()


if (HELLOIMGUI_USE_SDL_OPENGL3)
_link_sdl(${target_name})
_link_sdl(${helloimgui_target})

if(ANDROID)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_CANNOTQUIT)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_MOBILEDEVICE)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_CANNOTQUIT)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_MOBILEDEVICE)
endif()

target_sources(${target_name} PRIVATE
target_sources(${helloimgui_target} PRIVATE
${imgui_backends_dir}/imgui_impl_opengl3.h
${imgui_backends_dir}/imgui_impl_opengl3.cpp
${imgui_backends_dir}/imgui_impl_sdl2.h
Expand All @@ -130,9 +130,9 @@ if (HELLOIMGUI_USE_GLFW_OPENGL3)
if (NOT TARGET glfw) # if glfw is not built as part of the whole build, find it
find_package(glfw3 CONFIG REQUIRED)
endif()
target_link_libraries(${target_name} PUBLIC glfw)
target_link_libraries(${helloimgui_target} PUBLIC glfw)

target_sources(${target_name} PRIVATE
target_sources(${helloimgui_target} PRIVATE
${imgui_backends_dir}/imgui_impl_opengl3.h
${imgui_backends_dir}/imgui_impl_opengl3.cpp
${imgui_backends_dir}/imgui_impl_glfw.h
Expand All @@ -141,25 +141,25 @@ if (HELLOIMGUI_USE_GLFW_OPENGL3)
endif()

if (IOS)
target_link_libraries(${target_name} PUBLIC "-framework UIKit")
target_link_libraries(${helloimgui_target} PUBLIC "-framework UIKit")
endif ()
if (APPLE AND NOT IOS) # If mac
target_link_libraries(${target_name} PUBLIC "-framework AppKit -framework IOKit")
target_link_libraries(${helloimgui_target} PUBLIC "-framework AppKit -framework IOKit")
endif()

if (HELLOIMGUI_USE_QT)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_QT)
target_link_libraries(${target_name} PUBLIC qt_imgui_quick)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_QT)
target_link_libraries(${helloimgui_target} PUBLIC qt_imgui_quick)
endif()

if (HELLOIMGUI_USE_GLAD)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_GLAD IMGUI_IMPL_OPENGL_LOADER_GLAD)
target_link_libraries(${target_name} PUBLIC glad)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_GLAD IMGUI_IMPL_OPENGL_LOADER_GLAD)
target_link_libraries(${helloimgui_target} PUBLIC glad)
endif()

if (MSVC)
hello_imgui_msvc_target_group_sources(${target_name})
hello_imgui_msvc_target_set_folder(${target_name} ${HELLOIMGUI_SOLUTIONFOLDER})
hello_imgui_msvc_target_group_sources(${helloimgui_target})
hello_imgui_msvc_target_set_folder(${helloimgui_target} ${HELLOIMGUI_SOLUTIONFOLDER})
endif()


Expand All @@ -171,32 +171,32 @@ if (UNIX AND NOT EMSCRIPTEN AND NOT APPLE AND NOT ANDROID)
target_link_libraries(hello_imgui PUBLIC X11)
endif()
if (APPLE)
target_link_libraries(${target_name} PUBLIC "-framework Foundation")
target_link_libraries(${helloimgui_target} PUBLIC "-framework Foundation")
endif()


# Compile definitions
if (HELLOIMGUI_USE_SDL_OPENGL3)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_SDL_OPENGL3)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_SDL)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_HAS_OPENGL)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_SDL_OPENGL3)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_SDL)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_HAS_OPENGL)
endif()
if (HELLOIMGUI_USE_GLFW_OPENGL3)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_GLFW_OPENGL3)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_USE_GLFW)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_HAS_OPENGL)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_GLFW_OPENGL3)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_USE_GLFW)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_HAS_OPENGL)
endif()

if (IOS OR (MACOSX AND NOT HELLOIMGUI_MACOS_NO_BUNDLE))
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_INSIDE_APPLE_BUNDLE)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_INSIDE_APPLE_BUNDLE)
endif()
if (HELLOIMGUI_WIN32_AUTO_WINMAIN)
target_compile_definitions(${target_name} PUBLIC HELLOIMGUI_WIN32_AUTO_WINMAIN)
target_compile_definitions(${helloimgui_target} PUBLIC HELLOIMGUI_WIN32_AUTO_WINMAIN)
endif()

# install
if (PROJECT_IS_TOP_LEVEL AND NOT IOS AND NOT ANDROID)
install(TARGETS ${target_name} DESTINATION ./lib/)
install(TARGETS ${helloimgui_target} DESTINATION ./lib/)
file(GLOB headers *.h)
install(FILES ${headers} DESTINATION ./include/hello_imgui/)
endif()

0 comments on commit 153efef

Please sign in to comment.