aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/hello-imgui/portfile.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/hello-imgui/portfile.cmake')
-rw-r--r--vcpkg/ports/hello-imgui/portfile.cmake112
1 files changed, 112 insertions, 0 deletions
diff --git a/vcpkg/ports/hello-imgui/portfile.cmake b/vcpkg/ports/hello-imgui/portfile.cmake
new file mode 100644
index 0000000..073f3ea
--- /dev/null
+++ b/vcpkg/ports/hello-imgui/portfile.cmake
@@ -0,0 +1,112 @@
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY) # this mirrors ImGui's portfile behavior
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO pthom/hello_imgui
+ REF "v${VERSION}"
+ SHA512 b44741e27278974f6a545a3143abd18027d98503cc912085e08528c467197fb208d2d4876e483f74e518f3dfc14d12c3579e379b9939dc364a1fff4ee98bb8f5
+ HEAD_REF master
+ PATCHES
+ cmake-config.diff
+ imgui-test-engine.diff
+ # PR has been merged into https://github.com/pthom/hello_imgui/pull/142. This patch should not be needed in the next release.
+ support-imgui-1_91_9.patch
+)
+file(REMOVE_RECURSE
+ "${SOURCE_PATH}/external/imgui"
+ "${SOURCE_PATH}/external/nlohmann_json"
+ "${SOURCE_PATH}/external/OpenGL_Loaders"
+ "${SOURCE_PATH}/external/stb_hello_imgui/stb_image.h"
+ "${SOURCE_PATH}/external/stb_hello_imgui/stb_image_write.h"
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS options
+ FEATURES
+ # "target platforms"
+ opengl3-binding HELLOIMGUI_HAS_OPENGL3
+ metal-binding HELLOIMGUI_HAS_METAL
+ experimental-vulkan-binding HELLOIMGUI_HAS_VULKAN
+ experimental-dx11-binding HELLOIMGUI_HAS_DIRECTX11
+ experimental-dx12-binding HELLOIMGUI_HAS_DIRECTX12
+ # "platform backends"
+ glfw-binding HELLOIMGUI_USE_GLFW3
+ # sdl2-binding HELLOIMGUI_USE_SDL2 # removed with imgui[sdl2-binding]
+ # other
+ test-engine HELLOIMGUI_WITH_TEST_ENGINE
+)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${options}
+ -DHELLO_IMGUI_IMGUI_SHARED=OFF
+ -DHELLOIMGUI_BUILD_DEMOS=OFF
+ -DHELLOIMGUI_BUILD_IMGUI=OFF
+ -DHELLOIMGUI_FETCH_FORBIDDEN=ON
+ -DHELLOIMGUI_FREETYPE_STATIC=OFF
+ -DHELLOIMGUI_MACOS_NO_BUNDLE=OFF
+ -DHELLOIMGUI_USE_IMGUI_CMAKE_PACKAGE=ON
+ -DHELLOIMGUI_WIN32_NO_CONSOLE=ON
+ -DHELLOIMGUI_WIN32_AUTO_WINMAIN=ON
+ -DCMAKE_REQUIRE_FIND_PACKAGE_glad=ON
+ -DCMAKE_REQUIRE_FIND_PACKAGE_nlohmann_json=ON
+ MAYBE_UNUSED_VARIABLES
+ CMAKE_REQUIRE_FIND_PACKAGE_glad
+ HELLOIMGUI_WIN32_NO_CONSOLE
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(CONFIG_PATH "lib/cmake/hello_imgui" PACKAGE_NAME "hello-imgui")
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ "${CURRENT_PACKAGES_DIR}/share/hello-imgui/hello_imgui_cmake/ios-cmake"
+)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+if (NOT HELLOIMGUI_HAS_OPENGL3
+ AND NOT HELLOIMGUI_HAS_METAL
+ AND NOT HELLOIMGUI_HAS_VULKAN
+ AND NOT HELLOIMGUI_HAS_DIRECTX11
+ AND NOT HELLOIMGUI_HAS_DIRECTX12)
+ set(no_rendering_backend TRUE)
+endif()
+if (NOT HELLOIMGUI_USE_GLFW3
+ AND NOT HELLOIMGUI_USE_SDL2)
+ set(no_platform_backend TRUE)
+endif()
+if (no_rendering_backend OR no_platform_backend)
+ file(APPEND "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" "
+ ########################################################################
+ !!!! WARNING !!!!!
+ !!!! Installed hello-imgui without a viable backend !!!!!
+ ########################################################################
+
+ When installing hello-imgui, you should specify:
+
+ - At least one (or more) rendering backend (OpenGL3, Metal, Vulkan, DirectX11, DirectX12)
+ Make your choice according to your needs and your target platforms, between:
+ opengl3-binding # This is the recommended choice, especially for beginners
+ metal-binding # Apple only, advanced users only
+ experimental-vulkan-binding # Advanced users only
+ experimental-dx11-binding # Windows only, still experimental
+ experimental-dx12-binding # Windows only, advanced users only, still experimental
+
+ - At least one (or more) platform backend (Glfw3*):
+ Make your choice according to your needs and your target platforms, between:
+ glfw-binding
+ *) This port currently doesn't offer an SDL platform backend.
+
+ For example, you could use:
+ vcpkg install \"hello-imgui[opengl3-binding,glfw-binding]\"
+
+ ########################################################################
+ !!!! WARNING !!!!!
+ !!!! Installed hello-imgui without a viable backend !!!!!
+ ########################################################################
+ ")
+endif()
+
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")