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/xcb-util-wm | |
Diffstat (limited to 'vcpkg/ports/xcb-util-wm')
| -rw-r--r-- | vcpkg/ports/xcb-util-wm/build.patch | 51 | ||||
| -rw-r--r-- | vcpkg/ports/xcb-util-wm/portfile.cmake | 30 | ||||
| -rw-r--r-- | vcpkg/ports/xcb-util-wm/vcpkg.json | 14 |
3 files changed, 95 insertions, 0 deletions
diff --git a/vcpkg/ports/xcb-util-wm/build.patch b/vcpkg/ports/xcb-util-wm/build.patch new file mode 100644 index 0000000..1b72f5b --- /dev/null +++ b/vcpkg/ports/xcb-util-wm/build.patch @@ -0,0 +1,51 @@ +diff --git a/ewmh/ewmh.c.m4 b/ewmh/ewmh.c.m4 +index b986105f6..a0ce37c2a 100644 +--- a/ewmh/ewmh.c.m4 ++++ b/ewmh/ewmh.c.m4 +@@ -45,7 +45,7 @@ + + #include <sys/types.h> + +-#define ssizeof(foo) (ssize_t)sizeof(foo) ++#define ssizeof(foo) (ptrdiff_t)sizeof(foo) + #define countof(foo) (ssizeof(foo) / ssizeof(foo[0])) + + /** +@@ -1119,12 +1119,13 @@ xcb_ewmh_append_wm_icon_checked(xcb_ewmh_connection_t *ewmh, + uint32_t img_len, uint32_t *img) + { + const uint32_t data_len = img_len + 2; +- uint32_t data[data_len]; ++ uint32_t *data = (uint32_t*)malloc(data_len*sizeof(uint32_t)); + +- set_wm_icon_data(data, width, height, img_len, img); +- +- return xcb_ewmh_set_wm_icon_checked(ewmh, XCB_PROP_MODE_APPEND, window, +- data_len, data); ++ set_wm_icon_data(data, width, height, img_len, img); ++ const xcb_void_cookie_t res = xcb_ewmh_set_wm_icon_checked(ewmh, XCB_PROP_MODE_APPEND, window, ++ data_len, data); ++ free(data); ++ return res; + } + + xcb_void_cookie_t +@@ -1134,12 +1135,13 @@ xcb_ewmh_append_wm_icon(xcb_ewmh_connection_t *ewmh, + uint32_t img_len, uint32_t *img) + { + const uint32_t data_len = img_len + 2; +- uint32_t data[data_len]; +- +- set_wm_icon_data(data, width, height, img_len, img); ++ uint32_t *data = (uint32_t*)malloc(data_len*sizeof(uint32_t)); + +- return xcb_ewmh_set_wm_icon(ewmh, XCB_PROP_MODE_APPEND, window, +- data_len, data); ++ set_wm_icon_data(data, width, height, img_len, img); ++ const xcb_void_cookie_t res = xcb_ewmh_set_wm_icon(ewmh, XCB_PROP_MODE_APPEND, window, ++ data_len, data); ++ free(data); ++ return res; + } + + DO_GET_PROPERTY(wm_icon, _NET_WM_ICON, XCB_ATOM_CARDINAL, UINT_MAX) diff --git a/vcpkg/ports/xcb-util-wm/portfile.cmake b/vcpkg/ports/xcb-util-wm/portfile.cmake new file mode 100644 index 0000000..82c3519 --- /dev/null +++ b/vcpkg/ports/xcb-util-wm/portfile.cmake @@ -0,0 +1,30 @@ +if(NOT X_VCPKG_FORCE_VCPKG_X_LIBRARIES AND NOT VCPKG_TARGET_IS_WINDOWS)
+ message(STATUS "Utils and libraries provided by '${PORT}' should be provided by your system! Install the required packages or force vcpkg libraries by setting X_VCPKG_FORCE_VCPKG_X_LIBRARIES in your triplet!")
+ set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+else()
+
+vcpkg_from_gitlab(
+ GITLAB_URL https://gitlab.freedesktop.org/xorg
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO lib/libxcb-wm
+ REF 0c6681e465c9cc7b1fbb60778ba1eaa61ab01a14 #v 0.4.2
+ SHA512 c8be48000ad2dbe5bd430241745edb16280c2d7e602872ed8e14e6245e64391cbf8f234a4d83aad65c96ec58c3b312f2fe7f0bf01cb82f46b3e50f2358b94741
+ HEAD_REF master
+ PATCHES build.patch
+)
+file(TOUCH "${SOURCE_PATH}/m4/dummy")
+set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"")
+
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+)
+
+vcpkg_install_make()
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+endif()
diff --git a/vcpkg/ports/xcb-util-wm/vcpkg.json b/vcpkg/ports/xcb-util-wm/vcpkg.json new file mode 100644 index 0000000..052e6f2 --- /dev/null +++ b/vcpkg/ports/xcb-util-wm/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "xcb-util-wm", + "version": "0.4.2", + "port-version": 1, + "description": "XCB client and window-manager helpers for ICCCM & EWMH.", + "homepage": "https://gitlab.freedesktop.org/xorg/lib/libxcb-wm/", + "license": null, + "dependencies": [ + "bzip2", + "xcb", + "xorg-macros", + "xproto" + ] +} |