aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/xcb/portfile.cmake
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/xcb/portfile.cmake
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/xcb/portfile.cmake')
-rw-r--r--vcpkg/ports/xcb/portfile.cmake108
1 files changed, 108 insertions, 0 deletions
diff --git a/vcpkg/ports/xcb/portfile.cmake b/vcpkg/ports/xcb/portfile.cmake
new file mode 100644
index 0000000..c1e3403
--- /dev/null
+++ b/vcpkg/ports/xcb/portfile.cmake
@@ -0,0 +1,108 @@
+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
+ REF ddafdba11f6919e6fcf977c09c78b06f94de47aa #v1.14 + some patches
+ SHA512 d8382b04f2b00671cded9e22d6066164511ee4c08e2cf5de4ec28d09e41228e30d3ba7d0e6b5141abf4e4bc777aa662fe9d1d04f3e1e26e0b323549e845c8072
+ HEAD_REF master
+ PATCHES makefile.patch # without the patch target xproto.c is missing target XCBPROTO_XCBINCLUDEDIR
+ configure.patch
+ use_xwindows_includes.patch # use the X11 include wrappers for windows headers
+ getpid_include.patch # add include for getpid on windows
+ win-fixes.patch # avoid: 'close' undefined; assuming extern returning int
+)
+
+set(ENV{ACLOCAL} "aclocal -I \"${CURRENT_INSTALLED_DIR}/share/xorg/aclocal/\"")
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(OPTIONS --disable-dependency-tracking)
+endif()
+
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_DIR "${PYTHON3}" DIRECTORY)
+file(TO_NATIVE_PATH "${PYTHON3_DIR}" PYTHON3_DIR_NATIVE)
+vcpkg_add_to_path("${PYTHON3_DIR}")
+
+if(NOT XLSTPROC)
+ find_program(XLSTPROC NAMES "xsltproc${VCPKG_HOST_EXECUTABLE_SUFFIX}" PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/libxslt" PATH_SUFFIXES "bin")
+endif()
+if(NOT XLSTPROC)
+ message(FATAL_ERROR "${PORT} requires xlstproc for the host system. Please install libxslt within vcpkg or your system package manager!")
+endif()
+get_filename_component(XLSTPROC_DIR "${XLSTPROC}" DIRECTORY)
+file(TO_NATIVE_PATH "${XLSTPROC_DIR}" XLSTPROC_DIR_NATIVE)
+vcpkg_add_to_path("${XLSTPROC_DIR}")
+set(ENV{XLSTPROC} "${XLSTPROC}")
+
+if(DEFINED ENV{PYTHONPATH})
+ set(ENV{PYTHONPATH} "${CURRENT_INSTALLED_DIR}/tools/python3/site-packages/${VCPKG_HOST_PATH_SEPARATOR}$ENV{PYTHONPATH}")
+else()
+ set(ENV{PYTHONPATH} "${CURRENT_INSTALLED_DIR}/tools/python3/site-packages/")
+endif()
+
+vcpkg_configure_make(
+ SOURCE_PATH "${SOURCE_PATH}"
+ AUTOCONFIG
+ OPTIONS ${OPTIONS}
+)
+
+vcpkg_install_make()
+
+set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/xcb.pc")
+if(EXISTS "${pcfile}")
+ vcpkg_replace_string("${pcfile}" "Requires: " "Requires: xau xdmcp " IGNORE_UNCHANGED)
+endif()
+set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/xcb.pc")
+if(EXISTS "${pcfile}")
+ vcpkg_replace_string("${pcfile}" "Requires: " "Requires: xau xdmcp " IGNORE_UNCHANGED)
+endif()
+
+vcpkg_fixup_pkgconfig()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+# Handle copyright
+file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
+
+if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic" AND NOT VCPKG_TARGET_IS_MINGW)
+ set(extensions
+ bigreq
+ composite
+ damage
+ dpms
+ dri2
+ dri3
+ ge
+ glx
+ present
+ randr
+ record
+ render
+ res
+ screensaver
+ shape
+ shm
+ sync
+ xc_misc
+ xevie
+ xf86dri
+ xfixes
+ xinerama
+ xinput
+ xkb
+ xprint
+ xtest
+ xv
+ xvmc)
+ foreach(ext IN LISTS extensions)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/xcb/${ext}.h"
+ "extern xcb_extension_t"
+ "__declspec(dllimport) extern xcb_extension_t")
+ endforeach()
+endif()
+endif()