aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/imgui-sfml
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/imgui-sfml')
-rw-r--r--vcpkg/ports/imgui-sfml/0001-fix_find_package.patch39
-rw-r--r--vcpkg/ports/imgui-sfml/portfile.cmake34
-rw-r--r--vcpkg/ports/imgui-sfml/usage4
-rw-r--r--vcpkg/ports/imgui-sfml/vcpkg.json21
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
+ }
+ ]
+}