diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/imgui-sfml | |
Diffstat (limited to 'vcpkg/ports/imgui-sfml')
| -rw-r--r-- | vcpkg/ports/imgui-sfml/0001-fix_find_package.patch | 39 | ||||
| -rw-r--r-- | vcpkg/ports/imgui-sfml/portfile.cmake | 34 | ||||
| -rw-r--r-- | vcpkg/ports/imgui-sfml/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/imgui-sfml/vcpkg.json | 21 |
4 files changed, 98 insertions, 0 deletions
diff --git a/vcpkg/ports/imgui-sfml/0001-fix_find_package.patch b/vcpkg/ports/imgui-sfml/0001-fix_find_package.patch new file mode 100644 index 0000000..eb160b0 --- /dev/null +++ b/vcpkg/ports/imgui-sfml/0001-fix_find_package.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7945482..1c91277 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -29,16 +29,7 @@ if(IMGUI_SFML_FIND_SFML) + find_package(SFML 3 REQUIRED COMPONENTS Graphics)
+ endif()
+
+-# ImGui does not provide native support for CMakeLists, workaround for now to have
+-# users specify IMGUI_DIR. Waiting for this PR to get merged...
+-# https://github.com/ocornut/imgui/pull/1713
+-if(NOT IMGUI_DIR)
+- set(IMGUI_DIR "" CACHE PATH "imgui top-level directory")
+- message(FATAL_ERROR "ImGui directory not found. Set IMGUI_DIR to imgui's top-level path (containing 'imgui.h' and other files).\n")
+-endif()
+-
+-# This uses FindImGui.cmake provided in ImGui-SFML repo for now
+-find_package(ImGui 1.91.1 REQUIRED)
++find_package(ImGui CONFIG REQUIRED)
+
+ # These headers will be installed alongside ImGui-SFML
+ set(IMGUI_PUBLIC_HEADERS
+@@ -70,7 +61,7 @@ target_include_directories(ImGui-SFML PUBLIC + $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+-target_link_libraries(ImGui-SFML PUBLIC SFML::Graphics OpenGL::GL)
++target_link_libraries(ImGui-SFML PUBLIC imgui::imgui SFML::Graphics ${OPENGL_LIBRARIES})
+ if(WIN32 AND MINGW)
+ target_link_libraries(ImGui-SFML PUBLIC imm32)
+ endif()
+@@ -113,7 +104,6 @@ target_compile_definitions(ImGui-SFML PUBLIC IMGUI_USER_CONFIG="${IMGUI_SFML_CON + set(IMGUI_SFML_PUBLIC_HEADERS
+ ${PROJECT_SOURCE_DIR}/imgui-SFML.h
+ ${PROJECT_SOURCE_DIR}/imgui-SFML_export.h
+- ${IMGUI_PUBLIC_HEADERS}
+ )
+ if(IMGUI_SFML_USE_DEFAULT_CONFIG OR (NOT DEFINED "${IMGUI_SFML_CONFIG_INSTALL_DIR}"))
+ list(APPEND IMGUI_SFML_PUBLIC_HEADERS "${IMGUI_SFML_CONFIG_DIR}/${IMGUI_SFML_CONFIG_NAME}")
diff --git a/vcpkg/ports/imgui-sfml/portfile.cmake b/vcpkg/ports/imgui-sfml/portfile.cmake new file mode 100644 index 0000000..500725e --- /dev/null +++ b/vcpkg/ports/imgui-sfml/portfile.cmake @@ -0,0 +1,34 @@ +vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # this mirrors ImGui's portfile behavior + +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO sfml/imgui-sfml + REF "v${VERSION}" + SHA512 be02207533b532f10038bb83eb49311e57774dbddd1bac2ebb1789cbdef2abbfa24cee59b8b5889302feba72af1e98a4a1c7ac063e7d815ce1f2ef9bd40cf552 + HEAD_REF master + PATCHES + 0001-fix_find_package.patch +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DCMAKE_CXX_STANDARD=17 +) +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/ImGui-SFML) +file(READ "${CURRENT_PACKAGES_DIR}/share/imgui-sfml/ImGui-SFMLConfig.cmake" cmake_config) +string(PREPEND cmake_config [[ +include(CMakeFindDependencyMacro) +find_dependency(imgui CONFIG) +find_dependency(SFML COMPONENTS Graphics Window System) +]]) +file(WRITE "${CURRENT_PACKAGES_DIR}/share/imgui-sfml/ImGui-SFMLConfig.cmake" "${cmake_config}") + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") diff --git a/vcpkg/ports/imgui-sfml/usage b/vcpkg/ports/imgui-sfml/usage new file mode 100644 index 0000000..6604d95 --- /dev/null +++ b/vcpkg/ports/imgui-sfml/usage @@ -0,0 +1,4 @@ +imgui-sfml provides CMake targets: + + find_package(ImGui-SFML CONFIG REQUIRED) + target_link_libraries(main PRIVATE ImGui-SFML::ImGui-SFML) diff --git a/vcpkg/ports/imgui-sfml/vcpkg.json b/vcpkg/ports/imgui-sfml/vcpkg.json new file mode 100644 index 0000000..04dcb3c --- /dev/null +++ b/vcpkg/ports/imgui-sfml/vcpkg.json @@ -0,0 +1,21 @@ +{ + "name": "imgui-sfml", + "version": "3.0", + "port-version": 2, + "description": "ImGui binding for use with SFML", + "homepage": "https://github.com/eliasdaler/imgui-sfml", + "license": "MIT", + "dependencies": [ + "imgui", + "opengl", + "sfml", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ] +} |