Files
OpenVulkano/3rdParty/imgui/CMakeLists.txt

63 lines
2.1 KiB
CMake

include(FetchContent)
if(NOT DEFINED IMGUI_REPO)
set(IMGUI_REPO https://github.com/ocornut/imgui.git)
endif ()
project(imgui_internal VERSION 1.0 LANGUAGES C CXX)
set(IMGUI_SRC_DIR ${CMAKE_BINARY_DIR}/3rdParty/imgui/imgui-src)
FetchContent_Populate(imgui
GIT_REPOSITORY ${IMGUI_REPO}
GIT_SHALLOW TRUE
GIT_TAG v1.90-docking
SOURCE_DIR ${IMGUI_SRC_DIR}
)
add_library(imgui_internal STATIC
${IMGUI_SRC_DIR}/imgui.cpp
${IMGUI_SRC_DIR}/imgui_draw.cpp
${IMGUI_SRC_DIR}/imgui_demo.cpp
${IMGUI_SRC_DIR}/imgui_tables.cpp
${IMGUI_SRC_DIR}/imgui_widgets.cpp
${IMGUI_SRC_DIR}/backends/imgui_impl_vulkan.cpp
)
find_package(glfw3)
if (glfw3_FOUND)
target_sources(imgui_internal PRIVATE ${IMGUI_SRC_DIR}/backends/imgui_impl_glfw.cpp)
target_link_libraries(imgui_internal PUBLIC glfw)
endif ()
if (APPLE)
# Try to find xcframework of MoltenVK
cmake_path(SET MoltenVK_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/")
cmake_path(SET MoltenVK_XC_path NORMALIZE "$ENV{VULKAN_SDK}/../MoltenVK/MoltenVK.xcframework")
if (EXISTS "${MoltenVK_path}" AND EXISTS "${MoltenVK_XC_path}")
if (EXISTS "${MoltenVK_path}/include")
set(Vulkan_INCLUDE_DIR "${MoltenVK_path}/include")
endif()
target_link_libraries(imgui_internal PRIVATE "${MoltenVK_XC_path}/ios-arm64/libMoltenVK.a")
message("Found MoltenVK xcframework: ${MoltenVK_XC_path}")
endif()
if (NOT ${Vulkan_INCLUDE_DIR})
#find_package(Vulkan REQUIRED COMPONENTS MoltenVK)
#target_link_libraries(imgui_internal PRIVATE Vulkan::MoltenVK)
endif()
else ()
find_package(Vulkan REQUIRED)
target_link_libraries(imgui_internal PRIVATE Vulkan::Vulkan)
endif()
target_include_directories(imgui_internal PUBLIC ${Vulkan_INCLUDE_DIR})
target_include_directories(imgui_internal
PUBLIC
${IMGUI_SRC_DIR}
${IMGUI_SRC_DIR}/backends
)
set_property(TARGET imgui_internal PROPERTY CXX_STANDARD 17)