upgrade pixman and cairo
Co-authored-by: Noel Grandin <noel.grandin@collabora.co.uk> Change-Id: I21b8c772138b544d3192b786a6bae4c64ebcac94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191199 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
This commit is contained in:
co-authored by
Noel Grandin
parent
d65f9ebab1
commit
2b515d095d
@@ -1214,14 +1214,16 @@ $(call gb_LinkTarget_use_external,$(1),freetype_headers)
|
||||
$(call gb_LinkTarget_set_include,$(1),\
|
||||
-I$(gb_UnpackedTarball_workdir)/cairo \
|
||||
-I$(gb_UnpackedTarball_workdir)/cairo/src \
|
||||
-I$(gb_UnpackedTarball_workdir)/cairo/builddir/src \
|
||||
-I$(gb_UnpackedTarball_workdir)/pixman/pixman \
|
||||
-I$(gb_UnpackedTarball_workdir)/pixman/builddir/pixman \
|
||||
$$(INCLUDE) \
|
||||
)
|
||||
$(call gb_LinkTarget_add_libs,$(1),\
|
||||
$(if $(filter EMSCRIPTEN,$(OS)), \
|
||||
$(gb_UnpackedTarball_workdir)/cairo/src/.libs/libcairo.a \
|
||||
$(gb_UnpackedTarball_workdir)/cairo/builddir/src/libcairo-lo.a \
|
||||
$(gb_UnpackedTarball_workdir)/pixman/pixman/.libs/libpixman-1.a, \
|
||||
-L$(gb_UnpackedTarball_workdir)/cairo/src/.libs -lcairo \
|
||||
-L$(gb_UnpackedTarball_workdir)/cairo/builddir/src -lcairo-lo \
|
||||
-L$(gb_UnpackedTarball_workdir)/pixman/pixman/.libs -lpixman-1) \
|
||||
)
|
||||
|
||||
|
||||
@@ -39,8 +39,8 @@ ANDROID)
|
||||
oslibs="$WORKDIR/UnpackedTarball/curl/lib/.libs/*.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/fontconfig/src/.libs/libfontconfig.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/freetype/objs/.libs/libfreetype.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/pixman/pixman/.libs/libpixman-1.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/cairo/src/.libs/libcairo.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/pixman/builddir/pixman/libpixman-1.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/cairo/builddir/src/libcairo-lo.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/.libs/libxmlsec1.a"
|
||||
oslibs="$oslibs $WORKDIR/UnpackedTarball/xmlsec/src/nss/.libs/libxmlsec1-nss.a"
|
||||
# Only liblo-bootstrap.a ends up here:
|
||||
|
||||
+72
-56
@@ -11679,63 +11679,8 @@ else
|
||||
AC_MSG_ERROR([--without-system-graphite must be used when --without-system-harfbuzz is used])
|
||||
fi
|
||||
# harfbuzz is now built using meson
|
||||
AC_ARG_VAR(MESON, [point to a specific meson to use instead of autodetecting])
|
||||
if test -z "$MESON"; then
|
||||
if test -z "$PYTHON_FOR_BUILD"; then
|
||||
# we also want to call meson with internal python and use internal meson
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
# autodetect, prefer meson.py / standalone version that can more likely be run
|
||||
# by different python runtimes
|
||||
AC_PATH_PROGS(MESON,[meson.py meson],,[$LODE_HOME/opt/bin:$PATH])
|
||||
if test -z "$MESON"; then
|
||||
AC_MSG_WARN([meson not found, using internal copy])
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
PathFormat "$MESON"
|
||||
MESON="$formatted_path"
|
||||
AC_MSG_CHECKING([whether meson can be run with "$PYTHON_FOR_BUILD $MESON"])
|
||||
if ($PYTHON_FOR_BUILD $MESON --version >/dev/null) ; then
|
||||
# Xcode 26 and higher need a newer version of meson so use
|
||||
# the internal meson if the external meson's version is
|
||||
# too old
|
||||
if test $_os = Darwin -a $MACOSX_SDK_VERSION -ge 260000; then
|
||||
_meson_minver=1.8.3
|
||||
_meson_minmajmin=`echo $_meson_minver | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
|
||||
_meson_version=`$PYTHON_FOR_BUILD $MESON --version 2>/dev/null`
|
||||
_meson_majmin=`echo $_meson_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
|
||||
if test "$_meson_majmin" -lt "$_meson_minmajmin"; then
|
||||
AC_MSG_WARN([meson "$_meson_version" is too old, using internal copy])
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([meson incompatible with the specified python. Try using a different python runtime or a plain release of meson by adding PYTHON=/other/python.version and/or MESON=/path/to/meson.py to autogen.input])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
MESON='$(call gb_ExternalExecutable_get_command,python) '"$MESON"
|
||||
fi
|
||||
AC_CHECK_PROG(NINJA,ninja,ninja)
|
||||
if test -z "$MESON" -o -z "$NINJA"; then
|
||||
AC_MSG_ERROR([you need to have meson and ninja in order to build harfbuzz])
|
||||
fi
|
||||
need_meson="yes"
|
||||
fi
|
||||
if test -z "$NINJA" || test "$NINJA" = 'assumed to be available from Visual Studio'; then
|
||||
x_NINJA=[\#]
|
||||
else
|
||||
x_NINJA=
|
||||
fi
|
||||
AC_SUBST(x_NINJA)
|
||||
AC_SUBST(NINJA)
|
||||
|
||||
if test "$USING_X11" = TRUE; then
|
||||
AC_PATH_X
|
||||
@@ -14701,6 +14646,8 @@ if test "$test_cairo" = "yes"; then
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
BUILD_TYPE="$BUILD_TYPE CAIRO"
|
||||
# harfbuzz is now built using meson
|
||||
need_meson="yes"
|
||||
fi
|
||||
|
||||
if test "$enable_cairo_canvas" != no; then
|
||||
@@ -14714,6 +14661,75 @@ AC_SUBST(CAIRO_LIBS)
|
||||
AC_SUBST(ENABLE_CAIRO_CANVAS)
|
||||
AC_SUBST(SYSTEM_CAIRO)
|
||||
|
||||
dnl ===================================================================
|
||||
dnl Check for meson
|
||||
dnl ===================================================================
|
||||
if test "$need_meson" = "yes"; then
|
||||
AC_ARG_VAR(MESON, [point to a specific meson to use instead of autodetecting])
|
||||
if test -z "$MESON"; then
|
||||
if test -z "$PYTHON_FOR_BUILD"; then
|
||||
# we also want to call meson with internal python and use internal meson
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
# autodetect, prefer meson.py / standalone version that can more likely be run
|
||||
# by different python runtimes
|
||||
AC_PATH_PROGS(MESON,[meson.py meson],,[$LODE_HOME/opt/bin:$PATH])
|
||||
if test -z "$MESON"; then
|
||||
AC_MSG_WARN([meson not found, using internal copy])
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
PathFormat "$MESON"
|
||||
MESON="$formatted_path"
|
||||
AC_MSG_CHECKING([whether meson can be run with "$PYTHON_FOR_BUILD $MESON"])
|
||||
if ($PYTHON_FOR_BUILD $MESON --version >/dev/null) ; then
|
||||
_meson_minver=0.61.5
|
||||
if test "$test_cairo" = "yes" -a "$SYSTEM_CAIRO" != "TRUE"; then
|
||||
_meson_minver=1.3.0
|
||||
fi
|
||||
# Xcode 26 and higher need a newer version of meson so use
|
||||
# the internal meson if the external meson's version is
|
||||
# too old
|
||||
if test $_os = Darwin; then
|
||||
if $MACOSX_SDK_VERSION -ge 260000; then
|
||||
_meson_minver=1.8.3
|
||||
fi
|
||||
fi
|
||||
_meson_minmajmin=`echo $_meson_minver | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
|
||||
_meson_version=`$PYTHON_FOR_BUILD $MESON --version 2>/dev/null`
|
||||
_meson_majmin=`echo $_meson_version | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
|
||||
if test "$_meson_majmin" -lt "$_meson_minmajmin"; then
|
||||
AC_MSG_WARN([meson "$_meson_version" is too old, using internal copy])
|
||||
BUILD_TYPE="$BUILD_TYPE MESON"
|
||||
MESON='$(gb_UnpackedTarball_workdir)/meson/meson.py'
|
||||
else
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_MSG_CHECKING([min version of meson required])
|
||||
AC_MSG_RESULT([$meson_minver])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_ERROR([meson incompatible with the specified python. Try using a different python runtime or a plain release of meson by adding PYTHON=/other/python.version and/or MESON=/path/to/meson.py to autogen.input])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
MESON='$(call gb_ExternalExecutable_get_command,python) '"$MESON"
|
||||
fi
|
||||
AC_CHECK_PROG(NINJA,ninja,ninja)
|
||||
if test -z "$MESON" -o -z "$NINJA"; then
|
||||
AC_MSG_ERROR([you need to have meson and ninja in order to build harfbuzz])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$NINJA" || test "$NINJA" = 'assumed to be available from Visual Studio'; then
|
||||
x_NINJA=[\#]
|
||||
else
|
||||
x_NINJA=
|
||||
fi
|
||||
AC_SUBST(x_NINJA)
|
||||
AC_SUBST(NINJA)
|
||||
|
||||
dnl ===================================================================
|
||||
dnl Test whether to use avahi
|
||||
dnl ===================================================================
|
||||
|
||||
+5
-5
@@ -39,9 +39,9 @@ BZIP2_TARBALL := bzip2-1.0.8.tar.gz
|
||||
# three static lines
|
||||
# so that git cherry-pick
|
||||
# will not run into conflicts
|
||||
CAIRO_SHA256SUM := 4eebc4c2bad0402bc3f501db184417094657d111fb6c06f076a82ea191fe1faf
|
||||
CAIRO_VERSION_MICRO := 6
|
||||
CAIRO_TARBALL := cairo-1.17.$(CAIRO_VERSION_MICRO).tar.xz
|
||||
CAIRO_SHA256SUM := 445ed8208a6e4823de1226a74ca319d3600e83f6369f99b14265006599c32ccb
|
||||
CAIRO_VERSION_MICRO := 4
|
||||
CAIRO_TARBALL := cairo-1.18.$(CAIRO_VERSION_MICRO).tar.xz
|
||||
# three static lines
|
||||
# so that git cherry-pick
|
||||
# will not run into conflicts
|
||||
@@ -569,8 +569,8 @@ PDFIUM_TARBALL := pdfium-7012.tar.bz2
|
||||
# three static lines
|
||||
# so that git cherry-pick
|
||||
# will not run into conflicts
|
||||
PIXMAN_SHA256SUM := ea1480efada2fd948bc75366f7c349e1c96d3297d09a3fe62626e38e234a625e
|
||||
PIXMAN_TARBALL := pixman-0.42.2.tar.gz
|
||||
PIXMAN_SHA256SUM := a098c33924754ad43f981b740f6d576c70f9ed1006e12221b1845431ebce1239
|
||||
PIXMAN_TARBALL := pixman-0.46.4.tar.xz
|
||||
# three static lines
|
||||
# so that git cherry-pick
|
||||
# will not run into conflicts
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,cairo,cairo))
|
||||
$(eval $(call gb_ExternalPackage_use_external_project,cairo,cairo))
|
||||
|
||||
ifneq ($(DISABLE_DYNLOADING),TRUE)
|
||||
$(eval $(call gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.so.2,src/.libs/libcairo-lo.so.2.1170$(CAIRO_VERSION_MICRO).0))
|
||||
$(eval $(call gb_ExternalPackage_add_file,cairo,$(LIBO_LIB_FOLDER)/libcairo-lo.so.2,builddir/src/libcairo-lo.so.2.1180$(CAIRO_VERSION_MICRO).$(CAIRO_VERSION_MICRO)))
|
||||
endif
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ $(eval $(call gb_ExternalPackage_ExternalPackage,pixman,pixman))
|
||||
$(eval $(call gb_ExternalPackage_use_external_project,pixman,pixman))
|
||||
|
||||
ifneq ($(DISABLE_DYNLOADING),TRUE)
|
||||
$(eval $(call gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,pixman/.libs/libpixman-1.so.0.42.2))
|
||||
$(eval $(call gb_ExternalPackage_add_file,pixman,$(LIBO_LIB_FOLDER)/libpixman-1.so.0,builddir/pixman/libpixman-1.so.0.46.4))
|
||||
endif
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
||||
|
||||
+69
-42
@@ -9,19 +9,44 @@
|
||||
|
||||
$(eval $(call gb_ExternalProject_ExternalProject,cairo))
|
||||
|
||||
$(eval $(call gb_ExternalProject_use_external_project,cairo,pixman))
|
||||
|
||||
$(eval $(call gb_ExternalProject_use_externals,cairo,\
|
||||
fontconfig \
|
||||
freetype \
|
||||
libpng \
|
||||
zlib \
|
||||
))
|
||||
|
||||
$(eval $(call gb_ExternalProject_register_targets,cairo,\
|
||||
build \
|
||||
))
|
||||
|
||||
$(eval $(call gb_ExternalProject_use_external_project,cairo,pixman))
|
||||
|
||||
$(eval $(call gb_ExternalProject_use_externals,cairo,\
|
||||
fontconfig \
|
||||
freetype \
|
||||
libpng \
|
||||
meson \
|
||||
zlib \
|
||||
))
|
||||
|
||||
# We cannot use environment vars inside the meson cross-build file,
|
||||
# so we're going to have to generate one on-the-fly.
|
||||
# mungle variables into python list format
|
||||
python_listify = '$(subst $(WHITESPACE),'$(COMMA)',$(strip $(1)))'
|
||||
cross_c = $(call python_listify,$(gb_CC))
|
||||
cross_cxx = $(call python_listify,$(gb_CXX))
|
||||
cross_ld := $(call python_listify,$(subst -fuse-ld=,,$(USE_LD)))
|
||||
|
||||
define gb_cairo_cross_compile
|
||||
[binaries]
|
||||
c = [$(cross_c)]
|
||||
cpp = [$(cross_cxx)]
|
||||
c_ld = [$(cross_ld)]
|
||||
cpp_ld = [$(cross_ld)]
|
||||
ar = '$(AR)'
|
||||
strip = '$(STRIP)'
|
||||
# TODO: this is pretty ugly...
|
||||
[host_machine]
|
||||
system = '$(if $(filter WNT,$(OS)),windows,$(if $(filter MACOSX,$(OS)),darwin,$(if $(filter ANDROID,$(OS)),android,linux)))'
|
||||
cpu_family = '$(subst X86_64,x86_64,$(RTL_ARCH))'
|
||||
cpu = '$(if $(filter x86,$(RTL_ARCH)),i686,$(if $(filter X86_64,$(RTL_ARCH)),x86_64,$(if $(filter AARCH64,$(RTL_ARCH)),aarch64,armv7)))'
|
||||
endian = '$(ENDIANNESS)'
|
||||
endef
|
||||
|
||||
# Including -rtlib=compiler-rt in pixman_LIBS is a BAD HACK: At least when compiling with Clang
|
||||
# -fsanitize=undefined on Linux x86-64, the generated code references __muloti4, which is an
|
||||
# extension provided by libclang_rt.builtins-x86_64.a runtime, but not by GCC's libgcc_s.so.1 (which
|
||||
@@ -42,43 +67,45 @@ $(eval $(call gb_ExternalProject_register_targets,cairo,\
|
||||
# cairo's configure. And pixman_LIBS happens to offer that. (The -Wc is necessary so that libtool
|
||||
# does not throw away the -rtlib=compiler-rt which it does not understand.)
|
||||
|
||||
# We control how cairo handles its subprojects/dependencies by adding entries to PKG_CONFIG_PATH .
|
||||
# Meson will look in those locations for *.pc files, which contains FLAGS and LIBS entries.
|
||||
|
||||
# We set PKG_CONFIG_TOP_BUILD_DIR= in order to work around some pkg-config weirdness, which otherwise
|
||||
# will make meson crash.
|
||||
|
||||
$(call gb_ExternalProject_get_state_target,cairo,build) :
|
||||
$(call gb_Trace_StartRange,cairo,EXTERNAL)
|
||||
$(file >$(gb_UnpackedTarball_workdir)/cairo/cross-file.txt,$(gb_cairo_cross_compile))
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
$(gb_RUN_CONFIGURE) ./configure \
|
||||
$(if $(debug),STRIP=" ") \
|
||||
$(if $(filter ANDROID iOS,$(OS)),CFLAGS="$(if $(debug),-g) $(ZLIB_CFLAGS) $(gb_VISIBILITY_FLAGS)") \
|
||||
$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS="-O3 -DCAIRO_NO_MUTEX $(ZLIB_CFLAGS) -Wno-enum-conversion $(gb_EMSCRIPTEN_CPPFLAGS)" ) \
|
||||
PYTHONWARNINGS= \
|
||||
PKG_CONFIG_TOP_BUILD_DIR= \
|
||||
$(if $(filter ANDROID iOS,$(OS)),CFLAGS="$(if $(debug),-g) $(gb_VISIBILITY_FLAGS)") \
|
||||
$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS="-O3 -DCAIRO_NO_MUTEX -Wno-enum-conversion $(gb_EMSCRIPTEN_CPPFLAGS)" ) \
|
||||
PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:$(gb_UnpackedTarball_workdir)/pixman/builddir/meson-uninstalled" \
|
||||
$(if $(SYSTEM_FREETYPE),,PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:$(gb_UnpackedTarball_workdir)/freetype/instdir/lib/pkgconfig") \
|
||||
$(if $(SYSTEM_FONTCONFIG),,PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:$(gb_UnpackedTarball_workdir)/fontconfig") \
|
||||
$(comment # on android we use system provided libz, but there is no .pc file, so create one for cairo) \
|
||||
$(if $(filter ANDROID,$(OS)), \
|
||||
$(shell mkdir $(gb_UnpackedTarball_workdir)/cairo/missing-system-pc) \
|
||||
$(file >$(gb_UnpackedTarball_workdir)/cairo/missing-system-pc/zlib.pc,$(call gb_pkgconfig_file,zlib,1.2.8,$(ZLIB_CFLAGS),$(ZLIB_LIBS))) \
|
||||
PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:$(gb_UnpackedTarball_workdir)/cairo/missing-system-pc" \
|
||||
) \
|
||||
$(if $(SYSTEM_ZLIB),,PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:$(gb_UnpackedTarball_workdir)/zlib") \
|
||||
$(if $(SYSTEM_LIBPNG),,PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:$(gb_UnpackedTarball_workdir)/libpng") \
|
||||
$(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
|
||||
$(if $(filter-out EMSCRIPTEN ANDROID iOS,$(OS)), \
|
||||
CFLAGS="$(CFLAGS) $(call gb_ExternalProject_get_build_flags,cairo) $(ZLIB_CFLAGS)" \
|
||||
LDFLAGS="$(call gb_ExternalProject_get_link_flags,cairo)" \
|
||||
) \
|
||||
$(if $(filter MACOSX ANDROID iOS,$(OS)),PKG_CONFIG=./dummy_pkg_config) \
|
||||
LIBS="$(ZLIB_LIBS)" \
|
||||
$(if $(filter -fsanitize=%,$(LDFLAGS)),LDFLAGS="$(LDFLAGS) -fuse-ld=bfd") \
|
||||
pixman_CFLAGS="-I$(gb_UnpackedTarball_workdir)/pixman/pixman -pthread" \
|
||||
pixman_LIBS="-L$(gb_UnpackedTarball_workdir)/pixman/pixman/.libs -lpixman-1 \
|
||||
$(if $(filter LINUX,$(OS)),-Wl$(COMMA)-z$(COMMA)origin \
|
||||
-Wl$(COMMA)-rpath$(COMMA)\\\$$\$$ORIGIN) \
|
||||
$(if $(filter -fsanitize=%,$(CC)), \
|
||||
$(if $(filter LINUX-X86_64-TRUE,$(OS)-$(CPUNAME)-$(COM_IS_CLANG)), \
|
||||
-Wc$(COMMA)-rtlib=compiler-rt))" \
|
||||
png_REQUIRES="trick_configure_into_using_png_CFLAGS_and_LIBS" \
|
||||
png_CFLAGS="$(LIBPNG_CFLAGS)" png_LIBS="$(LIBPNG_LIBS)" \
|
||||
$(if $(SYSTEM_FREETYPE),,FREETYPE_CFLAGS="-I$(gb_UnpackedTarball_workdir)/freetype/include") \
|
||||
$(if $(SYSTEM_FONTCONFIG),,FONTCONFIG_CFLAGS="-I$(gb_UnpackedTarball_workdir)/fontconfig") \
|
||||
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
|
||||
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),--disable-shared,--disable-static) \
|
||||
$(if $(filter EMSCRIPTEN ANDROID iOS,$(OS)),--disable-xlib --disable-xcb,$(if $(filter TRUE,$(DISABLE_GUI)),--disable-xlib --disable-xcb,--enable-xlib --enable-xcb)) \
|
||||
$(if $(filter iOS,$(OS)),--enable-quartz --enable-quartz-font) \
|
||||
--disable-valgrind \
|
||||
$(if $(filter iOS,$(OS)),--disable-ft,--enable-ft --enable-fc) \
|
||||
--disable-svg --enable-gtk-doc=no --enable-test-surfaces=no \
|
||||
$(gb_CONFIGURE_PLATFORMS) \
|
||||
$(if $(CROSS_COMPILING),$(if $(filter INTEL ARM,$(CPUNAME)),ac_cv_c_bigendian=no ax_cv_c_float_words_bigendian=no)) \
|
||||
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
|
||||
&& cd src && $(MAKE) \
|
||||
$(MESON) setup --wrap-mode nofallback builddir \
|
||||
$(if $(debug),-Dstrip=false,-Dstrip=true) \
|
||||
$(if $(filter -fsanitize=%,$(CC)),-Db_lundef=false) \
|
||||
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),-Ddefault_library=static,-Ddefault_library=shared) \
|
||||
$(if $(filter EMSCRIPTEN ANDROID iOS,$(OS)),-Dxlib=disabled -Dxcb=disabled,$(if $(filter TRUE,$(DISABLE_GUI)),-Dxlib=disabled -Dxcb=disabled,-Dxlib=enabled -Dxcb=enabled)) \
|
||||
$(if $(filter iOS,$(OS)),-Dquartz=enabled) \
|
||||
$(if $(filter iOS,$(OS)),-Dfreetype=disabled,-Dfreetype=enabled -Dfontconfig=enabled) \
|
||||
-Dgtk_doc=false -Dtests=disabled \
|
||||
$(if $(CROSS_COMPILING),--cross-file cross-file.txt) \
|
||||
$(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \
|
||||
$(if $(filter-out $(BUILD_PLATFORM),$(HOST_PLATFORM))$(WSL),--cross-file cross-file.txt) && \
|
||||
$(MESON) compile -C builddir \
|
||||
$(if $(verbose),--verbose) \
|
||||
)
|
||||
$(call gb_Trace_EndRange,cairo,EXTERNAL)
|
||||
|
||||
|
||||
+44
-15
@@ -13,24 +13,53 @@ $(eval $(call gb_ExternalProject_register_targets,pixman,\
|
||||
build \
|
||||
))
|
||||
|
||||
# ANDROID:
|
||||
# The pixman-cpu.c code wants to read /proc/<pid>/auxv, but
|
||||
# the Android headers don't define Elf32_auxv_t.
|
||||
#
|
||||
# Maybe we should instead just patch the arm_has_* booleans in
|
||||
# pixman-cpu.c to be hardcoded as TRUE and patch out the run-time
|
||||
# check?
|
||||
$(eval $(call gb_ExternalProject_use_externals,pixman,\
|
||||
meson \
|
||||
))
|
||||
|
||||
# We cannot use environment vars inside the meson cross-build file,
|
||||
# so we're going to have to generate one on-the-fly.
|
||||
# mungle variables into python list format
|
||||
python_listify = '$(subst $(WHITESPACE),'$(COMMA)',$(strip $(1)))'
|
||||
cross_c = $(call python_listify,$(gb_CC))
|
||||
cross_cxx = $(call python_listify,$(gb_CXX))
|
||||
cross_ld := $(call python_listify,$(subst -fuse-ld=,,$(USE_LD)))
|
||||
|
||||
define gb_pixman_cross_compile
|
||||
[binaries]
|
||||
c = [$(cross_c)]
|
||||
cpp = [$(cross_cxx)]
|
||||
c_ld = [$(cross_ld)]
|
||||
cpp_ld = [$(cross_ld)]
|
||||
ar = '$(AR)'
|
||||
strip = '$(STRIP)'
|
||||
# TODO: this is pretty ugly...
|
||||
[host_machine]
|
||||
system = '$(if $(filter WNT,$(OS)),windows,$(if $(filter MACOSX,$(OS)),darwin,$(if $(filter ANDROID,$(OS)),android,linux)))'
|
||||
cpu_family = '$(subst X86_64,x86_64,$(RTL_ARCH))'
|
||||
cpu = '$(if $(filter x86,$(RTL_ARCH)),i686,$(if $(filter X86_64,$(RTL_ARCH)),x86_64,$(if $(filter AARCH64,$(RTL_ARCH)),aarch64,armv7)))'
|
||||
endian = '$(ENDIANNESS)'
|
||||
endef
|
||||
|
||||
$(call gb_ExternalProject_get_state_target,pixman,build) :
|
||||
$(call gb_Trace_StartRange,pixman,EXTERNAL)
|
||||
$(file >$(gb_UnpackedTarball_workdir)/pixman/cross-file.txt,$(gb_pixman_cross_compile))
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
$(gb_RUN_CONFIGURE) ./configure \
|
||||
$(if $(filter TRUE,$(DISABLE_DYNLOADING)),--disable-shared,--disable-static) \
|
||||
$(if $(filter ANDROID,$(OS)),--disable-arm-simd --disable-arm-neon --disable-arm-a64-neon --disable-arm-iwmmxt) \
|
||||
$(gb_CONFIGURE_PLATFORMS) \
|
||||
$(if $(CROSS_COMPILING),$(if $(filter INTEL ARM,$(CPUNAME)),ac_cv_c_bigendian=no)) \
|
||||
$(if $(filter EMSCRIPTEN,$(OS)),CFLAGS="-O3 -pthread -msimd128") \
|
||||
$(if $(filter -fsanitize=undefined,$(CC)),CC='$(CC) -fno-sanitize=function') \
|
||||
&& $(MAKE) \
|
||||
export PIXMAP_CFLAGS="\
|
||||
$(if $(call gb_Module__symbols_enabled,pixman),$(gb_DEBUGINFO_FLAGS) ) \
|
||||
$(if $(filter EMSCRIPTEN,$(OS)),-O3 -pthread -msimd128 ) \
|
||||
$(if $(filter -fsanitize=undefined,$(CC)),-fno-sanitize=function ) \
|
||||
" && \
|
||||
$(MESON) setup --wrap-mode nofallback builddir \
|
||||
-Ddefault_library=$(if $(filter TRUE,$(DISABLE_DYNLOADING)),static,shared) \
|
||||
$(if $(call gb_Module__symbols_enabled,pixman),-Dc_args="$$PIXMAP_CFLAGS") \
|
||||
$(if $(filter ANDROID,$(OS)),-Darm-simd=disabled -Dneon=disabled -Da64-neon=disabled) \
|
||||
-Dbuildtype=$(if $(ENABLE_DBGUTIL),debug,$(if $(ENABLE_DEBUG),debugoptimized,release)) \
|
||||
-Dauto_features=disabled \
|
||||
-Dtests=disabled \
|
||||
$(if $(filter-out $(BUILD_PLATFORM),$(HOST_PLATFORM))$(WSL),--cross-file cross-file.txt) && \
|
||||
$(MESON) compile -C builddir \
|
||||
$(if $(verbose),--verbose) \
|
||||
)
|
||||
$(call gb_Trace_EndRange,pixman,EXTERNAL)
|
||||
|
||||
|
||||
+16
-29
@@ -13,40 +13,27 @@ $(eval $(call gb_UnpackedTarball_set_tarball,cairo,$(CAIRO_TARBALL),,cairo))
|
||||
|
||||
$(eval $(call gb_UnpackedTarball_set_patchlevel,cairo,2))
|
||||
|
||||
# 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'
|
||||
|
||||
# ofz50805.patch https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/350
|
||||
# ofz46165.patch upstreamed as https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/351
|
||||
# san.patch upstreamed as https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/352
|
||||
|
||||
# The avoid-negative-left-shift patch, I'm not sure if it's the right thing. It triggers in JunitTest_chart2_unoapi.
|
||||
#
|
||||
# The ubsan-memcpy-nullptr is reported at https://gitlab.freedesktop.org/cairo/cairo/-/issues/884
|
||||
#
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,cairo,\
|
||||
external/cairo/cairo/cairo.buildfix.patch \
|
||||
external/cairo/cairo/cairo.RGB24_888.patch \
|
||||
external/cairo/cairo/cairo-libtool-rpath.patch.1 \
|
||||
external/cairo/cairo/cairo.oldfreetype.patch \
|
||||
external/cairo/cairo/san.patch.0 \
|
||||
external/cairo/cairo/cairo.ofz46165.patch.1 \
|
||||
external/cairo/cairo/cairo.ofz50805.patch.1 \
|
||||
external/cairo/cairo/0025-libtool-pass-use-ld.patch \
|
||||
external/cairo/cairo/libcairo-bundled-soname.patch.0 \
|
||||
external/cairo/cairo/cairo-fd-hack.patch.0 \
|
||||
external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \
|
||||
external/cairo/cairo/shm-null-deref.patch.1 \
|
||||
external/cairo/cairo/Wincompatible-pointer-types.patch.0 \
|
||||
external/cairo/cairo/cairo.RGB24_888.patch \
|
||||
external/cairo/cairo/san.patch.0 \
|
||||
external/cairo/cairo/libcairo-bundled-soname.patch.1 \
|
||||
external/cairo/cairo/cairo-fd-hack.patch.0 \
|
||||
external/cairo/cairo/cairo.ofz57493-Timeout.patch.1 \
|
||||
external/cairo/cairo/shm-null-deref.patch.1 \
|
||||
external/cairo/cairo/avoid-negative-left-shift.patch.1 \
|
||||
external/cairo/cairo/ubsan-memcpy-nullptr.patch.1 \
|
||||
external/cairo/cairo/ubsan-memcpy-nullptr2.patch.1 \
|
||||
external/cairo/cairo/Wincompatible-pointer-types.patch.0 \
|
||||
external/cairo/cairo/disable-cairo-utilities.patch.1 \
|
||||
))
|
||||
|
||||
ifeq ($(OS),iOS)
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,cairo,\
|
||||
external/cairo/cairo/cairo-1.10.2.no-atsui.patch \
|
||||
external/cairo/cairo/cairo-1.10.2.ios.patch \
|
||||
))
|
||||
endif
|
||||
|
||||
ifeq ($(ENABLE_CAIRO_RGBA),TRUE)
|
||||
$(eval $(call gb_UnpackedTarball_add_patches,cairo,\
|
||||
external/cairo/cairo/cairo.GL_RGBA.patch \
|
||||
external/cairo/cairo/cairo.GL_RGBA.patch \
|
||||
))
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
--- a/cairo/build/ltmain.sh 2022-05-04 16:12:17.409012360 +0100
|
||||
+++ b/cairo/build/ltmain.sh 2022-05-04 16:12:42.510870063 +0100
|
||||
@@ -7273,11 +7273,12 @@
|
||||
# --sysroot=* for sysroot support
|
||||
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
|
||||
# -specs=* GCC specs files
|
||||
+ # -fuse-ld=* Linker select flags for GCC
|
||||
# -stdlib=* select c++ std lib with clang
|
||||
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
|
||||
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
|
||||
-O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
|
||||
- -specs=*)
|
||||
+ -specs=*|-fuse-ld=*)
|
||||
func_quote_for_eval "$arg"
|
||||
arg=$func_quote_for_eval_result
|
||||
func_append compile_command " $arg"
|
||||
@@ -0,0 +1,14 @@
|
||||
Only in cairo: builddir
|
||||
Only in cairo: build.log
|
||||
diff -ur cairo.org/src/cairo-fixed-private.h cairo/src/cairo-fixed-private.h
|
||||
--- cairo.org/src/cairo-fixed-private.h 2025-01-30 11:47:24.708589118 +0200
|
||||
+++ cairo/src/cairo-fixed-private.h 2025-01-30 11:48:36.632864262 +0200
|
||||
@@ -265,7 +265,7 @@
|
||||
} else if ((f >> CAIRO_FIXED_FRAC_BITS) > INT16_MAX) {
|
||||
x = INT32_MAX;
|
||||
} else {
|
||||
- x = f << (16 - CAIRO_FIXED_FRAC_BITS);
|
||||
+ x = (cairo_fixed_t)((unsigned)f << (16 - CAIRO_FIXED_FRAC_BITS));
|
||||
}
|
||||
|
||||
return x;
|
||||
-27
@@ -1,27 +0,0 @@
|
||||
--- misc/cairo-1.10.2/configure 2011-12-16 10:02:39.626077757 +0100
|
||||
+++ misc/build/cairo-1.10.2/configure 2011-12-16 10:02:23.518237109 +0100
|
||||
@@ -22766,11 +22766,13 @@
|
||||
|
||||
|
||||
ac_fn_c_check_header_mongrel "$LINENO" "ApplicationServices/ApplicationServices.h" "ac_cv_header_ApplicationServices_ApplicationServices_h" "$ac_includes_default"
|
||||
+if false; then
|
||||
if test "x$ac_cv_header_ApplicationServices_ApplicationServices_h" = x""yes; then :
|
||||
|
||||
else
|
||||
use_quartz="no (requires ApplicationServices framework)"
|
||||
fi
|
||||
+fi
|
||||
|
||||
|
||||
if test "x$use_quartz" != "xyes" ; then
|
||||
--- misc/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 10:02:39.639079241 +0100
|
||||
+++ misc/build/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 10:01:18.404789245 +0100
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
#if CAIRO_HAS_QUARTZ_SURFACE
|
||||
|
||||
-#include <ApplicationServices/ApplicationServices.h>
|
||||
+#include <CoreGraphics/CoreGraphics.h>
|
||||
|
||||
CAIRO_BEGIN_DECLS
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
--- misc/cairo-1.10.2/src/cairo-quartz-font.c 2010-12-25 15:21:34.000000000 +0100
|
||||
+++ misc/build/cairo-1.10.2/src/cairo-quartz-font.c 2011-12-16 09:54:18.672445207 +0100
|
||||
@@ -777,7 +777,7 @@
|
||||
return ffont->cgFont;
|
||||
}
|
||||
|
||||
-#ifndef __LP64__
|
||||
+#if 0
|
||||
/*
|
||||
* compat with old ATSUI backend
|
||||
*/
|
||||
--- misc/cairo-1.10.2/src/cairo-quartz.h 2010-06-18 13:47:13.000000000 +0200
|
||||
+++ misc/build/cairo-1.10.2/src/cairo-quartz.h 2011-12-16 09:52:53.081501547 +0100
|
||||
@@ -66,7 +66,7 @@
|
||||
cairo_public cairo_font_face_t *
|
||||
cairo_quartz_font_face_create_for_cgfont (CGFontRef font);
|
||||
|
||||
-#ifndef __LP64__
|
||||
+#if 0
|
||||
cairo_public cairo_font_face_t *
|
||||
cairo_quartz_font_face_create_for_atsu_font_id (ATSUFontID font_id);
|
||||
#endif
|
||||
@@ -1,12 +0,0 @@
|
||||
Prevent libtool from adding annoying stuff to RPATH
|
||||
|
||||
--- cairo/configure.orig 2018-10-19 22:20:08.000000000 +0200
|
||||
+++ cairo/configure 2019-09-04 17:53:00.927539686 +0200
|
||||
@@ -10432,6 +10432,7 @@
|
||||
else
|
||||
ld_shlibs=no
|
||||
fi
|
||||
+hardcode_libdir_flag_spec=
|
||||
;;
|
||||
|
||||
netbsd*)
|
||||
+18
-19
@@ -14,27 +14,26 @@
|
||||
return CAIRO_FORMAT_RGB24;
|
||||
case PIXMAN_a8:
|
||||
return CAIRO_FORMAT_A8;
|
||||
@@ -109,7 +109,7 @@
|
||||
@@ -109,15 +109,15 @@
|
||||
return CAIRO_FORMAT_A1;
|
||||
case PIXMAN_r5g6b5:
|
||||
return CAIRO_FORMAT_RGB16_565;
|
||||
- case PIXMAN_r8g8b8:
|
||||
+ case PIXMAN_b8g8r8: //tweaked
|
||||
- case PIXMAN_r8g8b8:
|
||||
+ case PIXMAN_b8g8r8: //tweaked
|
||||
return CAIRO_FORMAT_RGB24_888;
|
||||
#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0,22,0)
|
||||
case PIXMAN_r8g8b8a8: case PIXMAN_r8g8b8x8:
|
||||
@@ -117,8 +117,8 @@
|
||||
#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0,27,2)
|
||||
case PIXMAN_a8r8g8b8_sRGB:
|
||||
#if HAS_PIXMAN_r8g8b8_sRGB
|
||||
case PIXMAN_r8g8b8_sRGB:
|
||||
#endif
|
||||
- case PIXMAN_a8b8g8r8: case PIXMAN_x8b8g8r8:
|
||||
- case PIXMAN_a8b8g8r8: case PIXMAN_x8b8g8r8:
|
||||
- case PIXMAN_b8g8r8: case PIXMAN_b5g6r5:
|
||||
+ case PIXMAN_a8r8g8b8: case PIXMAN_x8r8g8b8: //tweaked
|
||||
+ case PIXMAN_r8g8b8: case PIXMAN_b5g6r5:
|
||||
case PIXMAN_a1r5g5b5: case PIXMAN_x1r5g5b5: case PIXMAN_a1b5g5r5:
|
||||
case PIXMAN_x1b5g5r5: case PIXMAN_a4r4g4b4: case PIXMAN_x4r4g4b4:
|
||||
case PIXMAN_a4b4g4r4: case PIXMAN_x4b4g4r4: case PIXMAN_r3g3b2:
|
||||
@@ -320,7 +320,7 @@
|
||||
@@ -335,7 +335,7 @@
|
||||
ret = PIXMAN_a8;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
@@ -43,7 +42,7 @@
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB30:
|
||||
ret = PIXMAN_x2r10g10b10;
|
||||
@@ -335,12 +335,12 @@
|
||||
@@ -350,12 +350,12 @@
|
||||
ret = PIXMAN_rgba_float;
|
||||
break;
|
||||
case CAIRO_FORMAT_RGB24_888:
|
||||
@@ -60,7 +59,7 @@
|
||||
return ret;
|
||||
--- misc/cairo-1.10.2/src/cairo-ft-font.c
|
||||
+++ misc/cairo-1.10.2/src/cairo-ft-font.c
|
||||
@@ -1318,6 +1321,19 @@
|
||||
@@ -1331,6 +1331,19 @@
|
||||
memcpy (data, bitmap->buffer, (size_t)stride * height);
|
||||
}
|
||||
|
||||
@@ -80,15 +79,15 @@
|
||||
if (!_cairo_is_little_endian ())
|
||||
{
|
||||
/* Byteswap. */
|
||||
@@ -2573,7 +2589,7 @@
|
||||
if (unlikely (status))
|
||||
return status;
|
||||
|
||||
- if (pixman_image_get_format (surface->pixman_image) == PIXMAN_a8r8g8b8 &&
|
||||
+ if (pixman_image_get_format (surface->pixman_image) == PIXMAN_a8b8g8r8 &&
|
||||
!pixman_image_get_component_alpha (surface->pixman_image)) {
|
||||
_cairo_scaled_glyph_set_color_surface (scaled_glyph,
|
||||
&scaled_font->base,
|
||||
@@ -2679,7 +2692,7 @@
|
||||
/* We tried loading a color glyph and can now check if we got
|
||||
* a color glyph and set scaled_glyph->color_glyph
|
||||
* accordingly */
|
||||
- if (pixman_image_get_format (surface->pixman_image) == PIXMAN_a8r8g8b8 &&
|
||||
+ if (pixman_image_get_format (surface->pixman_image) == PIXMAN_a8b8g8r8 &&
|
||||
!pixman_image_get_component_alpha (surface->pixman_image))
|
||||
{
|
||||
_cairo_scaled_glyph_set_color_surface (scaled_glyph,
|
||||
--- misc/cairo-1.10.2/src/cairo-image-compositor.c
|
||||
+++ misc/cairo-1.10.2/src/cairo-image-compositor.c
|
||||
@@ -1074,7 +1074,7 @@
|
||||
|
||||
+15
-14
@@ -1,7 +1,7 @@
|
||||
diff -ru cairo-1.17.4.orig/src/cairo.h cairo-1.17.4/src/cairo.h
|
||||
--- misc/cairo-1.17.4.orig/src/cairo.h 2021-08-29 19:43:26.976435721 +0100
|
||||
+++ misc/build/cairo-1.17.4/src/cairo.h 2021-08-29 19:47:41.373919330 +0100
|
||||
@@ -407,6 +407,8 @@
|
||||
@@ -420,6 +420,8 @@
|
||||
* @CAIRO_FORMAT_RGB30: like RGB24 but with 10bpc. (Since 1.12)
|
||||
* @CAIRO_FORMAT_RGB96F: 3 floats, R, G, B. (Since 1.17.2)
|
||||
* @CAIRO_FORMAT_RGBA128F: 4 floats, R, G, B, A. (Since 1.17.2)
|
||||
@@ -10,7 +10,7 @@ diff -ru cairo-1.17.4.orig/src/cairo.h cairo-1.17.4/src/cairo.h
|
||||
*
|
||||
* #cairo_format_t is used to identify the memory format of
|
||||
* image data.
|
||||
@@ -424,9 +426,16 @@
|
||||
@@ -437,10 +439,18 @@
|
||||
CAIRO_FORMAT_RGB16_565 = 4,
|
||||
CAIRO_FORMAT_RGB30 = 5,
|
||||
CAIRO_FORMAT_RGB96F = 6,
|
||||
@@ -19,15 +19,17 @@ diff -ru cairo-1.17.4.orig/src/cairo.h cairo-1.17.4/src/cairo.h
|
||||
+ CAIRO_FORMAT_RGB24_888 = 8
|
||||
} cairo_format_t;
|
||||
|
||||
+/**
|
||||
/**
|
||||
+ * Need this until CAIRO_FORMAT_RGB24_888 is in some official release.
|
||||
+ * Otherwise we can't reliably check if this is available or we should
|
||||
+ * convert from 24-bit RGB to 32-bit RGB before passing to Cairo.
|
||||
+ **/
|
||||
+#define HAVE_CAIRO_FORMAT_RGB24_888
|
||||
|
||||
/**
|
||||
* cairo_write_func_t:
|
||||
+
|
||||
+/**
|
||||
* cairo_dither_t:
|
||||
* @CAIRO_DITHER_NONE: No dithering.
|
||||
* @CAIRO_DITHER_DEFAULT: Default choice at cairo compile time. Currently NONE.
|
||||
diff -ru cairo-1.17.4.orig/src/cairo-image-source.c cairo-1.17.4/src/cairo-image-source.c
|
||||
--- misc/cairo-1.17.4.orig/src/cairo-image-source.c 2021-08-29 19:43:26.979435585 +0100
|
||||
+++ misc/build/cairo-1.17.4/src/cairo-image-source.c 2021-08-29 19:43:47.501506559 +0100
|
||||
@@ -54,24 +56,23 @@ diff -ru cairo-1.17.4.orig/src/cairo-image-source.c cairo-1.17.4/src/cairo-image
|
||||
diff -ru cairo-1.17.4.orig/src/cairo-image-surface.c cairo-1.17.4/src/cairo-image-surface.c
|
||||
--- misc/cairo-1.17.4.orig/src/cairo-image-surface.c 2021-08-29 19:43:26.982435449 +0100
|
||||
+++ misc/build/cairo-1.17.4/src/cairo-image-surface.c 2021-08-29 19:43:47.501506559 +0100
|
||||
@@ -109,13 +109,15 @@
|
||||
@@ -109,12 +109,14 @@
|
||||
return CAIRO_FORMAT_A1;
|
||||
case PIXMAN_r5g6b5:
|
||||
return CAIRO_FORMAT_RGB16_565;
|
||||
+ case PIXMAN_r8g8b8:
|
||||
+ case PIXMAN_r8g8b8:
|
||||
+ return CAIRO_FORMAT_RGB24_888;
|
||||
#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0,22,0)
|
||||
case PIXMAN_r8g8b8a8: case PIXMAN_r8g8b8x8:
|
||||
#endif
|
||||
#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0,27,2)
|
||||
case PIXMAN_a8r8g8b8_sRGB:
|
||||
#if HAS_PIXMAN_r8g8b8_sRGB
|
||||
case PIXMAN_r8g8b8_sRGB:
|
||||
#endif
|
||||
- case PIXMAN_a8b8g8r8: case PIXMAN_x8b8g8r8: case PIXMAN_r8g8b8:
|
||||
+ case PIXMAN_a8b8g8r8: case PIXMAN_x8b8g8r8:
|
||||
+ case PIXMAN_a8b8g8r8: case PIXMAN_x8b8g8r8:
|
||||
case PIXMAN_b8g8r8: case PIXMAN_b5g6r5:
|
||||
case PIXMAN_a1r5g5b5: case PIXMAN_x1r5g5b5: case PIXMAN_a1b5g5r5:
|
||||
case PIXMAN_x1b5g5r5: case PIXMAN_a4r4g4b4: case PIXMAN_x4r4g4b4:
|
||||
@@ -332,6 +334,9 @@
|
||||
@@ -347,6 +349,9 @@
|
||||
case CAIRO_FORMAT_RGBA128F:
|
||||
ret = PIXMAN_rgba_float;
|
||||
break;
|
||||
@@ -81,7 +82,7 @@ diff -ru cairo-1.17.4.orig/src/cairo-image-surface.c cairo-1.17.4/src/cairo-imag
|
||||
case CAIRO_FORMAT_ARGB32:
|
||||
case CAIRO_FORMAT_INVALID:
|
||||
default:
|
||||
@@ -736,6 +741,8 @@
|
||||
@@ -743,6 +748,8 @@
|
||||
case CAIRO_FORMAT_RGB30:
|
||||
case CAIRO_FORMAT_RGB24:
|
||||
return 32;
|
||||
|
||||
-122
@@ -1,122 +0,0 @@
|
||||
diff -ru cairo-1.17.4.orig/build/Makefile.win32.features cairo-1.17.4/build/Makefile.win32.features
|
||||
--- misc/cairo-1.17.4.orig/build/Makefile.win32.features 2021-08-29 19:43:27.093430425 +0100
|
||||
+++ misc/build/cairo-1.17.4/build/Makefile.win32.features 2021-08-29 19:43:47.496506785 +0100
|
||||
@@ -30,7 +30,7 @@
|
||||
CAIRO_HAS_FC_FONT=0
|
||||
CAIRO_HAS_PS_SURFACE=1
|
||||
CAIRO_HAS_PDF_SURFACE=1
|
||||
-CAIRO_HAS_SVG_SURFACE=1
|
||||
+CAIRO_HAS_SVG_SURFACE=0
|
||||
CAIRO_HAS_TEST_SURFACES=0
|
||||
CAIRO_HAS_TEE_SURFACE=0
|
||||
CAIRO_HAS_XML_SURFACE=0
|
||||
diff -ru cairo-1.17.4.orig/configure cairo-1.17.4/configure
|
||||
--- misc/cairo-1.17.4.orig/configure 2021-08-29 19:43:26.966436173 +0100
|
||||
+++ misc/build/cairo-1.17.4/configure 2021-08-29 19:43:47.500506604 +0100
|
||||
@@ -17149,61 +17149,12 @@
|
||||
rm -f confcache
|
||||
|
||||
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5
|
||||
-$as_echo_n "checking for compress in -lz... " >&6; }
|
||||
-if ${ac_cv_lib_z_compress+:} false; then :
|
||||
- $as_echo_n "(cached) " >&6
|
||||
-else
|
||||
- ac_check_lib_save_LIBS=$LIBS
|
||||
-LIBS="-lz $LIBS"
|
||||
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
-/* end confdefs.h. */
|
||||
-
|
||||
-/* Override any GCC internal prototype to avoid an error.
|
||||
- Use char because int might match the return type of a GCC
|
||||
- builtin and then its argument prototype would still apply. */
|
||||
-#ifdef __cplusplus
|
||||
-extern "C"
|
||||
-#endif
|
||||
-char compress ();
|
||||
-int
|
||||
-main ()
|
||||
-{
|
||||
-return compress ();
|
||||
- ;
|
||||
- return 0;
|
||||
-}
|
||||
-_ACEOF
|
||||
-if ac_fn_c_try_link "$LINENO"; then :
|
||||
- ac_cv_lib_z_compress=yes
|
||||
-else
|
||||
- ac_cv_lib_z_compress=no
|
||||
-fi
|
||||
-rm -f core conftest.err conftest.$ac_objext \
|
||||
- conftest$ac_exeext conftest.$ac_ext
|
||||
-LIBS=$ac_check_lib_save_LIBS
|
||||
-fi
|
||||
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5
|
||||
-$as_echo "$ac_cv_lib_z_compress" >&6; }
|
||||
-if test "x$ac_cv_lib_z_compress" = xyes; then :
|
||||
- ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
|
||||
-if test "x$ac_cv_header_zlib_h" = xyes; then :
|
||||
|
||||
have_libz=yes
|
||||
|
||||
$as_echo "#define HAVE_ZLIB 1" >>confdefs.h
|
||||
|
||||
|
||||
-else
|
||||
- have_libz="no (requires zlib http://www.gzip.org/zlib/)"
|
||||
-fi
|
||||
-
|
||||
-
|
||||
-else
|
||||
- have_libz="no (requires zlib http://www.gzip.org/zlib/)"
|
||||
-fi
|
||||
-
|
||||
-
|
||||
save_LIBS="$LIBS"
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lzo2a_decompress in -llzo2" >&5
|
||||
$as_echo_n "checking for lzo2a_decompress in -llzo2... " >&6; }
|
||||
@@ -24319,7 +24270,7 @@
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - OK" >&5
|
||||
$as_echo "$FREETYPE_VERSION - OK" >&6; }
|
||||
ft_NONPKGCONFIG_CFLAGS=`$FREETYPE_CONFIG --cflags`
|
||||
- ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs`
|
||||
+ ft_NONPKGCONFIG_LIBS=`$FREETYPE_CONFIG --libs | $SED -e 's/-lz//g'`
|
||||
else { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_VERSION - Too old" >&5
|
||||
$as_echo "$FREETYPE_VERSION - Too old" >&6; }
|
||||
use_ft="no ($FREETYPE_VERSION found; version $FREETYPE_MIN_VERSION from release $FREETYPE_MIN_RELEASE required)"
|
||||
@@ -24329,7 +24280,7 @@
|
||||
fi
|
||||
|
||||
ft_CFLAGS="$FREETYPE_CFLAGS"
|
||||
- ft_LIBS="$FREETYPE_LIBS"
|
||||
+ ft_LIBS=`echo "$FREETYPE_LIBS" | $SED -e 's/-lz//g'`
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's FreeType font backend feature could be enabled" >&5
|
||||
@@ -24962,7 +24913,7 @@
|
||||
|
||||
# The ps backend requires zlib.
|
||||
use_ps=$have_libz
|
||||
- ps_NONPKGCONFIG_LIBS=-lz
|
||||
+ ps_NONPKGCONFIG_LIBS=$ZLIB3RDLIB
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's PostScript surface backend feature could be enabled" >&5
|
||||
@@ -25355,7 +25306,7 @@
|
||||
|
||||
# The pdf backend requires zlib.
|
||||
use_pdf=$have_libz
|
||||
- pdf_NONPKGCONFIG_LIBS=-lz
|
||||
+ pdf_NONPKGCONFIG_LIBS=$ZLIB3RDLIB
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cairo's PDF surface backend feature could be enabled" >&5
|
||||
@@ -27218,7 +27169,7 @@
|
||||
use_xml="no (requires --enable-png)"
|
||||
else
|
||||
use_xml=$have_libz
|
||||
- xml_NONPKGCONFIG_LIBS=-lz
|
||||
+ xml_NONPKGCONFIG_LIBS=$ZLIB3RDLIB
|
||||
fi
|
||||
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
--- a/src/cairo-pen.c 2022-03-30 09:48:14.702456922 +0100
|
||||
+++ b/src/cairo-pen.c 2022-03-30 09:50:40.011793460 +0100
|
||||
@@ -289,7 +289,12 @@
|
||||
} else if (tolerance >= major_axis) {
|
||||
num_vertices = 4;
|
||||
} else {
|
||||
- num_vertices = ceil (2*M_PI / acos (1 - tolerance / major_axis));
|
||||
+ double divisor = acos (1 - tolerance / major_axis);
|
||||
+
|
||||
+ if (divisor == 0.0)
|
||||
+ return 4;
|
||||
+
|
||||
+ num_vertices = ceil (2*M_PI / divisor);
|
||||
|
||||
/* number of vertices must be even */
|
||||
if (num_vertices % 2)
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
--- a/src/cairo-ft-font.c 2022-08-31 09:46:52.595160200 +0100
|
||||
+++ b/src/cairo-ft-font.c 2022-08-31 09:47:41.623945654 +0100
|
||||
@@ -2568,9 +2568,11 @@
|
||||
if (unlikely (status))
|
||||
cairo_surface_destroy (&surface->base);
|
||||
}
|
||||
- if (unlikely (status))
|
||||
- return status;
|
||||
}
|
||||
+
|
||||
+ if (unlikely (status))
|
||||
+ return status;
|
||||
+
|
||||
if (pixman_image_get_format (surface->pixman_image) == PIXMAN_a8r8g8b8 &&
|
||||
!pixman_image_get_component_alpha (surface->pixman_image)) {
|
||||
_cairo_scaled_glyph_set_color_surface (scaled_glyph,
|
||||
@@ -0,0 +1,11 @@
|
||||
--- cairo/meson.build
|
||||
+++ cairo/meson.build
|
||||
@@ -790,8 +790,6 @@
|
||||
cairoboilerplate_dep = dependency('', required: false)
|
||||
endif
|
||||
|
||||
-subdir('util')
|
||||
-
|
||||
if not get_option('tests').disabled() and feature_conf.get('CAIRO_HAS_PNG_FUNCTIONS', 0) == 1
|
||||
subdir('test')
|
||||
subdir('perf')
|
||||
@@ -1,12 +0,0 @@
|
||||
# -*- Mode: Diff -*-
|
||||
--- src/Makefile.in
|
||||
+++ src/Makefile.in
|
||||
@@ -2075,7 +2075,7 @@
|
||||
$(enabled_cairo_sources) \
|
||||
$(NULL)
|
||||
|
||||
-libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
|
||||
+libcairo_la_LDFLAGS = $(AM_LDFLAGS) -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols) -release lo -Wl,-soname -Wl,libcairo-lo.so.2
|
||||
libcairo_la_LIBADD = $(CAIRO_LIBS)
|
||||
libcairo_la_DEPENDENCIES = $(cairo_def_dependency)
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff -ur cairo.org/src/meson.build cairo/src/meson.build
|
||||
--- cairo.org/src/meson.build 2025-01-29 14:45:14.418331058 +0200
|
||||
+++ cairo/src/meson.build 2025-01-29 14:45:46.897440936 +0200
|
||||
@@ -240,7 +240,7 @@
|
||||
add_project_arguments('-DCAIRO_WIN32_STATIC_BUILD', language: 'c')
|
||||
endif
|
||||
|
||||
-libcairo = library('cairo', cairo_sources,
|
||||
+libcairo = library('cairo-lo', cairo_sources,
|
||||
dependencies: deps,
|
||||
c_args: cairo_no_warn_c_args + pthread_c_args + ['-DCAIRO_COMPILATION'],
|
||||
cpp_args: cairo_no_warn_c_args + pthread_c_args + ['-DCAIRO_COMPILATION'],
|
||||
Vendored
+3
-55
@@ -1,60 +1,8 @@
|
||||
--- configure 2022-08-27 10:09:35.721992976 +0100
|
||||
+++ configure 2022-08-27 10:10:00.363873391 +0100
|
||||
@@ -14940,7 +14940,8 @@
|
||||
|
||||
MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common"
|
||||
|
||||
-MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2"
|
||||
+# breaks msan
|
||||
+# MAYBE_WARN="$MAYBE_WARN -Wp,-D_FORTIFY_SOURCE=2"
|
||||
|
||||
# invalidate cached value if MAYBE_WARN has changed
|
||||
if test "x$cairo_cv_warn_maybe" != "x$MAYBE_WARN"; then
|
||||
--- src/cairo-fixed-private.h
|
||||
+++ src/cairo-fixed-private.h
|
||||
@@ -61,7 +61,7 @@
|
||||
static inline cairo_fixed_t
|
||||
_cairo_fixed_from_int (int i)
|
||||
{
|
||||
- return i << CAIRO_FIXED_FRAC_BITS;
|
||||
+ return (unsigned)i << CAIRO_FIXED_FRAC_BITS;
|
||||
}
|
||||
|
||||
/* This is the "magic number" approach to converting a double into fixed
|
||||
@@ -249,7 +249,7 @@
|
||||
} else if ((f >> CAIRO_FIXED_FRAC_BITS) > INT16_MAX) {
|
||||
x = INT32_MAX;
|
||||
} else {
|
||||
- x = f << (16 - CAIRO_FIXED_FRAC_BITS);
|
||||
+ x = (uint32_t)f << (16 - CAIRO_FIXED_FRAC_BITS);
|
||||
}
|
||||
|
||||
return x;
|
||||
--- src/cairo-gstate.c
|
||||
+++ src/cairo-gstate.c
|
||||
@@ -2297,7 +2297,7 @@
|
||||
if (!drop || KEEP_GLYPH (transformed_glyphs[j]))
|
||||
j++;
|
||||
}
|
||||
- memcpy (transformed_clusters, clusters,
|
||||
+ if (num_clusters != 0) memcpy (transformed_clusters, clusters,
|
||||
num_clusters * sizeof (cairo_text_cluster_t));
|
||||
} else {
|
||||
const cairo_glyph_t *cur_glyph;
|
||||
@@ -2352,7 +2352,7 @@
|
||||
if (! drop || KEEP_GLYPH (transformed_glyphs[j]))
|
||||
j++;
|
||||
}
|
||||
- memcpy (transformed_clusters, clusters,
|
||||
+ if (num_clusters != 0) memcpy (transformed_clusters, clusters,
|
||||
num_clusters * sizeof (cairo_text_cluster_t));
|
||||
} else {
|
||||
const cairo_glyph_t *cur_glyph;
|
||||
--- src/cairo-surface.c
|
||||
+++ src/cairo-surface.c
|
||||
@@ -2849,7 +2849,7 @@
|
||||
|
||||
if (_cairo_scaled_font_has_color_glyphs (scaled_font)) {
|
||||
@@ -2952,7 +2952,7 @@
|
||||
scaled_font->options.color_mode != CAIRO_COLOR_MODE_NO_COLOR)
|
||||
{
|
||||
utf8_copy = malloc (sizeof (char) * utf8_len);
|
||||
- memcpy (utf8_copy, utf8, sizeof (char) * utf8_len);
|
||||
+ if (utf8_len != 0) memcpy (utf8_copy, utf8, sizeof (char) * utf8_len);
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
diff -ur cairo.org/src/cairo-gstate.c cairo/src/cairo-gstate.c
|
||||
--- cairo.org/src/cairo-gstate.c 2025-01-30 12:44:31.337402299 +0200
|
||||
+++ cairo/src/cairo-gstate.c 2025-01-30 12:45:23.443833793 +0200
|
||||
@@ -2357,8 +2357,9 @@
|
||||
if (! drop || KEEP_GLYPH (transformed_glyphs[j]))
|
||||
j++;
|
||||
}
|
||||
- memcpy (transformed_clusters, clusters,
|
||||
- num_clusters * sizeof (cairo_text_cluster_t));
|
||||
+ if (num_clusters)
|
||||
+ memcpy (transformed_clusters, clusters,
|
||||
+ num_clusters * sizeof (cairo_text_cluster_t));
|
||||
} else {
|
||||
const cairo_glyph_t *cur_glyph;
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
diff -ur cairo.org/src/cairo-gstate.c cairo/src/cairo-gstate.c
|
||||
--- cairo.org/src/cairo-gstate.c 2025-01-30 12:53:23.553726623 +0200
|
||||
+++ cairo/src/cairo-gstate.c 2025-01-30 12:54:05.543062183 +0200
|
||||
@@ -2302,8 +2302,9 @@
|
||||
if (!drop || KEEP_GLYPH (transformed_glyphs[j]))
|
||||
j++;
|
||||
}
|
||||
- memcpy (transformed_clusters, clusters,
|
||||
- num_clusters * sizeof (cairo_text_cluster_t));
|
||||
+ if (num_clusters != 0)
|
||||
+ memcpy (transformed_clusters, clusters,
|
||||
+ num_clusters * sizeof (cairo_text_cluster_t));
|
||||
} else {
|
||||
const cairo_glyph_t *cur_glyph;
|
||||
|
||||
-11
@@ -1,14 +1,3 @@
|
||||
--- misc/pixman-0.24.4/Makefile.in 2011-11-06 22:11:25.000000000 +0100
|
||||
+++ misc/build/pixman-0.24.4/Makefile.in 2011-12-16 09:06:45.317211035 +0100
|
||||
@@ -385,7 +385,7 @@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
-SUBDIRS = pixman demos test
|
||||
+SUBDIRS = pixman
|
||||
pkgconfigdir = $(libdir)/pkgconfig
|
||||
pkgconfig_DATA = pixman-1.pc
|
||||
GPGKEY = 3892336E
|
||||
--- misc/pixman-0.24.4/pixman/pixman-utils.c
|
||||
+++ misc/build/pixman-0.24.4/pixman/pixman-utils.c
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
+3
-6
@@ -38,18 +38,15 @@ diff -ru pixman-0.42.2.orig/pixman/pixman-fast-path.c pixman-0.42.2/pixman/pixma
|
||||
|
||||
px = (x & 0xffff) >> x_phase_shift;
|
||||
py = (y & 0xffff) >> y_phase_shift;
|
||||
@@ -2837,9 +2837,9 @@
|
||||
@@ -2836,7 +2836,7 @@
|
||||
sgtot = CLIP (sgtot, 0, 0xff);
|
||||
sbtot = CLIP (sbtot, 0, 0xff);
|
||||
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
- buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 16) | (sbtot << 24);
|
||||
+ buffer[k] = (satot << 0) | (srtot << 8) | (sgtot << 16) | ((uint32_t)sbtot << 24);
|
||||
#else
|
||||
- buffer[k] = (satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
|
||||
+ buffer[k] = ((uint32_t)satot << 24) | (srtot << 16) | (sgtot << 8) | (sbtot << 0);
|
||||
#endif
|
||||
|
||||
next:
|
||||
vx += ux;
|
||||
diff -ru pixman-0.42.2.orig/pixman/pixman-sse2.c pixman-0.42.2/pixman/pixman-sse2.c
|
||||
--- misc/pixman-0.42.2/pixman/pixman-sse2.c 2022-02-02 05:51:25.000000000 +0900
|
||||
+++ misc/build/pixman-0.42.2/pixman/pixman-sse2.c 2022-11-28 22:11:19.276969466 +0900
|
||||
|
||||
+39
-63
@@ -1,39 +1,15 @@
|
||||
--- a/pixman/pixman/pixman-x86.c
|
||||
+++ b/pixman/pixman/pixman-x86.c
|
||||
@@ -77,13 +77,20 @@
|
||||
@@ -74,6 +74,8 @@
|
||||
|
||||
#else
|
||||
|
||||
-#define _PIXMAN_X86_64 \
|
||||
- (defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64))
|
||||
+#if (defined(__amd64__) || defined(__x86_64__) || defined(_M_AMD64))
|
||||
+#define _PIXMAN_X86_64 1
|
||||
+#else
|
||||
+#define _PIXMAN_X86_64 0
|
||||
+#endif
|
||||
|
||||
static pixman_bool_t
|
||||
have_cpuid (void)
|
||||
{
|
||||
-#if _PIXMAN_X86_64 || defined (_MSC_VER)
|
||||
+#if defined(__EMSCRIPTEN__)
|
||||
+
|
||||
+ return FALSE;
|
||||
+
|
||||
+#elif _PIXMAN_X86_64 || defined (_MSC_VER)
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -109,6 +109,8 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+#if !defined(__EMSCRIPTEN__)
|
||||
+
|
||||
static void
|
||||
pixman_cpuid (uint32_t feature,
|
||||
uint32_t *a, uint32_t *b, uint32_t *c, uint32_t *d)
|
||||
@@ -156,10 +156,17 @@
|
||||
#if defined (__GNUC__)
|
||||
#include <cpuid.h>
|
||||
#elif defined(_MSC_VER)
|
||||
@@ -100,10 +102,17 @@
|
||||
#error Unknown compiler
|
||||
#endif
|
||||
}
|
||||
@@ -51,7 +27,7 @@
|
||||
uint32_t a, b, c, d;
|
||||
cpu_features_t features = 0;
|
||||
|
||||
@@ -202,6 +202,8 @@
|
||||
@@ -149,6 +158,8 @@
|
||||
}
|
||||
|
||||
return features;
|
||||
@@ -72,37 +48,37 @@
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
#include <tmmintrin.h>
|
||||
--- a/pixman/configure
|
||||
+++ b/pixman/configure
|
||||
@@ -14207,7 +14207,11 @@
|
||||
#if defined(__GNUC__) && (__GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4))
|
||||
#error "Need GCC >= 3.4 for MMX intrinsics"
|
||||
#endif
|
||||
+#if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+#else
|
||||
+#include <xmmintrin.h>
|
||||
+#endif
|
||||
#include <stdint.h>
|
||||
--- a/pixman/meson.build
|
||||
+++ b/pixman/meson.build
|
||||
@@ -104,7 +104,11 @@
|
||||
if host_machine.cpu_family() == 'x86_64' or cc.get_id() == 'msvc'
|
||||
have_mmx = true
|
||||
elif host_machine.cpu_family() == 'x86' and cc.compiles('''
|
||||
+ #if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+ #else
|
||||
+ #include <xmmintrin.h>
|
||||
+ #endif
|
||||
#include <stdint.h>
|
||||
|
||||
/* Check support for block expressions */
|
||||
@@ -14308,7 +14308,9 @@
|
||||
# error "Need GCC >= 4.2 for SSE2 intrinsics on x86"
|
||||
# endif
|
||||
#endif
|
||||
+#if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+#endif
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
int param;
|
||||
@@ -14380,7 +14380,9 @@
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
+#if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+#endif
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
#include <tmmintrin.h>
|
||||
/* Check support for block expressions */
|
||||
@@ -167,7 +171,9 @@
|
||||
# error "Need GCC >= 4.2 for SSE2 intrinsics on x86"
|
||||
# endif
|
||||
#endif
|
||||
+ #if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+ #endif
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
int param;
|
||||
@@ -202,7 +208,9 @@
|
||||
if not use_ssse3.disabled() and not (cc.get_id() == 'msvc' and cc.version().version_compare('<16') and host_machine.cpu_family() == 'x86_64')
|
||||
if host_machine.cpu_family().startswith('x86')
|
||||
if cc.compiles('''
|
||||
+ #if !defined(__EMSCRIPTEN__)
|
||||
#include <mmintrin.h>
|
||||
+ #endif
|
||||
#include <xmmintrin.h>
|
||||
#include <emmintrin.h>
|
||||
int param;
|
||||
|
||||
+1
-1
@@ -51,7 +51,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) : | $(call gb_Externa
|
||||
$(call gb_ExternalProject_run,build,\
|
||||
PKG_CONFIG_PATH="${PKG_CONFIG_PATH}$(LIBO_PATH_SEPARATOR)$(gb_UnpackedTarball_workdir)/graphite$(if $(SYSTEM_ICU),,$(LIBO_PATH_SEPARATOR)$(gb_UnpackedTarball_workdir)/icu)" \
|
||||
PYTHONWARNINGS= \
|
||||
$(MESON) setup builddir \
|
||||
$(MESON) setup --wrap-mode nofallback builddir \
|
||||
-Ddefault_library=static -Dbuildtype=$(if $(ENABLE_DBGUTIL),debug,$(if $(ENABLE_DEBUG),debugoptimized,release \
|
||||
$(if $(call gb_Module__symbols_enabled,harfbuzz),$(addsuffix "$(strip $(gb_DEBUGINFO_FLAGS))",-Dc_args= -Dcpp_args=)))) \
|
||||
-Dauto_features=disabled \
|
||||
|
||||
Reference in New Issue
Block a user