forked from Green-Sky/tomato
remove imgui subtree and bring it in as cmake fetch content
also forgot to update nix flake for implot and plutosvg
This commit is contained in:
138
external/imgui/CMakeLists.txt
vendored
138
external/imgui/CMakeLists.txt
vendored
@ -1,76 +1,82 @@
|
||||
cmake_minimum_required(VERSION 3.14...3.24 FATAL_ERROR)
|
||||
|
||||
project(imgui C CXX)
|
||||
include(FetchContent)
|
||||
|
||||
add_library(imgui
|
||||
imgui/imgui.h
|
||||
imgui/imgui.cpp
|
||||
imgui/imgui_draw.cpp
|
||||
imgui/imgui_widgets.cpp
|
||||
imgui/imgui_tables.cpp
|
||||
imgui/imgui_demo.cpp
|
||||
|
||||
imgui/imstb_rectpack.h
|
||||
imgui/imstb_textedit.h
|
||||
imgui/imstb_truetype.h
|
||||
|
||||
imgui/misc/cpp/imgui_stdlib.h
|
||||
imgui/misc/cpp/imgui_stdlib.cpp
|
||||
)
|
||||
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_USE_WCHAR32)
|
||||
target_compile_features(imgui PUBLIC cxx_std_11)
|
||||
|
||||
if(DEFINED CMAKE_CXX_BYTE_ORDER)
|
||||
if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN")
|
||||
# for opengl and sdlrenderer
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_R_SHIFT=24)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_G_SHIFT=16)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_B_SHIFT=8)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_A_SHIFT=0)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_A_MASK=0x000000ff)
|
||||
endif()
|
||||
if (TARGET imgui)
|
||||
return()
|
||||
endif()
|
||||
|
||||
if (TARGET Freetype::Freetype)
|
||||
message(STATUS "Freetype detected, enabling support in imgui")
|
||||
target_sources(imgui PUBLIC
|
||||
imgui/misc/freetype/imgui_freetype.h
|
||||
imgui/misc/freetype/imgui_freetype.cpp
|
||||
if (NOT TARGET imgui)
|
||||
FetchContent_Declare(imgui
|
||||
GIT_REPOSITORY https://github.com/ocornut/imgui.git
|
||||
GIT_TAG f5befd2d29e66809cd1110a152e375a7f1981f06 # v1.91.9b
|
||||
EXCLUDE_FROM_ALL
|
||||
)
|
||||
target_link_libraries(imgui PUBLIC Freetype::Freetype) # public in case of static
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_ENABLE_FREETYPE)
|
||||
|
||||
if (TARGET plutosvg::plutosvg)
|
||||
message(STATUS "plutosvg detected, enabling support in imgui")
|
||||
target_link_libraries(imgui PUBLIC plutosvg::plutosvg) # public in case of static
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_ENABLE_FREETYPE_PLUTOSVG)
|
||||
FetchContent_GetProperties(imgui)
|
||||
if(NOT imgui_POPULATED)
|
||||
FetchContent_MakeAvailable(imgui)
|
||||
|
||||
add_library(imgui STATIC
|
||||
${imgui_SOURCE_DIR}/imgui.h
|
||||
${imgui_SOURCE_DIR}/imgui_internal.h
|
||||
|
||||
${imgui_SOURCE_DIR}/imgui.cpp
|
||||
${imgui_SOURCE_DIR}/imgui_demo.cpp
|
||||
${imgui_SOURCE_DIR}/imgui_draw.cpp
|
||||
${imgui_SOURCE_DIR}/imgui_tables.cpp
|
||||
${imgui_SOURCE_DIR}/imgui_widgets.cpp
|
||||
${imgui_SOURCE_DIR}/imstb_rectpack.h
|
||||
${imgui_SOURCE_DIR}/imstb_textedit.h
|
||||
${imgui_SOURCE_DIR}/imstb_truetype.h
|
||||
|
||||
${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.h
|
||||
${imgui_SOURCE_DIR}/misc/cpp/imgui_stdlib.cpp
|
||||
)
|
||||
target_include_directories(imgui PUBLIC ${imgui_SOURCE_DIR})
|
||||
target_compile_features(imgui PUBLIC cxx_std_11)
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_USE_WCHAR32)
|
||||
|
||||
|
||||
if(DEFINED CMAKE_CXX_BYTE_ORDER)
|
||||
if(CMAKE_CXX_BYTE_ORDER STREQUAL "BIG_ENDIAN")
|
||||
# for opengl and sdlrenderer
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_R_SHIFT=24)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_G_SHIFT=16)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_B_SHIFT=8)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_A_SHIFT=0)
|
||||
target_compile_definitions(imgui PUBLIC IM_COL32_A_MASK=0x000000ff)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (TARGET Freetype::Freetype)
|
||||
message(STATUS "Freetype detected, enabling support in imgui")
|
||||
target_sources(imgui PUBLIC
|
||||
${imgui_SOURCE_DIR}/misc/freetype/imgui_freetype.h
|
||||
${imgui_SOURCE_DIR}/misc/freetype/imgui_freetype.cpp
|
||||
)
|
||||
target_link_libraries(imgui PUBLIC Freetype::Freetype) # public in case of static
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_ENABLE_FREETYPE)
|
||||
|
||||
if (TARGET plutosvg::plutosvg)
|
||||
message(STATUS "plutosvg detected, enabling support in imgui")
|
||||
target_link_libraries(imgui PUBLIC plutosvg::plutosvg) # public in case of static
|
||||
target_compile_definitions(imgui PUBLIC IMGUI_ENABLE_FREETYPE_PLUTOSVG)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(imgui_backend_sdlrenderer3
|
||||
${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.h
|
||||
${imgui_SOURCE_DIR}/backends/imgui_impl_sdlrenderer3.cpp
|
||||
)
|
||||
target_link_libraries(imgui_backend_sdlrenderer3 PUBLIC imgui SDL3::SDL3)
|
||||
|
||||
add_library(imgui_backend_sdl3
|
||||
${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.h
|
||||
${imgui_SOURCE_DIR}/backends/imgui_impl_sdl3.cpp
|
||||
)
|
||||
target_link_libraries(imgui_backend_sdl3 PUBLIC imgui SDL3::SDL3)
|
||||
|
||||
endif()
|
||||
endif()
|
||||
|
||||
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
target_include_directories(imgui PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/imgui") # im sad
|
||||
|
||||
#add_library(imgui_backend_opengl3
|
||||
#"imgui/backends/imgui_impl_opengl3.h"
|
||||
#"imgui/backends/imgui_impl_opengl3.cpp"
|
||||
#)
|
||||
#target_link_libraries(imgui_backend_opengl3 PUBLIC imgui)
|
||||
|
||||
add_library(imgui_backend_sdlrenderer3
|
||||
imgui/backends/imgui_impl_sdlrenderer3.h
|
||||
imgui/backends/imgui_impl_sdlrenderer3.cpp
|
||||
)
|
||||
target_link_libraries(imgui_backend_sdlrenderer3 PUBLIC imgui SDL3::SDL3)
|
||||
|
||||
#add_library(imgui_backend_glfw
|
||||
#"imgui/backends/imgui_impl_glfw.h"
|
||||
#"imgui/backends/imgui_impl_glfw.cpp"
|
||||
#)
|
||||
#target_link_libraries(imgui_backend_glfw PUBLIC imgui glfw)
|
||||
|
||||
add_library(imgui_backend_sdl3
|
||||
imgui/backends/imgui_impl_sdl3.h
|
||||
imgui/backends/imgui_impl_sdl3.cpp
|
||||
)
|
||||
target_link_libraries(imgui_backend_sdl3 PUBLIC imgui SDL3::SDL3)
|
||||
|
Reference in New Issue
Block a user