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/tgui | |
Diffstat (limited to 'vcpkg/ports/tgui')
| -rw-r--r-- | vcpkg/ports/tgui/devendor-stb.patch | 41 | ||||
| -rw-r--r-- | vcpkg/ports/tgui/portfile.cmake | 93 | ||||
| -rw-r--r-- | vcpkg/ports/tgui/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/tgui/vcpkg.json | 67 |
4 files changed, 205 insertions, 0 deletions
diff --git a/vcpkg/ports/tgui/devendor-stb.patch b/vcpkg/ports/tgui/devendor-stb.patch new file mode 100644 index 0000000..2042676 --- /dev/null +++ b/vcpkg/ports/tgui/devendor-stb.patch @@ -0,0 +1,41 @@ +diff --git a/include/TGUI/extlibs/IncludeStbImage.hpp b/include/TGUI/extlibs/IncludeStbImage.hpp +index e19cccb..79d0f0c 100644 +--- a/include/TGUI/extlibs/IncludeStbImage.hpp ++++ b/include/TGUI/extlibs/IncludeStbImage.hpp +@@ -64,7 +64,7 @@ + #else + # define STB_IMAGE_STATIC + # define STB_IMAGE_IMPLEMENTATION +-# include <TGUI/extlibs/stb/stb_image.h> ++# include <stb_image.h> + #endif + + #if defined(__GNUC__) +diff --git a/include/TGUI/extlibs/IncludeStbImageWrite.hpp b/include/TGUI/extlibs/IncludeStbImageWrite.hpp +index 2e23a5b..97ce878 100644 +--- a/include/TGUI/extlibs/IncludeStbImageWrite.hpp ++++ b/include/TGUI/extlibs/IncludeStbImageWrite.hpp +@@ -52,7 +52,7 @@ + #else + # define STB_IMAGE_WRITE_STATIC + # define STB_IMAGE_WRITE_IMPLEMENTATION +-# include <TGUI/extlibs/stb/stb_image_write.h> ++# include <stb_image_write.h> + #endif + + #if defined(__GNUC__) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 6a08458..c575036 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -225,6 +225,10 @@ else() + set_target_properties(tgui PROPERTIES MINSIZEREL_POSTFIX -s) + set_target_properties(tgui PROPERTIES RELWITHDEBINFO_POSTFIX -s) + endif() ++find_path(STB_INCLUDE_DIR stb_image.h REQUIRED) ++target_include_directories(tgui PRIVATE "${STB_INCLUDE_DIR}") ++find_path(TGUI_SYSTEM_STB_IMAGE_WRITE_INCLUDE_DIR stb_image_write.h REQUIRED) ++target_include_directories(tgui SYSTEM PRIVATE "${TGUI_SYSTEM_STB_IMAGE_WRITE_INCLUDE_DIR}") + + if (TGUI_BUILD_AS_CXX_MODULE) + target_sources(tgui diff --git a/vcpkg/ports/tgui/portfile.cmake b/vcpkg/ports/tgui/portfile.cmake new file mode 100644 index 0000000..5439d2e --- /dev/null +++ b/vcpkg/ports/tgui/portfile.cmake @@ -0,0 +1,93 @@ +
+set(BACKEND_LST "sfml" "sdl2" "sdl3" "raylib")
+foreach(BACKEND IN LISTS BACKEND_LST)
+ if(BACKEND IN_LIST FEATURES)
+ set(HAS_BACKEND ON)
+ endif()
+endforeach()
+if(NOT HAS_BACKEND)
+ message(FATAL_ERROR "At least one of the backend features must be selected: ${BACKEND_LST}")
+endif()
+
+if(VCPKG_TARGET_IS_ANDROID)
+ vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
+elseif(VCPKG_TARGET_IS_IOS)
+ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO texus/TGUI
+ REF "v${VERSION}"
+ SHA512 54d46e3604ebe3f3f2ff845da9348152e780a2e67eddc9d6476f5b66b24a3930ced34ac097f4006c9475d7d963d87076dd4ee4cc47aad23b501f14663be5745e
+ HEAD_REF 1.x
+ PATCHES
+ devendor-stb.patch
+)
+
+file(REMOVE_RECURSE "${SOURCE_PATH}/src/Backends/SDL/cmake_modules") # Config available
+file(REMOVE_RECURSE "${SOURCE_PATH}/include/TGUI/extlibs/stb")
+
+set(TGUI_SHARE_PATH "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+set(TGUI_TOOLS_PATH "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+
+string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" TGUI_USE_STATIC_STD_LIBS)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ sfml TGUI_HAS_BACKEND_SFML_GRAPHICS
+ tool TGUI_BUILD_GUI_BUILDER
+ sdl3 TGUI_USE_SDL3
+ raylib TGUI_HAS_BACKEND_RAYLIB
+)
+if(FEATURES MATCHES "sdl")
+ list(APPEND FEATURE_OPTIONS "TGUI_HAS_BACKEND_SDL_RENDERER")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
+ OPTIONS
+ ${FEATURE_OPTIONS}
+ "-DTGUI_MISC_INSTALL_PREFIX=${TGUI_SHARE_PATH}"
+ "-DCMAKE_INSTALL_DOCDIR=${TGUI_SHARE_PATH}"
+ -DTGUI_USE_STATIC_STD_LIBS=${TGUI_USE_STATIC_STD_LIBS}
+ -DTGUI_BACKEND=Custom
+ -DTGUI_BUILD_DOC=OFF
+ -DTGUI_BUILD_FRAMEWORK=OFF
+ -DTGUI_INSTALL_PKGCONFIG_FILES=OFF
+ OPTIONS_DEBUG
+ -DTGUI_BUILD_GUI_BUILDER=OFF
+ MAYBE_UNUSED_VARIABLES
+ TGUI_USE_STATIC_STD_LIBS
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/TGUI)
+vcpkg_copy_pdbs()
+
+if("tool" IN_LIST FEATURES)
+ message(STATUS "Check for: ${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
+ if(EXISTS "${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
+ file(MAKE_DIRECTORY "${TGUI_TOOLS_PATH}")
+ file(RENAME
+ "${TGUI_SHARE_PATH}/gui-builder/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}"
+ "${TGUI_TOOLS_PATH}/gui-builder${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
+ # Need to copy `resources` and `themes` directories
+ file(COPY "${TGUI_SHARE_PATH}/gui-builder/resources" DESTINATION "${TGUI_TOOLS_PATH}")
+ file(COPY "${TGUI_SHARE_PATH}/gui-builder/themes" DESTINATION "${TGUI_TOOLS_PATH}")
+ file(REMOVE_RECURSE "${TGUI_SHARE_PATH}/gui-builder")
+ vcpkg_copy_tool_dependencies("${TGUI_TOOLS_PATH}")
+ endif()
+endif()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+ # Empty folders
+ "${CURRENT_PACKAGES_DIR}/include/TGUI/extlibs/nanosvg"
+ "${CURRENT_PACKAGES_DIR}/include/TGUI/extlibs/glad"
+)
+
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(RENAME "${CURRENT_PACKAGES_DIR}/share/${PORT}/license.txt" "${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright")
diff --git a/vcpkg/ports/tgui/usage b/vcpkg/ports/tgui/usage new file mode 100644 index 0000000..c540a81 --- /dev/null +++ b/vcpkg/ports/tgui/usage @@ -0,0 +1,4 @@ +tgui provides CMake targets: + + find_package(TGUI CONFIG REQUIRED) + target_link_libraries(main PRIVATE TGUI::TGUI) diff --git a/vcpkg/ports/tgui/vcpkg.json b/vcpkg/ports/tgui/vcpkg.json new file mode 100644 index 0000000..a9ef88e --- /dev/null +++ b/vcpkg/ports/tgui/vcpkg.json @@ -0,0 +1,67 @@ +{ + "name": "tgui", + "version": "1.8.0", + "port-version": 2, + "description": "TGUI is an easy to use, cross-platform, C++ GUI for SFML.", + "homepage": "https://tgui.eu", + "license": "Zlib", + "dependencies": [ + "stb", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "default-features": [ + "sfml" + ], + "features": { + "raylib": { + "description": "Build the RAYLIB backend", + "dependencies": [ + "raylib" + ] + }, + "sdl2": { + "description": "Build the SDL backend", + "dependencies": [ + { + "name": "opengl", + "platform": "!android & !ios" + }, + "sdl2", + "sdl2-ttf" + ] + }, + "sdl3": { + "description": "Build the SDL3 backend", + "dependencies": [ + { + "name": "opengl", + "platform": "!android & !ios" + }, + "sdl3", + "sdl3-ttf" + ] + }, + "sfml": { + "description": "Build the SFML backend", + "dependencies": [ + { + "name": "sfml", + "default-features": false, + "features": [ + "graphics" + ] + } + ] + }, + "tool": { + "description": "Build GUI builder" + } + } +} |