From 5618da41e81a208ec03ee1c808472ced607c5907 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Fri, 9 May 2025 15:47:19 +0200 Subject: [PATCH] [gobject-introspection] Add test port, revise (#43722) Co-authored-by: Lily Wang <94091114+LilyWangLL@users.noreply.github.com> --- ports/aravis/portfile.cmake | 17 +-- ports/aravis/vcpkg.json | 2 + ports/atk/portfile.cmake | 22 +--- ports/atk/vcpkg.json | 7 +- ports/gdk-pixbuf/portfile.cmake | 18 +-- ports/gdk-pixbuf/vcpkg.json | 6 +- .../0001-g-ir-tool-template.in.patch | 84 ++++++++---- .../0002-cross-build.patch | 63 --------- .../0003-fix-paths.patch | 25 ---- ports/gobject-introspection/portfile.cmake | 123 +++++++++--------- .../vcpkg-port-config.cmake | 69 ++++++++++ ports/gobject-introspection/vcpkg.json | 51 ++++---- ports/graphene/portfile.cmake | 21 +-- ports/graphene/vcpkg.json | 13 +- ports/gtk/portfile.cmake | 18 +-- ports/gtk/vcpkg.json | 7 +- ports/gtk3/portfile.cmake | 23 +--- ports/gtk3/vcpkg.json | 16 +-- ports/harfbuzz/portfile.cmake | 11 +- ports/harfbuzz/vcpkg.json | 17 ++- ports/pango/portfile.cmake | 20 +-- ports/pango/vcpkg.json | 15 ++- scripts/ci.baseline.txt | 3 + scripts/ci.feature.baseline.txt | 41 +++--- .../portfile.cmake | 22 ++++ .../project/CMakeLists.txt | 22 ++++ .../project/main.c | 39 ++++++ .../vcpkg-ci-gobject-introspection/vcpkg.json | 54 ++++++++ versions/a-/aravis.json | 5 + versions/a-/atk.json | 5 + versions/baseline.json | 18 +-- versions/g-/gdk-pixbuf.json | 5 + versions/g-/gobject-introspection.json | 5 + versions/g-/graphene.json | 5 + versions/g-/gtk.json | 5 + versions/g-/gtk3.json | 5 + versions/h-/harfbuzz.json | 5 + versions/p-/pango.json | 5 + 38 files changed, 524 insertions(+), 368 deletions(-) delete mode 100644 ports/gobject-introspection/0002-cross-build.patch delete mode 100644 ports/gobject-introspection/0003-fix-paths.patch create mode 100644 ports/gobject-introspection/vcpkg-port-config.cmake create mode 100644 scripts/test_ports/vcpkg-ci-gobject-introspection/portfile.cmake create mode 100644 scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt create mode 100644 scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c create mode 100644 scripts/test_ports/vcpkg-ci-gobject-introspection/vcpkg.json diff --git a/ports/aravis/portfile.cmake b/ports/aravis/portfile.cmake index 548a6615fd..847e9d1d62 100644 --- a/ports/aravis/portfile.cmake +++ b/ports/aravis/portfile.cmake @@ -25,16 +25,11 @@ else() endif() 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() -set(GLIB_TOOLS_DIR "${CURRENT_HOST_INSTALLED_DIR}/tools/glib") -set(GIR_TOOLS_DIR "${CURRENT_HOST_INSTALLED_DIR}/tools/gobject-introspection") -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOLS_DIR "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection") -endif() - vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" @@ -47,12 +42,12 @@ vcpkg_configure_meson( OPTIONS_DEBUG -Dintrospection=disabled ADDITIONAL_BINARIES - "glib-mkenums='${GLIB_TOOLS_DIR}/glib-mkenums'" - "glib-compile-resources='${GLIB_TOOLS_DIR}/glib-compile-resources${VCPKG_HOST_EXECUTABLE_SUFFIX}'" - "g-ir-compiler='${GIR_TOOLS_DIR}/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}'" - "g-ir-scanner='${GIR_TOOLS_DIR}/g-ir-scanner'" + "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}'" + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) -vcpkg_install_meson() +vcpkg_install_meson(ADD_BIN_TO_PATH) vcpkg_copy_pdbs() diff --git a/ports/aravis/vcpkg.json b/ports/aravis/vcpkg.json index ff52b5c23b..4c8bdba0e8 100644 --- a/ports/aravis/vcpkg.json +++ b/ports/aravis/vcpkg.json @@ -1,6 +1,7 @@ { "name": "aravis", "version": "0.8.34", + "port-version": 1, "description": " A vision library for genicam based cameras.", "homepage": "https://github.com/AravisProject/aravis", "license": "LGPL-2.0-or-later", @@ -26,6 +27,7 @@ }, "introspection": { "description": "Build introspection data", + "supports": "!static", "dependencies": [ "gobject-introspection" ] diff --git a/ports/atk/portfile.cmake b/ports/atk/portfile.cmake index b21704106a..807f5674ce 100644 --- a/ports/atk/portfile.cmake +++ b/ports/atk/portfile.cmake @@ -1,5 +1,3 @@ -vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} - vcpkg_from_gitlab( GITLAB_URL https://gitlab.gnome.org/ OUT_SOURCE_PATH SOURCE_PATH @@ -10,31 +8,23 @@ vcpkg_from_gitlab( ) if("introspection" IN_LIST FEATURES) - list(APPEND OPTIONS_DEBUG -Dintrospection=false) list(APPEND OPTIONS_RELEASE -Dintrospection=true) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=false) -endif() - -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND OPTIONS_RELEASE -Dintrospection=false) endif() vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" - OPTIONS - ${OPTIONS} - OPTIONS_DEBUG - ${OPTIONS_DEBUG} OPTIONS_RELEASE ${OPTIONS_RELEASE} + OPTIONS_DEBUG + -Dintrospection=false ADDITIONAL_BINARIES "glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'" "glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'" - "g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}'" - "g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner'" + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/atk/vcpkg.json b/ports/atk/vcpkg.json index 0beb142093..eeb8f0fb2b 100644 --- a/ports/atk/vcpkg.json +++ b/ports/atk/vcpkg.json @@ -1,13 +1,12 @@ { "name": "atk", "version": "2.38.0", - "port-version": 9, + "port-version": 10, "description": "GNOME Accessibility Toolkit", "homepage": "https://developer.gnome.org/atk/", "license": "LGPL-2.0-or-later", "supports": "!xbox", "dependencies": [ - "gettext", { "name": "gettext", "host": true, @@ -16,6 +15,7 @@ "tools" ] }, + "gettext-libintl", "glib", { "name": "glib", @@ -28,7 +28,8 @@ ], "features": { "introspection": { - "description": "build with introspection", + "description": "Build with introspection", + "supports": "!static", "dependencies": [ "gobject-introspection" ] diff --git a/ports/gdk-pixbuf/portfile.cmake b/ports/gdk-pixbuf/portfile.cmake index d6ce9577af..82d534b447 100644 --- a/ports/gdk-pixbuf/portfile.cmake +++ b/ports/gdk-pixbuf/portfile.cmake @@ -13,10 +13,10 @@ vcpkg_from_gitlab( ) if("introspection" IN_LIST FEATURES) - list(APPEND OPTIONS_DEBUG -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=disabled) + list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() if("png" IN_LIST FEATURES) @@ -49,12 +49,6 @@ if(VCPKG_TARGET_IS_LINUX OR VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_WINDOWS) list(APPEND OPTIONS -Drelocatable=true) endif() -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) -endif() - if(VCPKG_TARGET_IS_WINDOWS) #list(APPEND OPTIONS -Dnative_windows_loaders=true) # Use Windows system components to handle BMP, EMF, GIF, ICO, JPEG, TIFF and WMF images, overriding jpeg and tiff. To build this into gdk-pixbuf, pass in windows" with the other loaders to build in or use "all" with the builtin_loaders option endif() @@ -70,16 +64,16 @@ vcpkg_configure_meson( -Dbuiltin_loaders=all # since it is unclear where loadable plugins should be located; # Comma-separated list of loaders to build into gdk-pixbuf, or "none", or "all" to build all buildable loaders into gdk-pixbuf ${OPTIONS} - OPTIONS_DEBUG - ${OPTIONS_DEBUG} OPTIONS_RELEASE ${OPTIONS_RELEASE} + OPTIONS_DEBUG + -Dintrospection=disabled ADDITIONAL_BINARIES glib-compile-resources='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-compile-resources' glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' - g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}' - g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner' + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/gdk-pixbuf/vcpkg.json b/ports/gdk-pixbuf/vcpkg.json index 4e887197ce..5dd1ed42fe 100644 --- a/ports/gdk-pixbuf/vcpkg.json +++ b/ports/gdk-pixbuf/vcpkg.json @@ -1,7 +1,7 @@ { "name": "gdk-pixbuf", "version": "2.42.12", - "port-version": 3, + "port-version": 4, "description": "Image loading library.", "homepage": "https://gitlab.gnome.org/GNOME/gdk-pixbuf", "license": "LGPL-2.1-or-later", @@ -10,6 +10,7 @@ { "name": "gettext", "host": true, + "default-features": false, "features": [ "tools" ] @@ -32,7 +33,8 @@ ], "features": { "introspection": { - "description": "build with introspection", + "description": "Build with introspection", + "supports": "!static", "dependencies": [ "gobject-introspection" ] diff --git a/ports/gobject-introspection/0001-g-ir-tool-template.in.patch b/ports/gobject-introspection/0001-g-ir-tool-template.in.patch index 912dca2d77..617ecd798b 100644 --- a/ports/gobject-introspection/0001-g-ir-tool-template.in.patch +++ b/ports/gobject-introspection/0001-g-ir-tool-template.in.patch @@ -1,23 +1,61 @@ ---- a/tools/g-ir-tool-template.in 2021-09-17 23:02:42.601052000 +0700 -+++ b/tools/g-ir-tool-template.in 2021-12-29 21:41:52.987141900 +0700 -@@ -59,7 +59,7 @@ - builtins.__dict__['GIR_DIR'] = gir_dir - - # Again, relative paths first so that the installation prefix is relocatable --pylibdir = os.path.abspath(os.path.join(filedir, '..', 'lib', 'gobject-introspection')) -+pylibdir = os.path.abspath(os.path.join(filedir, '..', '..', 'lib', 'gobject-introspection')) - - # EXT_SUFFIX for py3 SO for py2 - py_mod_suffix = sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO') -@@ -91,6 +91,11 @@ - - sys.path.insert(0, pylibdir) - -+pkg_config_path = os.getenv('PKG_CONFIG_PATH', '') -+if pkg_config_path: -+ pkg_config_path = os.pathsep + pkg_config_path -+os.environ['PKG_CONFIG_PATH'] = os.path.normpath(os.path.join(pylibdir, '..', 'pkgconfig')) + pkg_config_path -+ - from giscanner.utils import dll_dirs - dll_dirs = dll_dirs() - dll_dirs.add_dll_dirs(['gio-2.0']) +diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in +index 469af0c..f165a98 100755 +--- a/tools/g-ir-tool-template.in ++++ b/tools/g-ir-tool-template.in +@@ -1,4 +1,4 @@ +-#!@PYTHON_CMD@ ++#!/usr/bin/env python3 + # -*- Mode: Python -*- + # GObject-Introspection - a framework for introspecting GObject libraries + # Copyright (C) 2008 Johan Dahlin +@@ -46,22 +46,20 @@ if debug: + filedir = os.path.dirname(__file__) + + # Try using relative paths first so that the installation prefix is relocatable +-datadir = os.path.abspath(os.path.join(filedir, '..', 'share')) ++datadir = os.path.abspath(os.path.join(filedir, '..', '..', 'share')) + # Fallback to hard-coded paths if the relocatable paths are wrong ++datadir = os.getenv('VCPKG_GI_DATADIR', datadir) + if not os.path.isdir(os.path.join(datadir, 'gir-1.0')): +- datadir = "@datarootdir@" ++ raise Exception('Failed to determine datadir') + + builtins.__dict__['DATADIR'] = datadir + +-gir_dir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@', 'gir-1.0')) +-# Fallback to hard-coded paths if the relocatable paths are wrong +-if not os.path.isdir(gir_dir): +- gir_dir = "@GIR_DIR@" ++gir_dir = os.path.abspath(os.path.join(datadir, 'gir-1.0')) + + builtins.__dict__['GIR_DIR'] = gir_dir + + # Again, relative paths first so that the installation prefix is relocatable +-pylibdir = os.path.abspath(os.path.join(filedir, '..', 'lib', 'gobject-introspection')) ++pylibdir = os.path.abspath(os.path.join(filedir, '..', '..', 'lib', 'gobject-introspection')) + + # EXT_SUFFIX for py3 SO for py2 + py_mod_suffix = sysconfig.get_config_var('EXT_SUFFIX') or sysconfig.get_config_var('SO') +@@ -89,13 +87,19 @@ if not os.path.isfile(os.path.join(pylibdir, 'giscanner', '_giscanner' + py_mod_ + gdump_path = os.path.join(builddir, 'giscanner', 'gdump.c') + if os.path.isfile(gdump_path): + builtins.__dict__['GDUMP_PATH'] = gdump_path + else: +- # Okay, we're not running uninstalled and the prefix is not +- # relocatable. Use hard-coded libdir. +- pylibdir = os.path.join('@libdir@', 'gobject-introspection') ++ raise Exception('Could not determine pylibdir') + + sys.path.insert(0, pylibdir) + ++vcpkg_gi_lib_path = os.getenv('VCPKG_GI_LIBDIR', None) ++vcpkg_gi_lib_path_var = os.getenv('VCPKG_GI_LIBDIR_VAR', None) ++if vcpkg_gi_lib_path_var is not None and vcpkg_gi_lib_path is not None: ++ ld_lib_path = os.getenv(vcpkg_gi_lib_path_var, '') ++ if ld_lib_path != '': ++ ld_lib_path = os.pathsep + ld_lib_path ++ os.environ[vcpkg_gi_lib_path_var] = vcpkg_gi_lib_path + ld_lib_path ++ + from giscanner.utils import dll_dirs + dll_dirs = dll_dirs() + dll_dirs.add_dll_dirs(['gio-2.0']) diff --git a/ports/gobject-introspection/0002-cross-build.patch b/ports/gobject-introspection/0002-cross-build.patch deleted file mode 100644 index 0b5d89c1da..0000000000 --- a/ports/gobject-introspection/0002-cross-build.patch +++ /dev/null @@ -1,63 +0,0 @@ ---- a/gir/meson.build 2021-09-17 23:02:42.502052000 +0700 -+++ b/gir/meson.build 2022-01-05 02:31:25.960457800 +0700 -@@ -42,7 +42,7 @@ - install_data(installed_gir_files, install_dir: girdir) - - scanner_command = [ -- find_program('g-ir-scanner', native: true), -+ find_program('g-ir-scanner'), - '--output=@OUTPUT@', - '--no-libtool', - '--quiet', -@@ -495,6 +495,7 @@ - ) - - typelibs = [] -+gircompiler = find_program('g-ir-compiler') - if get_option('gi_cross_binary_wrapper') != '' - gircompiler_command = [get_option('gi_cross_binary_wrapper'), gircompiler.full_path(), ] - else -@@ -510,7 +511,7 @@ - typelibs += custom_target( - input: gir.get('file'), - output: '@BASENAME@.typelib', -- depends: [gobject_gir, gircompiler, ], -+ depends: [gobject_gir, ], - command: gircompiler_command, - install: true, - install_dir: typelibdir, ---- a/tools/meson.build 2021-09-17 23:02:42.601052000 +0700 -+++ b/tools/meson.build 2022-01-05 02:36:06.103763400 +0700 -@@ -64,7 +64,9 @@ - install: true, - c_args: custom_c_args, - ) --meson.override_find_program('g-ir-compiler', gircompiler) -+if not get_option('gi_cross_use_prebuilt_gi') -+ meson.override_find_program('g-ir-compiler', gircompiler) -+endif - - girgenerate = executable('g-ir-generate', 'generate.c', - dependencies: [ -@@ -74,14 +76,18 @@ - install: true, - c_args: custom_c_args, - ) --meson.override_find_program('g-ir-generate', girgenerate) -+if not get_option('gi_cross_use_prebuilt_gi') -+ meson.override_find_program('g-ir-generate', girgenerate) -+endif - - girinspect = executable('g-ir-inspect', 'g-ir-inspect.c', - dependencies: [ - girepo_dep, - gio_dep, - ], - install: true, - c_args: custom_c_args, - ) --meson.override_find_program('g-ir-inspect', girinspect) -+if not get_option('gi_cross_use_prebuilt_gi') -+ meson.override_find_program('g-ir-inspect', girinspect) -+endif -\ No newline at end of file diff --git a/ports/gobject-introspection/0003-fix-paths.patch b/ports/gobject-introspection/0003-fix-paths.patch deleted file mode 100644 index f5a2510ec7..0000000000 --- a/ports/gobject-introspection/0003-fix-paths.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/tools/g-ir-tool-template.in b/tools/g-ir-tool-template.in -index 75c35a7..499ed01 100644 ---- a/tools/g-ir-tool-template.in -+++ b/tools/g-ir-tool-template.in -@@ -46,7 +46,7 @@ if debug: - filedir = os.path.dirname(__file__) - - # Try using relative paths first so that the installation prefix is relocatable --datadir = os.path.abspath(os.path.join(filedir, '..', 'share')) -+datadir = os.path.abspath(os.path.join(filedir, '..', '..', 'share')) - # Fallback to hard-coded paths if the relocatable paths are wrong - if not os.path.isdir(os.path.join(datadir, 'gir-1.0')): - datadir = "@datarootdir@" -@@ -53,10 +53,7 @@ builtins.__dict__['DATADIR'] = datadir - - builtins.__dict__['DATADIR'] = datadir - --gir_dir = os.path.abspath(os.path.join(filedir, '..', '@gir_dir_prefix@', 'gir-1.0')) --# Fallback to hard-coded paths if the relocatable paths are wrong --if not os.path.isdir(gir_dir): -- gir_dir = "@GIR_DIR@" -+gir_dir = datadir - - builtins.__dict__['GIR_DIR'] = gir_dir - diff --git a/ports/gobject-introspection/portfile.cmake b/ports/gobject-introspection/portfile.cmake index b3d134b2a4..2bb82e9513 100644 --- a/ports/gobject-introspection/portfile.cmake +++ b/ports/gobject-introspection/portfile.cmake @@ -1,6 +1,4 @@ -# vcpkg_from_* is not used because the project uses submodules. -string(REGEX MATCH "^([0-9]*[.][0-9]*)" GI_MAJOR_MINOR "${VERSION}") -set(GI_PATCH 0) +string(REGEX REPLACE "^([0-9]+[.][0-9]+).*\$" "\\1" GI_MAJOR_MINOR "${VERSION}") vcpkg_download_distfile(ARCHIVE URLS "https://download.gnome.org/sources/gobject-introspection/${GI_MAJOR_MINOR}/gobject-introspection-${VERSION}.tar.xz" @@ -13,91 +11,98 @@ vcpkg_extract_source_archive( ARCHIVE "${ARCHIVE}" PATCHES 0001-g-ir-tool-template.in.patch - 0002-cross-build.patch - 0003-fix-paths.patch 0004-fastcall.patch # https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/498 ) -vcpkg_find_acquire_program(FLEX) -vcpkg_find_acquire_program(BISON) +include("${CURRENT_PORT_DIR}/vcpkg-port-config.cmake") +vcpkg_get_gobject_introspection_programs(PYTHON3) -set(OPTIONS_DEBUG -Dbuild_introspection_data=false) -set(OPTIONS_RELEASE -Dbuild_introspection_data=true) -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(PYTHON_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(PYTHON_DIR ${CURRENT_HOST_INSTALLED_DIR}) +set(additional_binaries "") +set(options "") +set(options_release "") - if(VCPKG_CROSSCOMPILING) - # this is work in progress - list(APPEND OPTIONS_RELEASE -Dgi_cross_use_prebuilt_gi=true) - endif() +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + message(STATUS "Static triplet. Not building introspection data.") + list(APPEND options_release -Dbuild_introspection_data=false) + vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) endif() -find_file(INITIAL_PYTHON3 - NAMES "python3${VCPKG_HOST_EXECUTABLE_SUFFIX}" "python${VCPKG_HOST_EXECUTABLE_SUFFIX}" - PATHS "${PYTHON_DIR}/tools/python3" - NO_DEFAULT_PATH - REQUIRED -) -x_vcpkg_get_python_packages(OUT_PYTHON_VAR PYTHON3 - PYTHON_EXECUTABLE "${INITIAL_PYTHON3}" - PYTHON_VERSION "3" - PACKAGES setuptools +vcpkg_find_acquire_program(PKGCONFIG) +vcpkg_find_acquire_program(FLEX) +vcpkg_find_acquire_program(BISON) +list(APPEND additional_binaries + "flex='${FLEX}'" + "bison='${BISON}'" ) +if("cairo" IN_LIST FEATURES) + list(APPEND options_release -Dcairo=enabled) +else() + list(APPEND options_release -Dcairo=disabled) +endif() + vcpkg_configure_meson( SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -Ddoctool=disabled + -Dgtk_doc=false + ${options} OPTIONS_DEBUG - ${OPTIONS_DEBUG} + -Dbuild_introspection_data=false + -Dcairo=disabled OPTIONS_RELEASE - ${OPTIONS_RELEASE} + ${options_release} ADDITIONAL_BINARIES - flex='${FLEX}' - bison='${BISON}' - g-ir-annotation-tool='${CURRENT_HOST_INSTALLED_DIR}/tools/gobject-introspection/g-ir-annotation-tool' - g-ir-compiler='${CURRENT_HOST_INSTALLED_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}' - g-ir-scanner='${CURRENT_HOST_INSTALLED_DIR}/tools/gobject-introspection/g-ir-scanner' - python='${PYTHON3}' + "python='${PYTHON3}'" + ${additional_binaries} ) -vcpkg_host_path_list(APPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") -vcpkg_host_path_list(APPEND ENV{LIB} "${CURRENT_INSTALLED_DIR}/lib") +set(ENV{PKG_CONFIG} "${PKGCONFIG}") +vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig") +# VCPKG_GI_... variables are used by, and scoped to, giscanner +set(ENV{VCPKG_GI_LIBDIR} "${CURRENT_INSTALLED_DIR}/lib") +set(ENV{VCPKG_GI_DATADIR} "${CURRENT_PACKAGES_DIR}/share") +file(MAKE_DIRECTORY "$ENV{VCPKG_GI_DATADIR}/gir-1.0") +if(VCPKG_TARGET_IS_WINDOWS) + set(ENV{VCPKG_GI_LIBDIR_VAR} "LIB") +elseif(VCPKG_TARGET_IS_OSX OR VCPKG_TARGET_IS_IOS) + set(ENV{VCPKG_GI_LIBDIR_VAR} "DYLD_LIBRARY_PATH") +else() + set(ENV{VCPKG_GI_LIBDIR_VAR} "LD_LIBRARY_PATH") +endif() vcpkg_install_meson(ADD_BIN_TO_PATH) - vcpkg_copy_pdbs() - vcpkg_fixup_pkgconfig() -set(GI_TOOLS - g-ir-compiler - g-ir-generate - g-ir-inspect -) -set(GI_SCRIPTS - g-ir-annotation-tool - g-ir-scanner -) +# Cf. https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/517 +if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir") + foreach(lib IN ITEMS GLib-2.0 GObject-2.0 GModule-2.0 Gio-2.0) + file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir/${lib}.gir" DESTINATION "${CURRENT_PACKAGES_DIR}/share/gir-1.0") + file(COPY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/gir/${lib}.typelib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/girepository-1.0") + endforeach() +endif() -vcpkg_copy_tools(TOOL_NAMES ${GI_TOOLS} AUTO_CLEAN) -foreach(script IN LISTS GI_SCRIPTS) - file(READ "${CURRENT_PACKAGES_DIR}/bin/${script}" _contents) - string(REPLACE "#!/usr/bin/env ${PYTHON3}" "#!/usr/bin/env python3" _contents "${_contents}") - string(REPLACE "datadir = \"${CURRENT_PACKAGES_DIR}/share\"" "raise Exception('could not find right path') " _contents "${_contents}") - string(REPLACE "pylibdir = os.path.join('${CURRENT_PACKAGES_DIR}/lib', 'gobject-introspection')" "raise Exception('could not find right path') " _contents "${_contents}") - file(WRITE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}" "${_contents}") - - file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${script}") +file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}") +foreach(script IN ITEMS g-ir-annotation-tool g-ir-scanner) + file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}") file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}") endforeach() +vcpkg_copy_tools(TOOL_NAMES g-ir-compiler g-ir-generate g-ir-inspect AUTO_CLEAN) + +file(GLOB pcfiles "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/*.pc") +foreach(file IN LISTS pcfiles) + vcpkg_replace_string("${file}" [[=${bindir}/g-ir-]] [[=${prefix}/tools/gobject-introspection/g-ir-]]) +endforeach() +# No fixup for debug: Let it fail early as long as we lack debug builds for (windows) python. if(VCPKG_TARGET_IS_WINDOWS) - file(GLOB _pyd_lib_files "${CURRENT_PACKAGES_DIR}/lib/gobject-introspection/giscanner/_giscanner.*.lib") + file(GLOB _pyd_lib_files "${CURRENT_PACKAGES_DIR}/lib/gobject-introspection/giscanner/_giscanner.*.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/gobject-introspection/giscanner/_giscanner.*.lib") file(REMOVE ${_pyd_lib_files}) endif() -file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/${PORT}") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/man") +file(COPY "${CURRENT_PORT_DIR}/vcpkg-port-config.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") + vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/gobject-introspection/vcpkg-port-config.cmake b/ports/gobject-introspection/vcpkg-port-config.cmake new file mode 100644 index 0000000000..57f872855e --- /dev/null +++ b/ports/gobject-introspection/vcpkg-port-config.cmake @@ -0,0 +1,69 @@ +include_guard(GLOBAL) + +function(z_vcpkg_get_gobject_introspection_python out_var) + if(VCPKG_CROSSCOMPILING) + message(STATUS + "Cross build with gobject-introspection. " + "Building and using ${PORT} will fail if the host cannot execute target binaries." + ) + endif() + + set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python3${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + if(VCPKG_TARGET_IS_WINDOWS) + set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python.exe") + endif() + + # Varation of x_vcpkg_get_python_packages, but + # - providing the interpreter for the target + # - using venv also for windows + message(STATUS "Setting up ${TARGET_TRIPLET} python venv which provides setuptools...") + set(venv_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-gir-venv") + file(REMOVE_RECURSE "${venv_path}") + file(MAKE_DIRECTORY "${venv_path}") + + set(python_sub_path /bin) + set(python_venv_options --symlinks) + if(VCPKG_TARGET_IS_WINDOWS) + set(python_sub_path /Scripts) + set(python_venv_options --copies) + endif() + + set(ENV{PYTHONNOUSERSITE} "1") + vcpkg_execute_required_process( + COMMAND "${target_python}" -I -m venv ${python_venv_options} "${venv_path}" + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" + LOGNAME "venv-init-${TARGET_TRIPLET}" + ) + + set(gobject_introspection_python "${venv_path}${python_sub_path}/python${VCPKG_TARGET_EXECUTABLE_SUFFIX}") + set(ENV{VIRTUAL_ENV} "${venv_path}") + unset(ENV{PYTHONHOME}) + unset(ENV{PYTHONPATH}) + vcpkg_execute_required_process( + COMMAND "${gobject_introspection_python}" -I -m pip install setuptools + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}" + LOGNAME "venv-install-setuptools-${TARGET_TRIPLET}" + ) + + message(STATUS "Finished (with ${out_var} at ${gobject_introspection_python})") + set("${out_var}" "${gobject_introspection_python}" PARENT_SCOPE) +endfunction() + +function(vcpkg_get_gobject_introspection_programs) + if("PYTHON3" IN_LIST ARGN) + z_vcpkg_get_gobject_introspection_python(PYTHON3) + set(PYTHON3 "${PYTHON3}" PARENT_SCOPE) + list(REMOVE_ITEM ARGN "PYTHON3") + endif() + if("GIR_COMPILER" IN_LIST ARGN) + set(GIR_COMPILER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_TARGET_EXECUTABLE_SUFFIX}" PARENT_SCOPE) + list(REMOVE_ITEM ARGN "GIR_COMPILER") + endif() + if("GIR_SCANNER" IN_LIST ARGN) + set(GIR_SCANNER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-scanner" PARENT_SCOPE) + list(REMOVE_ITEM ARGN "GIR_SCANNER") + endif() + if(NOT ARGN STREQUAL "") + message(FATAL_ERROR "Unsupported arguments: ${ARGN}") + endif() +endfunction() diff --git a/ports/gobject-introspection/vcpkg.json b/ports/gobject-introspection/vcpkg.json index c2b52de0b5..8c2767aa9d 100644 --- a/ports/gobject-introspection/vcpkg.json +++ b/ports/gobject-introspection/vcpkg.json @@ -1,42 +1,37 @@ { "name": "gobject-introspection", "version": "1.82.0", - "description": "A middleware layer between C libraries (using GObject) and language bindings.", + "port-version": 1, + "description": [ + "A middleware layer between C libraries (using GObject) and language bindings.", + "Building (with) gobject-introspection is based on dynamic library linkage. Static builds of the core feature set are supported only for CI purposes.", + "The g-ir-scanner program runs executables for the target system. This limits actual cross-build support to targets supported by the host CPU." + ], "homepage": "https://gi.readthedocs.io/en/latest/", "license": null, - "supports": "!static & (native | (windows & x86))", + "supports": "!(static & staticcrt)", "dependencies": [ - { - "name": "cairo", - "default-features": false, - "features": [ - "gobject" - ] - }, "glib", - { - "name": "glib", - "host": true - }, - { - "name": "gobject-introspection", - "host": true, - "platform": "!(windows & x86)" - }, "libffi", "python3", - { - "name": "python3", - "host": true, - "platform": "!(windows & x86)" - }, - { - "name": "vcpkg-get-python-packages", - "host": true - }, { "name": "vcpkg-tool-meson", "host": true } - ] + ], + "features": { + "cairo": { + "description": "Install introspection data for cairo.", + "supports": "!static", + "dependencies": [ + { + "name": "cairo", + "default-features": false, + "features": [ + "gobject" + ] + } + ] + } + } } diff --git a/ports/graphene/portfile.cmake b/ports/graphene/portfile.cmake index 9926863462..8c026ed616 100644 --- a/ports/graphene/portfile.cmake +++ b/ports/graphene/portfile.cmake @@ -12,19 +12,10 @@ vcpkg_extract_source_archive( ) if("introspection" IN_LIST FEATURES) - if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static") - message(FATAL_ERROR "Feature introspection currently only supports dynamic build.") - endif() - list(APPEND OPTIONS_DEBUG -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=disabled) -endif() - -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( @@ -35,15 +26,15 @@ vcpkg_configure_meson( -Dtests=false -Dinstalled_tests=false ${OPTIONS} - OPTIONS_DEBUG - ${OPTIONS_DEBUG} 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' - g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}' - g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner' + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/graphene/vcpkg.json b/ports/graphene/vcpkg.json index d332b8b89f..6b29809690 100644 --- a/ports/graphene/vcpkg.json +++ b/ports/graphene/vcpkg.json @@ -1,12 +1,20 @@ { "name": "graphene", "version": "1.10.8", - "port-version": 4, + "port-version": 5, "description": "A thin layer of types for graphic libraries.", "homepage": "https://www.gtk.org/", "license": "MIT", "dependencies": [ - "gettext", + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + }, + "gettext-libintl", "glib", { "name": "glib", @@ -20,6 +28,7 @@ "features": { "introspection": { "description": "build with introspection", + "supports": "!static", "dependencies": [ "gobject-introspection" ] diff --git a/ports/gtk/portfile.cmake b/ports/gtk/portfile.cmake index 124fd6832f..58de5f0afb 100644 --- a/ports/gtk/portfile.cmake +++ b/ports/gtk/portfile.cmake @@ -37,16 +37,10 @@ list(APPEND OPTIONS -Dwin32-backend=${win32}) #Enable the Windows gdk backend (o list(APPEND OPTIONS -Dmacos-backend=${osx}) #Enable the macOS gdk backend (only when building on macOS) if("introspection" IN_LIST FEATURES) - list(APPEND OPTIONS_DEBUG -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=disabled) -endif() - -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( @@ -67,10 +61,10 @@ vcpkg_configure_meson( -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_DEBUG - ${OPTIONS_DEBUG} 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' @@ -78,8 +72,8 @@ vcpkg_configure_meson( 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_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}' - g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner' + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/gtk/vcpkg.json b/ports/gtk/vcpkg.json index f9c5be70c9..bdd85ce6ae 100644 --- a/ports/gtk/vcpkg.json +++ b/ports/gtk/vcpkg.json @@ -1,11 +1,11 @@ { "name": "gtk", "version": "4.16.3", - "port-version": 2, + "port-version": 3, "description": "Portable library for creating graphical user interfaces.", "homepage": "https://www.gtk.org/", "license": "LGPL-2.0-only", - "supports": "!xbox & !(arm64 & windows)", + "supports": "!android & !xbox & !(arm64 & windows)", "dependencies": [ "atk", { @@ -58,7 +58,8 @@ ], "features": { "introspection": { - "description": "build with introspection", + "description": "Build with introspection", + "supports": "!static", "dependencies": [ { "name": "atk", diff --git a/ports/gtk3/portfile.cmake b/ports/gtk3/portfile.cmake index 1198ccbea5..13f2f08889 100644 --- a/ports/gtk3/portfile.cmake +++ b/ports/gtk3/portfile.cmake @@ -25,21 +25,11 @@ vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gdk-pixbuf") vcpkg_add_to_path("${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin") -vcpkg_list(SET ADDITIONAL_BINARIES) if("introspection" IN_LIST FEATURES) - list(APPEND OPTIONS_DEBUG -Dintrospection=false) list(APPEND OPTIONS_RELEASE -Dintrospection=true) - if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR "${CURRENT_INSTALLED_DIR}") - else() - set(GIR_TOOL_DIR "${CURRENT_HOST_INSTALLED_DIR}") - endif() - vcpkg_list(APPEND ADDITIONAL_BINARIES - "g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}'" - "g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner'" - ) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=false) + list(APPEND OPTIONS_RELEASE -Dintrospection=false) endif() vcpkg_configure_meson( @@ -57,17 +47,18 @@ vcpkg_configure_meson( -Dprofiler=false # include tracing support for sysprof -Dtracker3=false # Enable Tracker3 filechooser search -Dcolord=no # Build colord support for the CUPS printing backend - OPTIONS_DEBUG - ${OPTIONS_DEBUG} OPTIONS_RELEASE ${OPTIONS_RELEASE} + OPTIONS_DEBUG + -Dintrospection=false 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}'" - ${ADDITIONAL_BINARIES} + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) # Reduce command line lengths, in particular for static windows builds. @@ -95,4 +86,4 @@ vcpkg_copy_tools(TOOL_NAMES ${GTK_TOOLS} AUTO_CLEAN) file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/etc") file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") -file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/ports/gtk3/vcpkg.json b/ports/gtk3/vcpkg.json index 1f37981528..752672de1e 100644 --- a/ports/gtk3/vcpkg.json +++ b/ports/gtk3/vcpkg.json @@ -1,9 +1,11 @@ { "name": "gtk3", "version": "3.24.43", + "port-version": 1, "description": "Portable library for creating graphical user interfaces.", "homepage": "https://www.gtk.org/", "license": null, + "supports": "!android", "dependencies": [ { "name": "at-spi2-atk", @@ -30,7 +32,6 @@ "name": "gdk-pixbuf", "host": true }, - "gettext", { "name": "gettext", "host": true, @@ -39,6 +40,7 @@ "tools" ] }, + "gettext-libintl", "glib", { "name": "glib", @@ -53,8 +55,8 @@ ], "features": { "introspection": { - "description": "build with introspection", - "supports": "!windows | !static", + "description": "Build with introspection", + "supports": "!static", "dependencies": [ { "name": "atk", @@ -63,14 +65,6 @@ "introspection" ] }, - { - "name": "gdk-pixbuf", - "host": true, - "default-features": false, - "features": [ - "introspection" - ] - }, { "name": "gdk-pixbuf", "default-features": false, diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake index 6e6202b341..67cf332dba 100644 --- a/ports/harfbuzz/portfile.cmake +++ b/ports/harfbuzz/portfile.cmake @@ -59,16 +59,11 @@ endif() if("introspection" IN_LIST FEATURES) list(APPEND OPTIONS_DEBUG -Dgobject=enabled -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dgobject=enabled -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() list(APPEND OPTIONS -Dintrospection=disabled) endif() -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) -endif() - set(cxx_link_libraries "") if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") block(PROPAGATE cxx_link_libraries) @@ -96,8 +91,8 @@ vcpkg_configure_meson( ADDITIONAL_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal' glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums' - g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}' - g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner' + g-ir-compiler='${GIR_COMPILER}' + g-ir-scanner='${GIR_SCANNER}' ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/harfbuzz/vcpkg.json b/ports/harfbuzz/vcpkg.json index 387d03a8eb..b572c19dde 100644 --- a/ports/harfbuzz/vcpkg.json +++ b/ports/harfbuzz/vcpkg.json @@ -1,16 +1,12 @@ { "name": "harfbuzz", "version": "10.2.0", - "port-version": 3, + "port-version": 4, "description": "HarfBuzz OpenType text shaping engine", "homepage": "https://github.com/harfbuzz/harfbuzz", "license": "MIT-Modern-Variant", "supports": "!uwp", "dependencies": [ - { - "name": "gettext", - "platform": "osx" - }, { "name": "vcpkg-tool-meson", "host": true @@ -80,9 +76,16 @@ }, "introspection": { "description": "build with introspection", + "supports": "!static", "dependencies": [ - "glib", - "gobject-introspection" + "gobject-introspection", + { + "name": "harfbuzz", + "default-features": false, + "features": [ + "glib" + ] + } ] } } diff --git a/ports/pango/portfile.cmake b/ports/pango/portfile.cmake index 347fd4ebbc..6c54d96abd 100644 --- a/ports/pango/portfile.cmake +++ b/ports/pango/portfile.cmake @@ -1,4 +1,3 @@ -vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION} vcpkg_from_gitlab( GITLAB_URL https://gitlab.gnome.org/ OUT_SOURCE_PATH SOURCE_PATH @@ -8,18 +7,11 @@ vcpkg_from_gitlab( HEAD_REF master ) - if("introspection" IN_LIST FEATURES) - list(APPEND OPTIONS_DEBUG -Dintrospection=disabled) list(APPEND OPTIONS_RELEASE -Dintrospection=enabled) + vcpkg_get_gobject_introspection_programs(PYTHON3 GIR_COMPILER GIR_SCANNER) else() - list(APPEND OPTIONS -Dintrospection=disabled) -endif() - -if(CMAKE_HOST_WIN32 AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") - set(GIR_TOOL_DIR ${CURRENT_INSTALLED_DIR}) -else() - set(GIR_TOOL_DIR ${CURRENT_HOST_INSTALLED_DIR}) + list(APPEND OPTIONS_RELEASE -Dintrospection=disabled) endif() vcpkg_configure_meson( @@ -33,15 +25,15 @@ vcpkg_configure_meson( -Dfreetype=enabled # Build with freetype support -Dgtk_doc=false #Build API reference for Pango using GTK-Doc ${OPTIONS} - OPTIONS_DEBUG - ${OPTIONS_DEBUG} 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'" - "g-ir-compiler='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_HOST_EXECUTABLE_SUFFIX}'" - "g-ir-scanner='${GIR_TOOL_DIR}/tools/gobject-introspection/g-ir-scanner'" + "g-ir-compiler='${GIR_COMPILER}'" + "g-ir-scanner='${GIR_SCANNER}'" ) vcpkg_install_meson(ADD_BIN_TO_PATH) diff --git a/ports/pango/vcpkg.json b/ports/pango/vcpkg.json index 1fa7086228..91e9a62d2a 100644 --- a/ports/pango/vcpkg.json +++ b/ports/pango/vcpkg.json @@ -1,7 +1,7 @@ { "name": "pango", "version": "1.56.1", - "port-version": 1, + "port-version": 2, "description": "Text and font handling library.", "homepage": "https://ftp.gnome.org/pub/GNOME/sources/pango/", "license": "LGPL-2.0-or-later", @@ -16,7 +16,15 @@ "fontconfig", "freetype", "fribidi", - "gettext", + { + "name": "gettext", + "host": true, + "default-features": false, + "features": [ + "tools" + ] + }, + "gettext-libintl", "glib", { "name": "glib", @@ -37,7 +45,8 @@ ], "features": { "introspection": { - "description": "build with introspection", + "description": "Build with introspection", + "supports": "!static", "dependencies": [ "gobject-introspection", { diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index b172225536..361049abd3 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -391,6 +391,9 @@ glfw3:x64-uwp=fail glibmm:arm64-windows-static-md=fail glibmm:x64-windows-static-md=fail glibmm:x64-windows-static=fail +# needs arm64 host +gobject-introspection:arm64-windows-static-md=fail +gobject-introspection:arm64-windows=fail graphicsmagick:arm64-uwp=fail graphicsmagick:x64-uwp=fail graphviz:arm-neon-android=fail diff --git a/scripts/ci.feature.baseline.txt b/scripts/ci.feature.baseline.txt index b9a62b776c..21574aedb3 100644 --- a/scripts/ci.feature.baseline.txt +++ b/scripts/ci.feature.baseline.txt @@ -144,7 +144,6 @@ gperftools:x64-uwp=fail graphicsmagick(uwp)=fail graphqlparser:arm64-osx=fail # python2 required gsoap = skip # gsoap does not offer stable public source downloads -gtk:x64-windows-static-md=fail gtk:x64-windows-static=fail halide:x64-windows-static=fail hdf5((arm & windows) | uwp) = fail @@ -395,8 +394,6 @@ opusfile:arm-uwp=fail opusfile:x64-uwp=fail paho-mqtt:arm-uwp=fail paho-mqtt:x64-uwp=fail -pango:x64-windows-static-md=fail -pango:x64-windows-static=fail pfring:arm64-osx=fail pfring:x64-osx=fail pixman:arm-uwp=fail @@ -627,6 +624,7 @@ apr-util:arm64-windows = cascade apr-util:x64-uwp = cascade apsi[hexl,log4cplus,zeromq]:x64-uwp = cascade apsi[log4cplus,zeromq]:arm64-uwp = cascade +aravis(uwp) = cascade arb:arm64-uwp = cascade arb:x64-uwp = cascade argtable3:arm64-uwp = cascade @@ -648,7 +646,6 @@ async-mqtt:arm64-uwp = cascade async-mqtt:x64-uwp = cascade atk:arm64-uwp = cascade atk:x64-uwp = cascade -atk[introspection](static) = cascade atkmm:arm64-uwp = cascade atkmm:x64-uwp = cascade atkmm:x64-windows-static = cascade @@ -895,7 +892,6 @@ gdal[hdf5]:arm64-windows = cascade gdcm2:arm64-uwp = cascade gdcm2:arm64-windows = cascade gdcm2:x64-uwp = cascade -gdk-pixbuf[introspection](static | !(native | (windows & x86))) = cascade gdk-pixbuf(uwp) = cascade ginkgo[cuda]:arm64-uwp = cascade ginkgo[cuda]:arm64-windows = cascade @@ -926,6 +922,8 @@ gmsh[mpi]:x64-windows = cascade gmsh[mpi]:x64-windows-static = cascade gmsh[mpi]:x64-windows-static-md = cascade gmsh[mpi,occ]:x86-windows = cascade +gobject-introspection(android) = cascade # from python3 +gobject-introspection(uwp) = cascade # from glib google-cloud-cpp-common:arm64-uwp = cascade google-cloud-cpp-common:x64-uwp = cascade google-cloud-cpp-spanner:arm64-uwp = cascade @@ -936,9 +934,7 @@ gppanel:arm64-uwp = cascade gppanel:x64-uwp = cascade grantlee:arm64-uwp = cascade grantlee:x64-uwp = cascade -graphene:x64-uwp = cascade -graphene[introspection]:arm64-osx = cascade -graphene[introspection]:x64-linux = cascade +graphene(uwp) = cascade graphviz:arm64-uwp = cascade graphviz:x64-uwp = cascade grppi[tbb]:arm64-uwp = cascade @@ -951,15 +947,8 @@ gtk:arm64-uwp = cascade gtk:arm64-windows = cascade gtk:x64-uwp = cascade gtk:x64-windows-static = cascade -gtk[introspection]:arm64-osx = cascade -gtk[introspection]:x64-linux = cascade -gtk[introspection]:x64-windows-static-md = cascade -gtk3:arm64-uwp = cascade -gtk3:x64-uwp = cascade gtk3:x64-windows-static = cascade -gtk3[introspection]:arm64-osx = cascade -gtk3[introspection]:arm64-windows = cascade -gtk3[introspection]:x64-linux = cascade +gtk3(uwp) = cascade gtkmm:arm64-windows = cascade gtkmm:x64-windows-static = cascade gtkmm:x64-windows-static-md = cascade @@ -988,7 +977,6 @@ halide[target-all]:x86-windows = cascade hareflow:arm64-uwp = cascade hareflow:x64-uwp = cascade hareflow:x64-windows-static = cascade -harfbuzz[introspection](static) = cascade hashids:arm64-uwp = cascade hashids:x64-uwp = cascade hdf5[parallel]:arm64-windows = cascade @@ -1650,11 +1638,6 @@ paho-mqttpp3:arm64-uwp = cascade paho-mqttpp3:x64-uwp = cascade pango:arm64-uwp = cascade pango:x64-uwp = cascade -pango[introspection]:arm64-osx = cascade -pango[introspection]:arm64-windows = cascade -pango[introspection]:x64-linux = cascade -pango[introspection]:x64-windows-static = cascade -pango[introspection]:x64-windows-static-md = cascade pangolin[openni2]:arm64-osx = cascade pangolin[openni2]:x64-linux = cascade pangolin[openni2,pybind11,realsense,uvc]:arm64-windows = cascade @@ -2182,8 +2165,7 @@ zyre:x64-uwp = cascade ableton-link[hut](linux) = feature-fails # libportaudiocpp0 must be installed in ci. See https://github.com/microsoft/vcpkg/pull/32144 adios2[python](!uwp) = feature-fails # Could NOT find Python (missing: Python_NumPy_INCLUDE_DIRS NumPy) arrayfire[opencl](windows & !uwp) = feature-fails # build errror: See https://github.com/microsoft/vcpkg/issues/33464 -ashes[core](windows) = combination-fails # CMake Error: INSTALL(EXPORT) given unknown export "AshesRenderers". One render backend must be selected -atk[introspection](windows & arm & !static) = feature-fails # ERROR: Dependency "gobject-introspection-1.0" not found. See https://github.com/microsoft/vcpkg/issues/33751 +ashes[core](windows) = combination-fails # CMake Error: INSTALL(EXPORT) given unknown export "AshesRenderers". One render backend must be selected azure-kinect-sensor-sdk[tool](windows & !uwp) = feature-fails # Waits for https://github.com/microsoft/vcpkg/pull/33231 # boost-python[core](!linux) = combination-fails awlib[graphics] = feature-fails # Broken code. See https://github.com/microsoft/vcpkg/issues/39849 @@ -2209,7 +2191,6 @@ flashlight-cpu = fail # CMake Error: INSTALL(EXPORT) given unknown export "flash flashlight-sequence[openmp](osx) = feature-fails # No openmp on osx freerdp[server](osx) = skip # Uses api removed with macOS 15. Don't get fixed. See https://github.com/FreeRDP/FreeRDP/issues/10558 gdal[netcdf](windows & arm) = feature-fails # gdal_target_link_libraries(): PRIVATE is a mandatory argument. See https://github.com/microsoft/vcpkg/issues/33753 -gdk-pixbuf[introspection](windows & (native | x86) & !static) = feature-fails # python distutils trouble gegl(osx) = fail # meson bug on osx. See https://github.com/microsoft/vcpkg/issues/44411 geogram[graphics] = feature-fails # imgui not found. See https://github.com/microsoft/vcpkg/issues/32421 ginkgo[openmp](osx) = feature-fails # No openmp on osx @@ -2221,7 +2202,6 @@ grpc[codegen](uwp) = feature-fails # linker errors. See https://github.com/micro gstreamer[chromaprint](osx) = feature-fails # see https://github.com/microsoft/vcpkg/issues/31109 gstreamer[openal](osx) = feature-fails # see https://github.com/microsoft/vcpkg/issues/43419 gstreamer[x11-bad](osx) = feature-fails # no x11 on macOS -harfbuzz[introspection](windows & arm & !static) = feature-fails # ERROR: Dependency "gobject-introspection-1.0" not found. See https://github.com/microsoft/vcpkg/issues/33751 hdf5[core,cpp,fortran,map,parallel,szip,threadsafe,tools,utils,zlib](!windows & arm) = combination-fails # some features are mutually exclusive hdf5[fortran](windows) = feature-fails # No fortan compiler highway[contrib](osx) = feature-fails # clang: fatal error: error in backend: Calling convention SVE_VectorCall is unsupported on Darwin. @@ -2302,16 +2282,25 @@ xbitmaps(osx) = fail # error: must install xorg-macros 1.3 or later before runni xerces-c[xmlch-wchar](!windows) = feature-fails # wchar_t must be 16 bit and not 32 # skip +aravis[introspection]:arm64-windows = skip # needs arm64 host +atk[introspection]:arm64-windows = skip # needs arm64 host cairo[x11](osx) = skip # No x11 on osx entt[experimental] = skip # required head build freerdp[x11](osx) = skip # No x11 on osx +gdk-pixbuf[introspection]:arm64-windows = skip # needs arm64 host glad[glx](osx) = skip # No x11 on osx +gobject-introspection(arm64 & windows) = skip # needs arm64 host +graphene[introspection]:arm64-windows = skip # needs arm64 host +gtk3[introspection]:arm64-windows = skip # needs arm64 host +harfbuzz[introspection]:arm64-windows = skip # needs arm64 host hello-imgui[freetype-lunasvg] = skip # see https://github.com/microsoft/vcpkg/issues/44212 hello-imgui[sdl2-binding] = skip # see https://github.com/microsoft/vcpkg/issues/44212 libhdfs3 = skip # never worked https://github.com/microsoft/vcpkg/pull/10021#issuecomment-1595343157 magnum[anyshaderconverter,shadertools,shaderconverter,vk-info] = skip # only available in head build magnum-plugins[cgltfimporter,glslangshaderconverter,ktximageconverter,ktximporter,openexrimageconverter,openexrimporter,spirvtoolsshaderconverter,stbdxtimageconverter] = skip # only available in head build openjpeg[tools] = skip # fails and is deprecated +pango[introspection]:arm64-windows = skip # needs arm64 host +qtbase[xcb,xcb-xlib,xkb,xkbcommon-x11,xlib,xrender](osx) = skip # no x11 on macOS s2n = skip # builds too slow sciter = skip # The sciter port is deprecated by upstream and conflicts with upstream's replacement. shogun = skip # shogun is not compatible with c++17 because it uses dynamic exception specifications but the dependency abseil requires c++17 diff --git a/scripts/test_ports/vcpkg-ci-gobject-introspection/portfile.cmake b/scripts/test_ports/vcpkg-ci-gobject-introspection/portfile.cmake new file mode 100644 index 0000000000..6d23f0af4c --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-gobject-introspection/portfile.cmake @@ -0,0 +1,22 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) + +# Using release typelibs also for debug: +# vcpkg is unable to build the debug variant for MSVC +# as long as it doesn't install the python interpreter +# for the debug CRT. +set(ENV{GI_TYPELIB_PATH} "${CURRENT_INSTALLED_DIR}/lib/girepository-1.0") + +vcpkg_find_acquire_program(PKGCONFIG) + +vcpkg_check_features(OUT_FEATURE_OPTIONS options + FEATURES + run-test RUN_TEST +) + +vcpkg_cmake_configure( + SOURCE_PATH "${CURRENT_PORT_DIR}/project" + OPTIONS + ${options} + "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}" +) +vcpkg_cmake_build(ADD_BIN_TO_PATH) diff --git a/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt b/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt new file mode 100644 index 0000000000..24119e2ee8 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-gobject-introspection/project/CMakeLists.txt @@ -0,0 +1,22 @@ +cmake_minimum_required(VERSION 3.30) +project(gobject-introspection-test C) + +option(RUN_TEST "Run the test program") + +set(CMAKE_SKIP_RPATH FALSE) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(gobject-introspection_pc gobject-introspection-1.0 REQUIRED IMPORTED_TARGET) + +add_executable(main-pkgconfig main.c) +target_link_libraries(main-pkgconfig PRIVATE + PkgConfig::gobject-introspection_pc +) + +add_custom_target(run-test + COMMAND main-pkgconfig + COMMENT "Running the test program" +) +if(RUN_TEST) + set_target_properties(run-test PROPERTIES EXCLUDE_FROM_ALL 0) +endif() diff --git a/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c b/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c new file mode 100644 index 0000000000..d6f41a6bd6 --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-gobject-introspection/project/main.c @@ -0,0 +1,39 @@ +#include +#include + +int main() +{ + GError *error = NULL; + + GIRepository *repository = g_irepository_get_default(); + GSList* paths = g_irepository_get_search_path(); + for (; paths != NULL; paths = paths->next) + g_message("Search path entry: %s\n", (const char*)paths->data); + + GITypelib *typelib = g_irepository_require(repository, "GIRepository", NULL, 0, &error); + if (error) + { + g_error("ERROR: %s\n", error->message); + return 1; + } + + GIBaseInfo *base_info = g_irepository_find_by_name(repository, "GIRepository", "get_minor_version"); + if (!base_info) + { + g_error("ERROR: %s\n", "Could not find GIRepository get_minor_version"); + return 1; + } + + GIArgument retval; + if (!g_function_info_invoke((GIFunctionInfo *)base_info, NULL, 0, NULL, 0, &retval, &error)) + { + g_error("ERROR: %s\n", error->message); + return 1; + } + + g_message("GI Repository minor version: %d", retval.v_uint); + + g_base_info_unref(base_info); + + return 0; +} diff --git a/scripts/test_ports/vcpkg-ci-gobject-introspection/vcpkg.json b/scripts/test_ports/vcpkg-ci-gobject-introspection/vcpkg.json new file mode 100644 index 0000000000..7a1c76197d --- /dev/null +++ b/scripts/test_ports/vcpkg-ci-gobject-introspection/vcpkg.json @@ -0,0 +1,54 @@ +{ + "name": "vcpkg-ci-gobject-introspection", + "version-string": "ci", + "description": "Port to force features of gobject-introspection within CI", + "homepage": "https://github.com/microsoft/vcpkg", + "license": "MIT", + + "dependencies": [ + { + "name": "gobject-introspection", + "default-features": false + }, + { + "name": "vcpkg-cmake", + "host": true + } + ], + "default-features": [ + { + "name": "ports", + "platform": "!static & !(arm & windows)" + }, + { + "name": "run-test", + "platform": "!static & !(arm & windows)" + } + ], + "features": { + "ports": { + "description": "Test introspection in ports", + "supports": "!static", + "dependencies": [ + { + "name": "gobject-introspection", + "default-features": false, + "features": [ + "cairo" + ] + }, + { + "name": "harfbuzz", + "default-features": false, + "features": [ + "introspection" + ] + } + ] + }, + "run-test": { + "supports": "!static", + "description": "Run a test program." + } + } +} diff --git a/versions/a-/aravis.json b/versions/a-/aravis.json index b576a5c209..0333a07f4d 100644 --- a/versions/a-/aravis.json +++ b/versions/a-/aravis.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "1b69f3fe486457e9a5060044c323de95733f16cc", + "version": "0.8.34", + "port-version": 1 + }, { "git-tree": "9de676f9a27354906fbff6a6005d11719e8f09e1", "version": "0.8.34", diff --git a/versions/a-/atk.json b/versions/a-/atk.json index bbba699327..17baf35057 100644 --- a/versions/a-/atk.json +++ b/versions/a-/atk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "13fcc8a6fb7b937d315ad06c223fa85860a3ca5a", + "version": "2.38.0", + "port-version": 10 + }, { "git-tree": "61672c57e8e69aa513f352781240addf75670a4d", "version": "2.38.0", diff --git a/versions/baseline.json b/versions/baseline.json index d626e62815..00c0fc6d00 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -190,7 +190,7 @@ }, "aravis": { "baseline": "0.8.34", - "port-version": 0 + "port-version": 1 }, "arb": { "baseline": "2.21.1", @@ -334,7 +334,7 @@ }, "atk": { "baseline": "2.38.0", - "port-version": 9 + "port-version": 10 }, "atkmm": { "baseline": "2.36.3", @@ -3106,7 +3106,7 @@ }, "gdk-pixbuf": { "baseline": "2.42.12", - "port-version": 3 + "port-version": 4 }, "gegl": { "baseline": "0.4.54", @@ -3282,7 +3282,7 @@ }, "gobject-introspection": { "baseline": "1.82.0", - "port-version": 0 + "port-version": 1 }, "godot-cpp": { "baseline": "4.4", @@ -3334,7 +3334,7 @@ }, "graphene": { "baseline": "1.10.8", - "port-version": 4 + "port-version": 5 }, "graphicsmagick": { "baseline": "1.3.41", @@ -3390,11 +3390,11 @@ }, "gtk": { "baseline": "4.16.3", - "port-version": 2 + "port-version": 3 }, "gtk3": { "baseline": "3.24.43", - "port-version": 0 + "port-version": 1 }, "gtkmm": { "baseline": "4.14.0", @@ -3570,7 +3570,7 @@ }, "harfbuzz": { "baseline": "10.2.0", - "port-version": 3 + "port-version": 4 }, "hash-library": { "baseline": "8", @@ -7090,7 +7090,7 @@ }, "pango": { "baseline": "1.56.1", - "port-version": 1 + "port-version": 2 }, "pangolin": { "baseline": "0.9.3", diff --git a/versions/g-/gdk-pixbuf.json b/versions/g-/gdk-pixbuf.json index 4b9c2e2c6c..c13d7e57e6 100644 --- a/versions/g-/gdk-pixbuf.json +++ b/versions/g-/gdk-pixbuf.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c85870a45af5037596827e00ea1263515dc75fd7", + "version": "2.42.12", + "port-version": 4 + }, { "git-tree": "c4f303035e2c6053afaf4b27574d8aa198ee7215", "version": "2.42.12", diff --git a/versions/g-/gobject-introspection.json b/versions/g-/gobject-introspection.json index 20250907a7..36e612e4d0 100644 --- a/versions/g-/gobject-introspection.json +++ b/versions/g-/gobject-introspection.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "ea77d8c01f088c46520c98ec3682c93148150b80", + "version": "1.82.0", + "port-version": 1 + }, { "git-tree": "2998d48a8661410527703c06b125d198ebb19411", "version": "1.82.0", diff --git a/versions/g-/graphene.json b/versions/g-/graphene.json index 8c53382e9a..522ffdfd19 100644 --- a/versions/g-/graphene.json +++ b/versions/g-/graphene.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "acbd24db3e1526191ff7136667deb6967a7a446b", + "version": "1.10.8", + "port-version": 5 + }, { "git-tree": "63272f3237114a43e4b7114eac99f43fba302cc6", "version": "1.10.8", diff --git a/versions/g-/gtk.json b/versions/g-/gtk.json index 1eec401bea..0ad7f149df 100644 --- a/versions/g-/gtk.json +++ b/versions/g-/gtk.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cdf2d21aa39a6737a3faf10d56636009dadde619", + "version": "4.16.3", + "port-version": 3 + }, { "git-tree": "29d5e39faeb0a2e312574c3077d2726e90e9218a", "version": "4.16.3", diff --git a/versions/g-/gtk3.json b/versions/g-/gtk3.json index ae8568705e..d0db48b5b6 100644 --- a/versions/g-/gtk3.json +++ b/versions/g-/gtk3.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "cfa24f84e35e0408a769693413b6539178a81bb5", + "version": "3.24.43", + "port-version": 1 + }, { "git-tree": "58162a3fa851d5634818c1e4c86980882a8a80d3", "version": "3.24.43", diff --git a/versions/h-/harfbuzz.json b/versions/h-/harfbuzz.json index d694365f0f..a939a7c396 100644 --- a/versions/h-/harfbuzz.json +++ b/versions/h-/harfbuzz.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "e213a343364c5985ede5d4018a7f13969d82d3fc", + "version": "10.2.0", + "port-version": 4 + }, { "git-tree": "0301a6b19f106c2ce2c86b59437a146d7d2752bc", "version": "10.2.0", diff --git a/versions/p-/pango.json b/versions/p-/pango.json index 92858b0892..2808e99766 100644 --- a/versions/p-/pango.json +++ b/versions/p-/pango.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "96a122d4e6ddef24f15a30ada70853135ad43217", + "version": "1.56.1", + "port-version": 2 + }, { "git-tree": "d3f8b88d64fc873b2a9d100cb0040441c80e0227", "version": "1.56.1",