external/cairo/Library_cairo.mk             |  171 ++++++++++
 external/cairo/Module_cairo.mk              |   20 +
 external/cairo/Package_cairo.mk             |   12 
 external/cairo/Package_pixman.mk            |   12 
 external/cairo/StaticLibrary_pixman.mk      |   66 ++++
 external/cairo/UnpackedTarball_cairo.mk     |    5 
 external/cairo/UnpackedTarball_pixman.mk    |    4 
 external/cairo/configs/wnt_cairo_config.h   |  453 ++++++++++++++++++++++++++++
 external/cairo/configs/wnt_cairo_features.h |   38 ++
 external/cairo/configs/wnt_pixman_config.h  |  195 ++++++++++++
 solenv/clang-format/excludelist             |    3 
 11 files changed, 977 insertions(+), 2 deletions(-)

New commits:
commit e91eab82583eb2eb5fe59801251074e3079d619b
Author:     Tor Lillqvist <[email protected]>
AuthorDate: Tue Feb 25 19:52:15 2025 +0200
Commit:     Caolán McNamara <[email protected]>
CommitDate: Tue Dec 2 09:30:52 2025 +0100

    Add possibility to build cairo for Windows
    
    As a Library, i.e. DLL. Using our build mechanism, not its own. This
    commit does not yet actually add any configury to get it built,
    BUILD_TYPE will never contain CAIRO on Windows. Running "make cairo"
    won't work.
    
    Change-Id: Ia0fb98471bea92ffb60a0d2a941a378c1fbc6b29
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194572
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/external/cairo/Library_cairo.mk b/external/cairo/Library_cairo.mk
new file mode 100644
index 000000000000..2aea585a44a3
--- /dev/null
+++ b/external/cairo/Library_cairo.mk
@@ -0,0 +1,171 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Library_Library,cairo))
+
+$(eval $(call gb_Library_set_include,cairo,\
+       -I$(call gb_UnpackedTarball_get_dir,cairo) \
+       -I$(call gb_UnpackedTarball_get_dir,cairo)/src \
+       -I$(call gb_UnpackedTarball_get_dir,pixman)/pixman \
+       -I$(call gb_UnpackedTarball_get_dir,freetype)/include \
+       -I$(call gb_UnpackedTarball_get_dir,fontconfig) \
+       $$(INCLUDE) \
+))
+
+$(eval $(call gb_Library_add_defs,cairo,\
+       -wd4057 \
+       -wd4100 \
+       -wd4146 \
+       -wd4267 \
+       -wd4702 \
+))
+
+$(eval $(call gb_Library_use_static_libraries,cairo, \
+       expat \
+       fontconfig \
+       freetype \
+       pixman \
+))
+
+$(eval $(call gb_Library_use_externals,cairo,\
+       zlib \
+))
+
+$(eval $(call gb_Library_use_system_win32_libs,cairo,\
+    ole32 \
+    shell32 \
+))
+
+$(eval $(call gb_Library_add_generated_cobjects,cairo,\
+       $(addprefix UnpackedTarball/cairo/src/, \
+               cairo-analysis-surface \
+               cairo-arc \
+               cairo-array \
+               cairo-atomic \
+               cairo-base64-stream \
+               cairo-base85-stream \
+               cairo-bentley-ottmann-rectangular \
+               cairo-bentley-ottmann-rectilinear \
+               cairo-bentley-ottmann \
+               cairo-botor-scan-converter \
+               cairo-boxes-intersect \
+               cairo-boxes \
+               cairo-cache \
+               cairo-clip-boxes \
+               cairo-clip-polygon \
+               cairo-clip-region \
+               cairo-clip-surface \
+               cairo-clip-tor-scan-converter \
+               cairo-clip \
+               cairo-color \
+               cairo-composite-rectangles \
+               cairo-compositor \
+               cairo-contour \
+               cairo-damage \
+               cairo-debug \
+               cairo-default-context \
+               cairo-device \
+               cairo-error \
+               cairo-fallback-compositor \
+               cairo-fixed \
+               cairo-font-face-twin-data \
+               cairo-font-face-twin \
+               cairo-font-face \
+               cairo-font-options \
+               cairo-freed-pool \
+               cairo-freelist \
+               cairo-gstate \
+               cairo-hash \
+               cairo-hull \
+               cairo-image-compositor \
+               cairo-image-info \
+               cairo-image-source \
+               cairo-image-surface \
+               cairo-line \
+               cairo-lzw \
+               cairo-mask-compositor \
+               cairo-matrix \
+               cairo-mempool \
+               cairo-mesh-pattern-rasterizer \
+               cairo-misc \
+               cairo-mono-scan-converter \
+               cairo-mutex \
+               cairo-no-compositor \
+               cairo-observer \
+               cairo-output-stream \
+               cairo-paginated-surface \
+               cairo-path-bounds \
+               cairo-path-fill \
+               cairo-path-fixed \
+               cairo-path-in-fill \
+               cairo-path-stroke-boxes \
+               cairo-path-stroke-polygon \
+               cairo-path-stroke-traps \
+               cairo-path-stroke-tristrip \
+               cairo-path-stroke \
+               cairo-path \
+               cairo-pattern \
+               cairo-pen \
+               cairo-polygon-intersect \
+               cairo-polygon-reduce \
+               cairo-polygon \
+               cairo-raster-source-pattern \
+               cairo-recording-surface \
+               cairo-rectangle \
+               cairo-rectangular-scan-converter \
+               cairo-region \
+               cairo-rtree \
+               cairo-scaled-font \
+               cairo-shape-mask-compositor \
+               cairo-slope \
+               cairo-spans-compositor \
+               cairo-spans \
+               cairo-spline \
+               cairo-stroke-dash \
+               cairo-stroke-style \
+               cairo-surface-clipper \
+               cairo-surface-fallback \
+               cairo-surface-observer \
+               cairo-surface-offset \
+               cairo-surface-snapshot \
+               cairo-surface-subsurface \
+               cairo-surface-wrapper \
+               cairo-surface \
+               cairo-time \
+               cairo-tor-scan-converter \
+               cairo-tor22-scan-converter \
+               cairo-toy-font-face \
+               cairo-traps-compositor \
+               cairo-traps \
+               cairo-tristrip \
+               cairo-unicode \
+               cairo-user-font \
+               cairo-version \
+               cairo-wideint \
+               cairo \
+               cairo-cff-subset \
+               cairo-scaled-font-subsets \
+               cairo-truetype-subset \
+               cairo-type1-fallback \
+               cairo-type1-glyph-names \
+               cairo-type1-subset \
+               cairo-type3-glyph-surface \
+               cairo-script-surface \
+               cairo-pdf-surface \
+               cairo-pdf-interchange \
+               cairo-pdf-operators \
+               cairo-pdf-shading \
+               cairo-tag-attributes \
+               cairo-tag-stack \
+               cairo-deflate-stream \
+               cairo-ft-font \
+       ) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/cairo/Module_cairo.mk b/external/cairo/Module_cairo.mk
index 6d8a29add558..0ca3c6d855d4 100644
--- a/external/cairo/Module_cairo.mk
+++ b/external/cairo/Module_cairo.mk
@@ -9,13 +9,29 @@
 
 $(eval $(call gb_Module_Module,cairo))
 
+$(eval $(call gb_Module_add_targets,cairo,\
+       UnpackedTarball_cairo \
+       UnpackedTarball_pixman \
+))
+
+ifeq ($(COM),MSC)
+
+$(eval $(call gb_Module_add_targets,cairo,\
+       StaticLibrary_pixman \
+       Library_cairo \
+       Package_cairo \
+       Package_pixman \
+))
+
+else
+
 $(eval $(call gb_Module_add_targets,cairo,\
        ExternalPackage_cairo \
        ExternalPackage_pixman \
        ExternalProject_cairo \
        ExternalProject_pixman \
-       UnpackedTarball_cairo \
-       UnpackedTarball_pixman \
 ))
 
+endif
+
 # vim: set noet sw=4 ts=4:
diff --git a/external/cairo/Package_cairo.mk b/external/cairo/Package_cairo.mk
new file mode 100644
index 000000000000..0a68c50363e5
--- /dev/null
+++ b/external/cairo/Package_cairo.mk
@@ -0,0 +1,12 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Package_Package,cairo,$(SRCDIR)/external/cairo))
+
+# vim:set noet sw=4 ts=4:
diff --git a/external/cairo/Package_pixman.mk b/external/cairo/Package_pixman.mk
new file mode 100644
index 000000000000..87acbc4c40cc
--- /dev/null
+++ b/external/cairo/Package_pixman.mk
@@ -0,0 +1,12 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Package_Package,pixman,$(SRCDIR)/external/cairo))
+
+# vim:set noet sw=4 ts=4:
diff --git a/external/cairo/StaticLibrary_pixman.mk 
b/external/cairo/StaticLibrary_pixman.mk
new file mode 100644
index 000000000000..b4c83ca70ef8
--- /dev/null
+++ b/external/cairo/StaticLibrary_pixman.mk
@@ -0,0 +1,66 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,pixman))
+
+$(eval $(call gb_StaticLibrary_set_include,pixman,\
+       -I$(call gb_UnpackedTarball_get_dir,pixman) \
+       -I$(call gb_UnpackedTarball_get_dir,pixman)/pixman \
+       $$(INCLUDE) \
+))
+
+$(eval $(call gb_StaticLibrary_add_defs,pixman,\
+       -DHAVE_CONFIG_H \
+       -wd4100 \
+       -wd4127 \
+       -wd4189 \
+))
+
+$(eval $(call gb_StaticLibrary_add_generated_cobjects,pixman,\
+       $(addprefix UnpackedTarball/pixman/pixman/, \
+               pixman-access \
+               pixman-access-accessors \
+               pixman-arm-neon \
+               pixman-arm-simd \
+               pixman-arm \
+               pixman-bits-image \
+               pixman-combine-float \
+               pixman-combine32 \
+               pixman-conical-gradient \
+               pixman-edge \
+               pixman-edge-accessors \
+               pixman-fast-path \
+               pixman-filter \
+               pixman-general \
+               pixman-glyph \
+               pixman-gradient-walker \
+               pixman-image \
+               pixman-implementation \
+               pixman-linear-gradient \
+               pixman-matrix \
+               pixman-mips-dspr2 \
+               pixman-mips \
+               pixman-mmx \
+               pixman-noop \
+               pixman-ppc \
+               pixman-radial-gradient \
+               pixman-region16 \
+               pixman-region32 \
+               pixman-solid-fill \
+               pixman-sse2 \
+               pixman-ssse3 \
+               pixman-timer \
+               pixman-trap \
+               pixman-utils \
+               pixman-x86 \
+               pixman \
+       ) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/cairo/UnpackedTarball_cairo.mk 
b/external/cairo/UnpackedTarball_cairo.mk
index 76c1b8115c57..95b396c859a1 100644
--- a/external/cairo/UnpackedTarball_cairo.mk
+++ b/external/cairo/UnpackedTarball_cairo.mk
@@ -11,6 +11,11 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,cairo))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,cairo,$(CAIRO_TARBALL),,cairo))
 
+ifeq ($(OS)-$(ENABLE_HEADLESS),WNT-TRUE)
+$(eval $(call 
gb_UnpackedTarball_add_file,cairo,config.h,external/cairo/configs/wnt_cairo_config.h))
+$(eval $(call 
gb_UnpackedTarball_add_file,cairo,src/cairo-features.h,external/cairo/configs/wnt_cairo_features.h))
+endif
+
 # cairo >= 1.17.6 was probably created in Fedora where
 # 
https://salsa.debian.org/mckinstry/libtool/-/commit/26c23f951d049241128e5e04a7bbc263e5b145f1
 # isn't applied, so add that in to avoid: /usr/bin/ld: unrecognized option 
'--gdb-index'
diff --git a/external/cairo/UnpackedTarball_pixman.mk 
b/external/cairo/UnpackedTarball_pixman.mk
index 922ed9f24f22..d857ab4a5da7 100644
--- a/external/cairo/UnpackedTarball_pixman.mk
+++ b/external/cairo/UnpackedTarball_pixman.mk
@@ -11,6 +11,10 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,pixman))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,pixman,$(PIXMAN_TARBALL),,cairo))
 
+ifeq ($(OS)-$(ENABLE_HEADLESS),WNT-TRUE)
+$(eval $(call 
gb_UnpackedTarball_add_file,pixman,config.h,external/cairo/configs/wnt_pixman_config.h))
+endif
+
 $(eval $(call gb_UnpackedTarball_add_patches,pixman,\
        external/cairo/pixman/pixman-0.24.4.patch \
        external/cairo/pixman/pixman-ubsan.patch \
diff --git a/external/cairo/configs/wnt_cairo_config.h 
b/external/cairo/configs/wnt_cairo_config.h
new file mode 100644
index 000000000000..3e4c51d1cd58
--- /dev/null
+++ b/external/cairo/configs/wnt_cairo_config.h
@@ -0,0 +1,453 @@
+/* config.h for Windows build of cairo, manually created from one for Linux: */
+
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* whether memory barriers are needed around atomic operations */
+/* #undef ATOMIC_OP_NEEDS_MEMORY_BARRIER */
+
+/* Define to 1 if the PDF backend can be tested (need poppler and other
+   dependencies for pdf2png) */
+/* #undef CAIRO_CAN_TEST_PDF_SURFACE */
+
+/* Define to 1 if the PS backend can be tested (needs ghostscript) */
+/* #undef CAIRO_CAN_TEST_PS_SURFACE */
+
+/* Define to 1 if the SVG backend can be tested */
+/* #undef CAIRO_CAN_TEST_SVG_SURFACE */
+
+/* Define to 1 if the Win32 Printing backend can be tested (needs ghostscript)
+   */
+/* #undef CAIRO_CAN_TEST_WIN32_PRINTING_SURFACE */
+
+/* Define to 1 if dlsym is available */
+/* #undef CAIRO_HAS_DLSYM */
+
+/* Define to 1 to enable cairo's cairo-script-interpreter feature */
+/* #undef CAIRO_HAS_INTERPRETER */
+
+/* Define to 1 to enable cairo's pthread feature */
+/* #undef CAIRO_HAS_PTHREAD */
+
+/* Define to 1 if we have full pthread support */
+/* #undef CAIRO_HAS_REAL_PTHREAD */
+
+/* Define to 1 if libspectre is available */
+/* #undef CAIRO_HAS_SPECTRE */
+
+/* Define to 1 to enable cairo's symbol-lookup feature */
+/* #undef CAIRO_HAS_SYMBOL_LOOKUP */
+
+/* Define to 1 to enable cairo's test surfaces feature */
+/* #undef CAIRO_HAS_TEST_SURFACES */
+
+/* Define to 1 to enable cairo's cairo-trace feature */
+/* #undef CAIRO_HAS_TRACE */
+
+/* Define to 1 to disable certain code paths that rely heavily on double
+   precision floating-point calculation */
+/* #undef DISABLE_SOME_FLOATING_POINT */
+
+/* Define to 1 if your system stores words within floats with the most
+   significant word first */
+/* #undef FLOAT_WORDS_BIGENDIAN */
+
+/* Define to (0) if freetype2 does not support color fonts */
+/* #undef FT_HAS_COLOR */
+
+/* Enable pixman glyph cache */
+#define HAS_PIXMAN_GLYPHS 1
+
+/* Define to 1 if you have the `alarm' function. */
+/* #undef HAVE_ALARM */
+
+/* Define to 1 if you have the binutils development files installed */
+/* #undef HAVE_BFD */
+
+/* Define to 1 if your compiler supports the __builtin_return_address()
+   intrinsic. */
+/* #undef HAVE_BUILTIN_RETURN_ADDRESS */
+
+/* Define to 1 if you have the <byteswap.h> header file. */
+/* #undef HAVE_BYTESWAP_H */
+
+/* Define to 1 if you have the `clock_gettime' function. */
+/* #undef HAVE_CLOCK_GETTIME */
+
+/* Define to 1 if you have the `ctime_r' function. */
+/* #undef HAVE_CTIME_R */
+
+/* Enable if your compiler supports the GCC __atomic_* atomic primitives */
+/* #undef HAVE_CXX11_ATOMIC_PRIMITIVES */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Define to 1 if you have the `drand48' function. */
+/* #undef HAVE_DRAND48 */
+
+/* Define to 1 if you have the `FcFini' function. */
+#define HAVE_FCFINI 1
+
+/* Define to 1 if you have the `FcInit' function. */
+#define HAVE_FCINIT 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have the `feclearexcept' function. */
+#define HAVE_FECLEAREXCEPT 1
+
+/* Define to 1 if you have the `fedisableexcept' function. */
+#define HAVE_FEDISABLEEXCEPT 1
+
+/* Define to 1 if you have the `feenableexcept' function. */
+#define HAVE_FEENABLEEXCEPT 1
+
+/* Define to 1 if you have the <fenv.h> header file. */
+#define HAVE_FENV_H 1
+
+/* Define to 1 if you have the `flockfile' function. */
+/* #undef HAVE_FLOCKFILE */
+
+/* Define to 1 if you have the `fork' function. */
+/* #undef HAVE_FORK */
+
+/* Define to 1 if you have the `FT_Done_MM_Var' function. */
+#define HAVE_FT_DONE_MM_VAR 1
+
+/* Define to 1 if you have the `FT_Get_Var_Design_Coordinates' function. */
+#define HAVE_FT_GET_VAR_DESIGN_COORDINATES 1
+
+/* Define to 1 if you have the `FT_Get_X11_Font_Format' function. */
+#define HAVE_FT_GET_X11_FONT_FORMAT 1
+
+/* Define to 1 if you have the `FT_GlyphSlot_Embolden' function. */
+#define HAVE_FT_GLYPHSLOT_EMBOLDEN 1
+
+/* Define to 1 if you have the `FT_GlyphSlot_Oblique' function. */
+#define HAVE_FT_GLYPHSLOT_OBLIQUE 1
+
+/* Define to 1 if you have the `FT_Library_SetLcdFilter' function. */
+#define HAVE_FT_LIBRARY_SETLCDFILTER 1
+
+/* Define to 1 if you have the `FT_Load_Sfnt_Table' function. */
+#define HAVE_FT_LOAD_SFNT_TABLE 1
+
+/* Define to 1 if you have the `FT_Palette_Set_Foreground_Color' function. */
+#define HAVE_FT_PALETTE_SET_FOREGROUND_COLOR 1
+
+/* Define to 1 if you have the `funlockfile' function. */
+/* #undef HAVE_FUNLOCKFILE */
+
+/* Enable if your compiler supports the legacy GCC __sync_* atomic primitives
+   */
+/* #undef HAVE_GCC_LEGACY_ATOMICS */
+
+/* Whether you have gcov */
+/* #undef HAVE_GCOV */
+
+/* Define to 1 if you have the `getline' function. */
+#define HAVE_GETLINE 1
+
+/* Define to 1 if you have the `gmtime_r' function. */
+/* #undef HAVE_GMTIME_R */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the <io.h> header file. */
+/* #undef HAVE_IO_H */
+
+/* Define to 1 if you have the <libgen.h> header file. */
+/* #undef HAVE_LIBGEN_H */
+
+/* Define to 1 if you have the `rt' library (-lrt). */
+/* #undef HAVE_LIBRT */
+
+/* Enable if you have libatomic-ops-dev installed */
+/* #undef HAVE_LIB_ATOMIC_OPS */
+
+/* Define to 1 if you have the `link' function. */
+/* #undef HAVE_LINK */
+
+/* Define to 1 if you have the `localtime_r' function. */
+/* #undef HAVE_LOCALTIME_R */
+
+/* Define to 1 if you have the Valgrind lockdep tool */
+/* #undef HAVE_LOCKDEP */
+
+/* Define to 1 if you have lzo available */
+/* #undef HAVE_LZO */
+
+/* Define to 1 if you have the Valgrind memfault tool */
+/* #undef HAVE_MEMFAULT */
+
+/* Define to 1 if you have the <memory.h> header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to non-zero if your system has mkdir, and to 2 if your version of
+   mkdir requires a mode parameter */
+#define HAVE_MKDIR 2
+
+/* Define to 1 if you have the `mmap' function. */
+/* #undef HAVE_MMAP */
+
+/* Define to 1 if you have the `newlocale' function. */
+ /* #undef HAVE_NEWLOCALE */
+
+/* Enable if you have MacOS X atomic operations */
+/* #undef HAVE_OS_ATOMIC_OPS */
+
+/* Define to 1 if you have the <poll.h> header file. */
+/* #undef HAVE_POLL_H */
+
+/* Define to 1 if you have the `poppler_page_render' function. */
+/* #undef HAVE_POPPLER_PAGE_RENDER */
+
+/* Define to 1 if you have the `raise' function. */
+#define HAVE_RAISE 1
+
+/* Define to 1 if you have the `rsvg_pixbuf_from_file' function. */
+/* #undef HAVE_RSVG_PIXBUF_FROM_FILE */
+
+/* Define to 1 if you have the `sched_getaffinity' function. */
+/* #undef HAVE_SCHED_GETAFFINITY */
+
+/* Define to 1 if you have the <sched.h> header file. */
+/* #undef HAVE_SCHED_H */
+
+/* Define to 1 if you have the <setjmp.h> header file. */
+#define HAVE_SETJMP_H 1
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* MSC does have <stdint.h> but cairo seems to compile better without it */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strndup' function. */
+#define HAVE_STRNDUP 1
+
+/* Define to 1 if you have the `strtod_l' function. */
+/* #undef HAVE_STRTOD_L */
+
+/* Define to 1 if you have the <sys/int_types.h> header file. */
+/* #undef HAVE_SYS_INT_TYPES_H */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+/* #undef HAVE_SYS_IOCTL_H */
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+/* #undef HAVE_SYS_MMAN_H */
+
+/* Define to 1 if you have the <sys/poll.h> header file. */
+/* #undef HAVE_SYS_POLL_H */
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+/* #undef HAVE_SYS_SOCKET_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+/* #undef HAVE_SYS_TYPES_H */
+
+/* Define to 1 if you have the <sys/un.h> header file. */
+/* #undef HAVE_SYS_UN_H */
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+/* #undef HAVE_SYS_WAIT_H */
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if typeof works with your compiler. */
+#define HAVE_TYPEOF 1
+
+/* Define to 1 if the system has the type `uint128_t'. */
+/* #undef HAVE_UINT128_T */
+
+/* Define to 1 if the system has the type `uint64_t'. */
+/* #undef HAVE_UINT64_T */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to 1 if you have Valgrind */
+/* #undef HAVE_VALGRIND */
+
+/* Define to 1 if you have the `waitpid' function. */
+/* #undef HAVE_WAITPID */
+
+/* Define to 1 if you have the <X11/extensions/shmproto.h> header file. */
+/* #undef HAVE_X11_EXTENSIONS_SHMPROTO_H */
+
+/* Define to 1 if you have the <X11/extensions/shmstr.h> header file. */
+/* #undef HAVE_X11_EXTENSIONS_SHMSTR_H */
+
+/* Define to 1 if you have the <X11/extensions/XShm.h> header file. */
+/* #undef HAVE_X11_EXTENSIONS_XSHM_H */
+
+/* Define to 1 if you have the <xlocale.h> header file. */
+/* #undef HAVE_XLOCALE_H */
+
+/* Define to 1 if you have the `XRenderCreateConicalGradient' function. */
+/* #undef HAVE_XRENDERCREATECONICALGRADIENT */
+
+/* Define to 1 if you have the `XRenderCreateLinearGradient' function. */
+/* #undef HAVE_XRENDERCREATELINEARGRADIENT */
+
+/* Define to 1 if you have the `XRenderCreateRadialGradient' function. */
+/* #undef HAVE_XRENDERCREATERADIALGRADIENT */
+
+/* Define to 1 if you have the `XRenderCreateSolidFill' function. */
+/* #undef HAVE_XRENDERCREATESOLIDFILL Ä/
+
+/* Define to 1 if you have zlib available */
+#define HAVE_ZLIB 1
+
+/* Define to 1 if the system has the type `__uint128_t'. */
+/* #undef HAVE___UINT128_T */
+
+/* Define to 1 if shared memory segments are released deferred. */
+/* #undef IPC_RMID_DEFERRED_RELEASE */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://gitlab.freedesktop.org/cairo/cairo/-/issues";
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME USE_cairo_INSTEAD
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING USE_cairo_version_OR_cairo_version_string_INSTEAD
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME USE_cairo_INSTEAD
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL "https://cairographics.org/";
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION USE_cairo_version_OR_cairo_version_string_INSTEAD
+
+/* Shared library file extension */
+#define SHARED_LIB_EXT "dll"
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG 8
+
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
+
+/* The size of `void *', as computed by sizeof. */
+#define SIZEOF_VOID_P 8
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# define _ALL_SOURCE 1
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# define _POSIX_PTHREAD_SEMANTICS 1
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# define _TANDEM_SOURCE 1
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# define __EXTENSIONS__ 1
+#endif
+
+
+/* Define to the value your compiler uses to support the warn-unused-result
+   attribute */
+#define WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+
+/* Deal with multiple architecture compiles on Mac OS X */
+#ifdef __APPLE_CC__
+#ifdef __BIG_ENDIAN__
+#define WORDS_BIGENDIAN 1
+#define FLOAT_WORDS_BIGENDIAN 1
+#else
+/* #undef WORDS_BIGENDIAN */
+/* #undef FLOAT_WORDS_BIGENDIAN */
+#endif
+#endif
+
+
+/* Define to 1 if the X Window System is missing or not being used. */
+/* #undef X_DISPLAY_MISSING */
+
+/* Enable large inode numbers on Mac OS X 10.5.  */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to 1 if on MINIX. */
+/* #undef _MINIX */
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+   this defined. */
+/* #undef _POSIX_1_SOURCE */
+
+/* Define to 1 if you need to in order for `stat' and other things to work. */
+/* #undef _POSIX_SOURCE */
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to __typeof__ if your compiler spells it that way. */
+/* #undef typeof */
diff --git a/external/cairo/configs/wnt_cairo_features.h 
b/external/cairo/configs/wnt_cairo_features.h
new file mode 100644
index 000000000000..e4b4328d402d
--- /dev/null
+++ b/external/cairo/configs/wnt_cairo_features.h
@@ -0,0 +1,38 @@
+/* Manually edited */
+#ifndef CAIRO_FEATURES_H
+#define CAIRO_FEATURES_H
+
+#define CAIRO_HAS_FC_FONT 1
+#define CAIRO_HAS_FT_FONT 1
+/* #undef CAIRO_HAS_GOBJECT_FUNCTIONS */
+#define CAIRO_HAS_IMAGE_SURFACE 1
+/* #undef CAIRO_HAS_MIME_SURFACE */
+#define CAIRO_HAS_OBSERVER_SURFACE 1
+#define CAIRO_HAS_PDF_SURFACE 1
+/* #undef CAIRO_HAS_PNG_FUNCTIONS */
+/* #undef CAIRO_HAS_PS_SURFACE */
+#define CAIRO_HAS_RECORDING_SURFACE 1
+#define CAIRO_HAS_SCRIPT_SURFACE 1
+#define CAIRO_HAS_USER_FONT 1
+/* #undef CAIRO_HAS_XCB_SHM_FUNCTIONS */
+/* #undef CAIRO_HAS_XCB_SURFACE */
+/* #undef CAIRO_HAS_XLIB_SURFACE */
+/* #undef CAIRO_HAS_XLIB_XRENDER_SURFACE */
+
+/*#undef CAIRO_HAS_EGL_FUNCTIONS */
+/*#undef CAIRO_HAS_GLESV2_SURFACE */
+/*#undef CAIRO_HAS_GLESV3_SURFACE */
+/*#undef CAIRO_HAS_GLX_FUNCTIONS */
+/*#undef CAIRO_HAS_GL_SURFACE */
+/*#undef CAIRO_HAS_QUARTZ_FONT */
+/*#undef CAIRO_HAS_QUARTZ_IMAGE_SURFACE */
+/*#undef CAIRO_HAS_QUARTZ_SURFACE */
+/*#undef CAIRO_HAS_SVG_SURFACE */
+/*#undef CAIRO_HAS_TEE_SURFACE */
+/*#undef CAIRO_HAS_WGL_FUNCTIONS */
+/*#undef CAIRO_HAS_WIN32_FONT */
+/*#undef CAIRO_HAS_WIN32_SURFACE */
+/*#undef CAIRO_HAS_XLIB_XCB_FUNCTIONS */
+/*#undef CAIRO_HAS_XML_SURFACE */
+
+#endif
diff --git a/external/cairo/configs/wnt_pixman_config.h 
b/external/cairo/configs/wnt_pixman_config.h
new file mode 100644
index 000000000000..180a8f93df15
--- /dev/null
+++ b/external/cairo/configs/wnt_pixman_config.h
@@ -0,0 +1,195 @@
+/* config.h for Windows build of pixman, manually created from one for Linux: 
*/
+
+/* config.h.  Generated from config.h.in by configure.  */
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* Whether we have alarm() */
+/* #undef HAVE_ALARM */
+
+/* Whether the compiler supports __builtin_clz */
+/* #undef HAVE_BUILTIN_CLZ */
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+/* #undef HAVE_DLFCN_H */
+
+/* Whether we have FE_DIVBYZERO */
+/* #undef HAVE_FEDIVBYZERO */
+
+/* Whether we have feenableexcept() */
+/* #undef HAVE_FEENABLEEXCEPT */
+
+/* Define to 1 if we have <fenv.h> */
+/* #undef HAVE_FENV_H 1
+
+/* Whether the tool chain supports __float128 */
+/* #undef HAVE_FLOAT128 */
+
+/* Whether the compiler supports GCC vector extensions */
+/* #undef HAVE_GCC_VECTOR_EXTENSIONS */
+
+/* Define to 1 if you have the `getisax' function. */
+/* #undef HAVE_GETISAX */
+
+/* Whether we have getpagesize() */
+/* #undef HAVE_GETPAGESIZE */
+
+/* Whether we have gettimeofday() */
+/* #undef HAVE_GETTIMEOFDAY */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the `pixman-1' library (-lpixman-1). */
+/* #undef HAVE_LIBPIXMAN_1 */
+
+/* Whether we have libpng */
+/* #undef HAVE_LIBPNG */
+
+/* Whether we have mmap() */
+/* #undef HAVE_MMAP */
+
+/* Whether we have mprotect() */
+/* #undef HAVE_MPROTECT */
+
+/* Whether we have posix_memalign() */
+/* #undef HAVE_POSIX_MEMALIGN */
+
+/* Whether pthreads is supported */
+/* #undef HAVE_PTHREADS */
+
+/* Whether we have sigaction() */
+/* #undef HAVE_SIGACTION */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#define HAVE_STDIO_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if we have <sys/mman.h> */
+/* #undef HAVE_SYS_MMAN_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+/* #undef HAVE_SYS_TYPES_H */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+/* #undef HAVE_UNISTD_H */
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#define LT_OBJDIR ".libs/"
+
+/* Name of package */
+#define PACKAGE "pixman"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "[email protected]"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "pixman"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "pixman 0.42.2"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "pixman"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "0.42.2"
+
+/* enable output that can be piped to gnuplot */
+/* #undef PIXMAN_GNUPLOT */
+
+/* enable TIMER_BEGIN/TIMER_END macros */
+/* #undef PIXMAN_TIMERS */
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 4
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+   required in a freestanding environment). This macro is provided for
+   backward compatibility; new code need not use it. */
+#define STDC_HEADERS 1
+
+/* The compiler supported TLS storage class */
+#define TLS __declspec(thread)
+
+/* Whether the tool chain supports __attribute__((constructor)) */
+/* #undef TOOLCHAIN_SUPPORTS_ATTRIBUTE_CONSTRUCTOR */
+
+/* use ARM A64_NEON assembly optimizations */
+/* #undef USE_ARM_A64_NEON */
+
+/* use ARM IWMMXT compiler intrinsics */
+/* #undef USE_ARM_IWMMXT */
+
+/* use ARM NEON assembly optimizations */
+/* #undef USE_ARM_NEON */
+
+/* use ARM SIMD assembly optimizations */
+/* #undef USE_ARM_SIMD */
+
+/* use GNU-style inline assembler */
+/* #undef USE_GCC_INLINE_ASM */
+
+/* use Loongson Multimedia Instructions */
+/* #undef USE_LOONGSON_MMI */
+
+/* use MIPS DSPr2 assembly optimizations */
+/* #undef USE_MIPS_DSPR2 */
+
+/* use OpenMP in the test suite */
+/* #undef USE_OPENMP */
+
+/* use SSE2 compiler intrinsics */
+#define USE_SSE2 1
+
+/* use SSSE3 compiler intrinsics */
+#define USE_SSSE3 1
+
+/* use VMX compiler intrinsics */
+/* #undef USE_VMX */
+
+/* use x86 MMX compiler intrinsics */
+/* #undef USE_X86_MMX */
+
+/* Version number of package */
+#define VERSION "0.42.2"
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+   significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+#  define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* #  undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+/* #undef inline */
+#endif
+
+/* Define to sqrt if you do not have the `sqrtf' function. */
+/* #undef sqrtf */
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index cda2f63a84ff..c510f44560d6 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -3814,6 +3814,9 @@ 
extensions/test/ole/unoTocomCalls/XCallback_Impl/Simple.cpp
 extensions/test/ole/unoTocomCalls/XCallback_Impl/Simple.h
 extensions/test/ole/unoTocomCalls/XCallback_Impl/resource.h
 external/bluez_bluetooth/inc/bluetooth/bluetooth.h
+external/cairo/configs/wnt_cairo_config.h
+external/cairo/configs/wnt_cairo_features.h
+external/cairo/configs/wnt_pixman_config.h
 external/clew/source/clew.c
 external/clew/source/include/clew/clew.h
 external/clucene/configs/_clucene-config-LINUX.h

Reply via email to