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/gtk | |
Diffstat (limited to 'vcpkg/ports/gtk')
| -rw-r--r-- | vcpkg/ports/gtk/0001-build.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/gtk/fix_vulkan_enabled.patch | 12 | ||||
| -rw-r--r-- | vcpkg/ports/gtk/portfile.cmake | 103 | ||||
| -rw-r--r-- | vcpkg/ports/gtk/vcpkg.json | 96 |
4 files changed, 224 insertions, 0 deletions
diff --git a/vcpkg/ports/gtk/0001-build.patch b/vcpkg/ports/gtk/0001-build.patch new file mode 100644 index 0000000..40e3529 --- /dev/null +++ b/vcpkg/ports/gtk/0001-build.patch @@ -0,0 +1,13 @@ +diff --git a/meson.build b/meson.build +index 5efd8a9..d51af19 100644 +--- a/meson.build ++++ b/meson.build +@@ -857,7 +857,7 @@ subdir('po') + + subdir('docs/reference') + +-if not meson.is_cross_build() ++if false + gnome.post_install( + glib_compile_schemas: true, + gio_querymodules: gio_module_dirs, diff --git a/vcpkg/ports/gtk/fix_vulkan_enabled.patch b/vcpkg/ports/gtk/fix_vulkan_enabled.patch new file mode 100644 index 0000000..c620959 --- /dev/null +++ b/vcpkg/ports/gtk/fix_vulkan_enabled.patch @@ -0,0 +1,12 @@ +diff --git a/meson.build b/meson.build +index 5ade7c2..9f48161 100644 +--- a/meson.build ++++ b/meson.build +@@ -123,7 +123,6 @@ os_unix = not os_win32 + + if os_darwin + wayland_enabled = false +- vulkan_enabled = false + else + macos_enabled = false + endif diff --git a/vcpkg/ports/gtk/portfile.cmake b/vcpkg/ports/gtk/portfile.cmake new file mode 100644 index 0000000..58de5f0 --- /dev/null +++ b/vcpkg/ports/gtk/portfile.cmake @@ -0,0 +1,103 @@ +# It installs only shared libs, regardless build type. +vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) + +vcpkg_from_gitlab( + GITLAB_URL https://gitlab.gnome.org/ + OUT_SOURCE_PATH SOURCE_PATH + REPO GNOME/gtk + REF ${VERSION} + SHA512 2e2d3135ebf8cb176a4e5e6f1faa26ae9ea5c3e2441e2c820372a76b78e641f207257600d6a207aa05883e04f29fac1452673bffa0395789b8e482cc6b204673 + HEAD_REF master # branch name + PATCHES + 0001-build.patch + fix_vulkan_enabled.patch +) + +vcpkg_find_acquire_program(PKGCONFIG) +get_filename_component(PKGCONFIG_DIR "${PKGCONFIG}" DIRECTORY ) +vcpkg_add_to_path("${PKGCONFIG_DIR}") # Post install script runs pkg-config so it needs to be on PATH +vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/glib/") + +set(x11 false) +set(win32 false) +set(osx false) +if(VCPKG_TARGET_IS_LINUX) + set(OPTIONS -Dwayland-backend=false) # CI missing at least wayland-protocols + set(x11 true) + # Enable the wayland gdk backend (only when building on Unix except for macOS) +elseif(VCPKG_TARGET_IS_WINDOWS) + set(win32 true) +elseif(VCPKG_TARGET_IS_OSX) + set(osx true) +endif() + +list(APPEND OPTIONS -Dx11-backend=${x11}) #Enable the X11 gdk backend (only when building on Unix) +list(APPEND OPTIONS -Dbroadway-backend=false) #Enable the broadway (HTML5) gdk backend +list(APPEND OPTIONS -Dwin32-backend=${win32}) #Enable the Windows gdk backend (only when building on Windows) +list(APPEND OPTIONS -Dmacos-backend=${osx}) #Enable the macOS gdk backend (only when building on macOS) + +if("introspection" IN_LIST FEATURES) + list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) +else() + list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) +endif() + +vcpkg_configure_meson( + SOURCE_PATH ${SOURCE_PATH} + OPTIONS + ${OPTIONS} + -Dbuild-demos=false + -Dbuild-testsuite=false + -Dbuild-examples=false + -Dbuild-tests=false + -Ddocumentation=false + -Dman-pages=false + -Dmedia-gstreamer=disabled # Build the gstreamer media backend + -Dprint-cups=disabled # Build the cups print backend + -Dvulkan=disabled # Enable support for the Vulkan graphics API + -Dcloudproviders=disabled # Enable the cloudproviders support + -Dsysprof=disabled # include tracing support for sysprof + -Dtracker=disabled # Enable Tracker3 filechooser search + -Dcolord=disabled # Build colord support for the CUPS printing backend + -Df16c=disabled # Enable F16C fast paths (requires F16C) + OPTIONS_RELEASE + ${OPTIONS_RELEASE} + OPTIONS_DEBUG + -Dintrospection=disabled + ADDITIONAL_BINARIES + glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' + glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' + glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}' + gdbus-codegen='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/gdbus-codegen' + glib-compile-schemas='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-schemas${VCPKG_HOST_EXECUTABLE_SUFFIX}' + sassc='${CURRENT_HOST_INSTALLED_DIR}/tools/sassc/bin/sassc${VCPKG_HOST_EXECUTABLE_SUFFIX}' + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" +) + +vcpkg_install_meson(ADD_BIN_TO_PATH) + +vcpkg_copy_pdbs() + +vcpkg_fixup_pkgconfig() + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") + +set(TOOL_NAMES gtk4-builder-tool + gtk4-encode-symbolic-svg + gtk4-path-tool + gtk4-query-settings + gtk4-rendernode-tool + gtk4-update-icon-cache + gtk4-image-tool) +if(VCPKG_TARGET_IS_LINUX) + list(APPEND TOOL_NAMES gtk4-launch) +endif() +vcpkg_copy_tools(TOOL_NAMES ${TOOL_NAMES} AUTO_CLEAN) + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() diff --git a/vcpkg/ports/gtk/vcpkg.json b/vcpkg/ports/gtk/vcpkg.json new file mode 100644 index 0000000..bdd85ce --- /dev/null +++ b/vcpkg/ports/gtk/vcpkg.json @@ -0,0 +1,96 @@ +{ + "name": "gtk", + "version": "4.16.3", + "port-version": 3, + "description": "Portable library for creating graphical user interfaces.", + "homepage": "https://www.gtk.org/", + "license": "LGPL-2.0-only", + "supports": "!android & !xbox & !(arm64 & windows)", + "dependencies": [ + "atk", + { + "name": "cairo", + "default-features": false, + "features": [ + "gobject" + ] + }, + { + "name": "cairo", + "default-features": false, + "features": [ + "x11" + ], + "platform": "linux" + }, + "gdk-pixbuf", + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + }, + "gettext-libintl", + "glib", + { + "name": "glib", + "host": true + }, + "graphene", + { + "name": "harfbuzz", + "features": [ + "glib" + ] + }, + "libepoxy", + "pango", + { + "name": "sassc", + "host": true + }, + { + "name": "vcpkg-tool-meson", + "host": true + } + ], + "features": { + "introspection": { + "description": "Build with introspection", + "supports": "!static", + "dependencies": [ + { + "name": "atk", + "default-features": false, + "features": [ + "introspection" + ] + }, + { + "name": "gdk-pixbuf", + "default-features": false, + "features": [ + "introspection" + ] + }, + "gobject-introspection", + { + "name": "graphene", + "default-features": false, + "features": [ + "introspection" + ] + }, + { + "name": "pango", + "default-features": false, + "features": [ + "introspection" + ] + } + ] + } + } +} |