[pango,libgd,atk,gtk3,graphviz] Cleanup, fix static windows builds (#28766)

* [libgd] Fix static builds on windows

* [pango] Cleanup

* Use freetype2.pc with msvc

* Update CI baseline [skip actions]

* [atk] Cleanup, fix static builds

* [gtk3] Cleanup, fix static builds

* [graphviz] Fix static builds

* Update versions

* [libgd] Revert bad substitution

* [graphviz] Plugins

* [graphviz] Plugins

* [libgd] Fix static usage

* [gtk3] versions
This commit is contained in:
Kai Pastor 2023-01-09 23:15:51 +01:00 committed by GitHub
parent 85c4f11f8d
commit 5bb5f3923a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 227 additions and 53 deletions

View File

@ -1,27 +1,31 @@
set(ATK_VERSION 2.38.0)
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.gnome.org/
OUT_SOURCE_PATH SOURCE_PATH
REPO GNOME/atk
REF "${ATK_VERSION}"
REF "${VERSION}"
HEAD_REF master
SHA512 f31951ecbdace6a18fb9f772616137cb8732163b37448fef4daf1af60ba8479c94d498dcdaf4880468c80012c77a446da585926a99704a9a940b80e546080cf3
)
vcpkg_configure_meson(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS -Dintrospection=false
ADDITIONAL_NATIVE_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'
glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
ADDITIONAL_CROSS_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'
glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
OPTIONS
-Dintrospection=false
ADDITIONAL_BINARIES
"glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'"
"glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'"
)
vcpkg_install_meson()
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/atk-1.0/atk/atkmisc.h" "ifdef ATK_STATIC_COMPILATION" "if 1")
endif()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,12 +1,20 @@
{
"name": "atk",
"version": "2.38.0",
"port-version": 3,
"port-version": 4,
"description": "GNOME Accessibility Toolkit",
"homepage": "https://developer.gnome.org/atk/",
"license": "GPL-2.0-only",
"dependencies": [
"gettext",
{
"name": "gettext",
"host": true,
"default-features": false,
"features": [
"tools"
]
},
"glib",
{
"name": "glib",

View File

@ -0,0 +1,5 @@
if(MSVC)
find_package(unofficial-getopt-win32 CONFIG REQUIRED)
set(GETOPT_LIBRARY "unofficial::getopt-win32::getopt" CACHE INTERNAL "vcpkg")
set(GETOPT_RUNTIME_LIBRARY "unused" CACHE INTERNAL "vcpkg")
endif()

View File

@ -0,0 +1,10 @@
diff --git a/lib/gvc/CMakeLists.txt b/lib/gvc/CMakeLists.txt
index b437bde..04fe8e8 100644
--- a/lib/gvc/CMakeLists.txt
+++ b/lib/gvc/CMakeLists.txt
@@ -1,4 +1,4 @@
-add_definitions(-DGVC_EXPORTS -DGVLIBDIR="${LIBRARY_INSTALL_DIR}/graphviz")
+add_definitions(-DGVC_EXPORTS -DGVLIBDIR="")
add_library(gvc SHARED
# Header files

View File

@ -1,3 +1,5 @@
set(VCPKG_POLICY_DLLS_IN_STATIC_LIBRARY enabled) # for plugins
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
vcpkg_from_gitlab(
@ -9,7 +11,9 @@ vcpkg_from_gitlab(
HEAD_REF main
PATCHES
fix-dependencies.patch
no-absolute-paths.patch
select-plugins.patch
static-linkage.patch
)
if(VCPKG_TARGET_IS_OSX)
@ -51,6 +55,7 @@ vcpkg_cmake_configure(
"-DGIT=${GIT}"
"-DPython3_EXECUTABLE=${PYTHON3}"
"-DPKG_CONFIG_EXECUTABLE=${CURRENT_HOST_INSTALLED_DIR}/tools/pkgconf/pkgconf"
"-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake"
-Dinstall_win_dependency_dlls=OFF
-Duse_win_pre_inst_libs=OFF
-Dwith_smyrna=OFF
@ -96,6 +101,8 @@ endif()
if(VCPKG_TARGET_IS_WINDOWS)
file(GLOB plugins "${CURRENT_PACKAGES_DIR}/bin/gvplugin_*")
file(COPY ${plugins} ${plugin_config} DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
else()
file(COPY "${CURRENT_PACKAGES_DIR}/lib/graphviz" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
endif()
file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -0,0 +1,25 @@
diff --git a/plugin/gd/gvrender_gd.c b/plugin/gd/gvrender_gd.c
index 960271c..2494e95 100644
--- a/plugin/gd/gvrender_gd.c
+++ b/plugin/gd/gvrender_gd.c
@@ -259,7 +259,7 @@ static void gdgen_missingfont(char *fontreq) {
#else
#define GD_IMPORT
#endif
-GD_IMPORT extern gdFontPtr gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, gdFontGiant;
+BGD_EXPORT_DATA_PROT extern gdFontPtr gdFontTiny, gdFontSmall, gdFontMediumBold, gdFontLarge, gdFontGiant;
void gdgen_text(gdImagePtr im, pointf spf, pointf epf, int fontcolor, double fontsize, int fontdpi, double fontangle, char *fontname, char *str)
{
diff --git a/plugin/pango/CMakeLists.txt b/plugin/pango/CMakeLists.txt
index 26749af..65d77e4 100644
--- a/plugin/pango/CMakeLists.txt
+++ b/plugin/pango/CMakeLists.txt
@@ -58,6 +58,7 @@ if(CAIRO_FOUND AND PANGOCAIRO_FOUND)
set_target_properties(gvplugin_pango PROPERTIES
VERSION ${GRAPHVIZ_PLUGIN_VERSION}.0.0
SOVERSION ${GRAPHVIZ_PLUGIN_VERSION}
+ LINKER_LANGUAGE CXX # for cairo
)
if(MINGW)

View File

@ -1,6 +1,7 @@
{
"name": "graphviz",
"version-semver": "7.0.0",
"port-version": 1,
"description": "Graph Visualization Tools",
"homepage": "https://graphviz.org/",
"license": "EPL-1.0",

View File

@ -0,0 +1,62 @@
diff --git a/gtk/meson.build b/gtk/meson.build
index 79f4f0d..33a7723 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -1074,6 +1074,7 @@ gtk_query_settings = executable(
'gtk-query-settings.c',
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_query_settings
@@ -1083,6 +1084,7 @@ gtk_builder_tool = executable(
'gtk-builder-tool.c',
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_builder_tool
@@ -1115,6 +1117,7 @@ gtk_update_icon_cache = executable(
extra_update_icon_cache_objs,
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_update_icon_cache
@@ -1125,6 +1128,7 @@ gtk_query_immodules = executable(
'gtkutils.c',
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_query_immodules
@@ -1134,6 +1138,7 @@ gtk_encode_symbolic_svg = executable(
'encodesymbolic.c',
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_encode_symbolic_svg
@@ -1143,6 +1148,7 @@ gtk_launch = executable(
'gtk-launch.c',
c_args: gtk_cargs,
dependencies: libgtk_dep,
+ link_language: 'cpp',
install: true
)
gtk_tools += gtk_launch
diff --git a/meson.build b/meson.build
index 287f0cb..d35106f 100644
--- a/meson.build
+++ b/meson.build
@@ -1,4 +1,4 @@
-project('gtk+-3.0', 'c',
+project('gtk+-3.0', 'c', 'cpp',
version: '3.24.34',
default_options: [
'buildtype=debugoptimized',

View File

@ -6,14 +6,16 @@ if(buildtrees_path_length GREATER warning_length AND CMAKE_HOST_WIN32)
)
endif()
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
vcpkg_from_gitlab(
OUT_SOURCE_PATH SOURCE_PATH
GITLAB_URL https://gitlab.gnome.org
REPO GNOME/gtk
REF 3.24.34
REF "${VERSION}"
SHA512 20a91e30a89070461af06b33829bc723b348806b4a785d0743af8bd4789b55dade24686e08bf1b2f0335240463aacc040134babb0605b809186b15de9cf261e4
PATCHES
0001-build.patch
cairo-cpp-linkage.patch
)
vcpkg_find_acquire_program(PKGCONFIG)
@ -38,28 +40,26 @@ vcpkg_configure_meson(
-Dtracker3=false # Enable Tracker3 filechooser search
-Dcolord=no # Build colord support for the CUPS printing backend
-Dintrospection=false
ADDITIONAL_NATIVE_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_CROSS_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
"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}'"
)
# Reduce command line lengths, in particular for static windows builds.
foreach(dir IN ITEMS "${TARGET_TRIPLET}-dbg" "${TARGET_TRIPLET}-rel")
if(EXISTS "${CURRENT_BUILDTREES_DIR}/${dir}/build.ninja")
vcpkg_replace_string("${CURRENT_BUILDTREES_DIR}/${dir}/build.ninja" "/${dir}/../src/" "/src/")
endif()
endforeach()
vcpkg_install_meson()
vcpkg_copy_pdbs()
vcpkg_fixup_pkgconfig()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
set(GTK_TOOLS
gtk-builder-tool
gtk-encode-symbolic-svg
@ -73,6 +73,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")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,6 +1,7 @@
{
"name": "gtk3",
"version": "3.24.34",
"port-version": 1,
"description": "Portable library for creating graphical user interfaces.",
"homepage": "https://www.gtk.org/",
"license": null,

View File

@ -0,0 +1,3 @@
if(NOT BUILD_SHARED_LIBS)
add_definitions(-DNONDLL)
endif()

View File

@ -0,0 +1,15 @@
diff --git a/src/gd.h b/src/gd.h
index 3056039..8a7608a 100644
--- a/src/gd.h
+++ b/src/gd.h
@@ -62,6 +62,10 @@ extern "C" {
# else
# define BGD_EXPORT_DATA_PROT __declspec(dllimport)
# endif
+# ifdef NONDLL
+# undef BGD_EXPORT_DATA_PROT
+# define BGD_EXPORT_DATA_PROT
+# endif
# endif
# define BGD_STDCALL __stdcall
# define BGD_EXPORT_DATA_IMPL

View File

@ -8,6 +8,7 @@ vcpkg_from_github(
control-build.patch
fix-dependencies.cmake
fix_msvc_build.patch
fix-static-usage.patch
)
# Delete vendored Find modules
@ -40,12 +41,16 @@ vcpkg_cmake_configure(
OPTIONS
${FEATURE_OPTIONS}
-DBUILD_STATIC_LIBS=${BUILD_STATIC}
"-DCMAKE_PROJECT_INCLUDE=${CMAKE_CURRENT_LIST_DIR}/cmake-project-include.cmake"
OPTIONS_DEBUG
-DENABLE_TOOLS=OFF
)
vcpkg_cmake_install()
vcpkg_copy_pdbs()
if(BUILD_STATIC)
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/gd.h" "ifdef NONDLL" "if 1")
endif()
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
string(REPLACE "_dynamic" "" suffix "_${VCPKG_LIBRARY_LINKAGE}")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gdlib.pc" " -lgd" " -llibgd${suffix}")

View File

@ -1,7 +1,7 @@
{
"name": "libgd",
"version-semver": "2.3.3",
"port-version": 1,
"port-version": 2,
"description": "Open source code library for the dynamic creation of images by programmers.",
"homepage": "https://github.com/libgd/libgd",
"license": "GD",

View File

@ -0,0 +1,13 @@
diff --git a/meson.build b/meson.build
index 723e0c2..c348730 100644
--- a/meson.build
+++ b/meson.build
@@ -312,7 +312,7 @@ endif
# The first version of freetype with a pkg-config file is 2.1.5,
# CMake uses 'freetype' rather than 'freetype2' for the package name
-freetype_package_name = cc.get_argument_syntax() == 'msvc' ? \
+freetype_package_name = false ? \
'freetype' : 'freetype2'
freetype_dep = dependency(freetype_package_name,

View File

@ -1,14 +1,17 @@
vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
vcpkg_from_gitlab(
GITLAB_URL https://gitlab.gnome.org/
OUT_SOURCE_PATH SOURCE_PATH
REPO GNOME/pango
REF 3d3f165e77178b630d7dc2b733e64af513c99f5f #v1.50.12
SHA512 02ddcd0be05d6c8a84f186e6ea5c64019e34922480769f9b8e6e6883dd9d30b7d473681b6dbdf84c5a7e592f0d7bf37984adf2c9b40f37d6207b4bf40bdeaa7b
HEAD_REF master # branch name
REF "${VERSION}"
SHA512 30be64784fac2539741c5e085ed0cf515fdd2044e71b6c08121dfb838e50d1a31f4f9e53d9869b65aa1fa246ab5cc1bec18503a08dcf0337aece84290472e336
HEAD_REF master
PATCHES
freetype2-pc.patch
)
vcpkg_configure_meson(
SOURCE_PATH ${SOURCE_PATH}
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-Dintrospection=disabled # Build the GObject introspection data for Pango
-Dfontconfig=enabled # Build with FontConfig support.
@ -18,10 +21,9 @@ vcpkg_configure_meson(
-Dxft=disabled # Build with xft support
-Dfreetype=enabled # Build with freetype support
-Dgtk_doc=false #Build API reference for Pango using GTK-Doc
ADDITIONAL_NATIVE_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'
glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
ADDITIONAL_CROSS_BINARIES glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'
glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'
ADDITIONAL_BINARIES
"glib-genmarshal='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-genmarshal'"
"glib-mkenums='${CURRENT_HOST_INSTALLED_DIR}/tools/glib/glib-mkenums'"
)
vcpkg_install_meson()
@ -30,13 +32,4 @@ vcpkg_copy_pdbs()
vcpkg_copy_tools(TOOL_NAMES pango-view pango-list pango-segmentation AUTO_CLEAN)
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/pango.pc")
if(EXISTS "${_file}")
vcpkg_replace_string("${_file}" [[-I"${includedir}/pango-1.0"]] [[-I"${includedir}/pango-1.0" -I"${includedir}/harfbuzz"]])
endif()
set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/pango.pc")
if(EXISTS "${_file}")
vcpkg_replace_string("${_file}" [[-I"${includedir}/pango-1.0"]] [[-I"${includedir}/pango-1.0" -I"${includedir}/harfbuzz"]])
endif()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)

View File

@ -1,6 +1,7 @@
{
"name": "pango",
"version": "1.50.12",
"port-version": 1,
"description": "Text and font handling library.",
"homepage": "https://ftp.gnome.org/pub/GNOME/sources/pango/",
"license": "LGPL-2.0-only",

View File

@ -779,8 +779,6 @@ opusfile:arm-uwp=fail
opusfile:x64-uwp=fail
paho-mqtt:arm-uwp=fail
paho-mqtt:x64-uwp=fail
pango:x64-windows-static=fail
pango:x64-windows-static-md=fail
pfring:x64-osx=fail
pfring:arm64-osx=fail
# pfring on Linux currently fails because its build scripts enable warnings as

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "849d0f35a03bea3d5871f8e8bbaae5d476f20798",
"version": "2.38.0",
"port-version": 4
},
{
"git-tree": "648ef40c1a892940c1a4c501123cafacd86e4f5a",
"version": "2.38.0",

View File

@ -238,7 +238,7 @@
},
"atk": {
"baseline": "2.38.0",
"port-version": 3
"port-version": 4
},
"atkmm": {
"baseline": "2.36.1",
@ -2802,7 +2802,7 @@
},
"graphviz": {
"baseline": "7.0.0",
"port-version": 0
"port-version": 1
},
"greatest": {
"baseline": "1.5.0",
@ -2846,7 +2846,7 @@
},
"gtk3": {
"baseline": "3.24.34",
"port-version": 0
"port-version": 1
},
"gtkmm": {
"baseline": "4.6.0",
@ -3826,7 +3826,7 @@
},
"libgd": {
"baseline": "2.3.3",
"port-version": 1
"port-version": 2
},
"libgeotiff": {
"baseline": "1.7.1",
@ -5750,7 +5750,7 @@
},
"pango": {
"baseline": "1.50.12",
"port-version": 0
"port-version": 1
},
"pangolin": {
"baseline": "0.8",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "2a730e87b6af42e6fbf3af0fc7e5c4dc6785e9df",
"version-semver": "7.0.0",
"port-version": 1
},
{
"git-tree": "b726ae0118ef489c3588be36c8542274c1233a05",
"version-semver": "7.0.0",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "dfc90d235f5a782299be10c4ce655ce95622b3a2",
"version": "3.24.34",
"port-version": 1
},
{
"git-tree": "91d648bc4cff36c2ac289cff836ece2875566e2b",
"version": "3.24.34",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f08df1a1ddb937d5f782f9c84cdb375e6633dbdb",
"version-semver": "2.3.3",
"port-version": 2
},
{
"git-tree": "3198a57128bcffbbd79213ff2aa000c859483b68",
"version-semver": "2.3.3",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c6e7634fcf1696b43f8a6ec38db946b5dd279b7c",
"version": "1.50.12",
"port-version": 1
},
{
"git-tree": "db89d2912edfafb5bb63fd34e5a774ae8f526630",
"version": "1.50.12",