aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/tgui
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/tgui')
-rw-r--r--vcpkg/ports/tgui/devendor-stb.patch41
-rw-r--r--vcpkg/ports/tgui/portfile.cmake93
-rw-r--r--vcpkg/ports/tgui/usage4
-rw-r--r--vcpkg/ports/tgui/vcpkg.json67
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"
+ }
+ }
+}