summaryrefslogtreecommitdiffstats
path: root/external/fontconfig
diff options
context:
space:
mode:
Diffstat (limited to 'external/fontconfig')
-rw-r--r--external/fontconfig/ExternalPackage_fontconfig_data.mk58
-rw-r--r--external/fontconfig/ExternalProject_fontconfig.mk48
-rw-r--r--external/fontconfig/Makefile7
-rw-r--r--external/fontconfig/Module_fontconfig.mk18
-rw-r--r--external/fontconfig/README6
-rw-r--r--external/fontconfig/UnpackedTarball_fontconfig.mk18
-rw-r--r--external/fontconfig/fontconfig-2.12.1.patch.1135
7 files changed, 290 insertions, 0 deletions
diff --git a/external/fontconfig/ExternalPackage_fontconfig_data.mk b/external/fontconfig/ExternalPackage_fontconfig_data.mk
new file mode 100644
index 000000000..cc33c2670
--- /dev/null
+++ b/external/fontconfig/ExternalPackage_fontconfig_data.mk
@@ -0,0 +1,58 @@
+# -*- 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_ExternalPackage_ExternalPackage,fontconfig_data,fontconfig))
+
+$(eval $(call gb_ExternalPackage_use_external_project,fontconfig_data,fontconfig))
+
+$(eval $(call gb_ExternalPackage_add_files,fontconfig_data,$(LIBO_SHARE_FOLDER)/fontconfig,\
+ fonts.conf \
+))
+
+$(eval $(call gb_ExternalPackage_add_unpacked_files,fontconfig_data,$(LIBO_SHARE_FOLDER)/fontconfig/conf.d,\
+ conf.d/05-reset-dirs-sample.conf \
+ conf.d/09-autohint-if-no-hinting.conf \
+ conf.d/10-autohint.conf \
+ conf.d/10-hinting-full.conf \
+ conf.d/10-hinting-medium.conf \
+ conf.d/10-hinting-none.conf \
+ conf.d/10-hinting-slight.conf \
+ conf.d/10-no-sub-pixel.conf \
+ conf.d/10-scale-bitmap-fonts.conf \
+ conf.d/10-sub-pixel-bgr.conf \
+ conf.d/10-sub-pixel-rgb.conf \
+ conf.d/10-sub-pixel-vbgr.conf \
+ conf.d/10-sub-pixel-vrgb.conf \
+ conf.d/10-unhinted.conf \
+ conf.d/11-lcdfilter-default.conf \
+ conf.d/11-lcdfilter-legacy.conf \
+ conf.d/11-lcdfilter-light.conf \
+ conf.d/20-unhint-small-vera.conf \
+ conf.d/25-unhint-nonlatin.conf \
+ conf.d/30-metric-aliases.conf \
+ conf.d/35-lang-normalize.conf \
+ conf.d/40-nonlatin.conf \
+ conf.d/45-generic.conf \
+ conf.d/45-latin.conf \
+ conf.d/49-sansserif.conf \
+ conf.d/50-user.conf \
+ conf.d/51-local.conf \
+ conf.d/60-generic.conf \
+ conf.d/60-latin.conf \
+ conf.d/65-fonts-persian.conf \
+ conf.d/65-khmer.conf \
+ conf.d/65-nonlatin.conf \
+ conf.d/69-unifont.conf \
+ conf.d/70-no-bitmaps.conf \
+ conf.d/70-yes-bitmaps.conf \
+ conf.d/80-delicious.conf \
+ conf.d/90-synthetic.conf \
+))
+
+# vim: set shiftwidth=4 tabstop=4 noexpandtab:
diff --git a/external/fontconfig/ExternalProject_fontconfig.mk b/external/fontconfig/ExternalProject_fontconfig.mk
new file mode 100644
index 000000000..9f85faa39
--- /dev/null
+++ b/external/fontconfig/ExternalProject_fontconfig.mk
@@ -0,0 +1,48 @@
+# -*- 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_ExternalProject_ExternalProject,fontconfig))
+
+$(eval $(call gb_ExternalProject_use_externals,fontconfig,\
+ expat \
+ freetype \
+))
+
+$(eval $(call gb_ExternalProject_register_targets,fontconfig,\
+ build \
+))
+
+$(call gb_ExternalProject_get_state_target,fontconfig,build) :
+ $(call gb_Trace_StartRange,fontconfig,EXTERNAL)
+ $(call gb_ExternalProject_run,build,\
+ CFLAGS="$(CFLAGS) \
+ $(call gb_ExternalProject_get_build_flags,fontconfig) \
+ $(gb_VISIBILITY_FLAGS) \
+ $(if $(filter EMSCRIPTEN,$(OS)),-pthread)" \
+ $(if $(filter ANDROID,$(OS)),LIBS="-lm") \
+ LDFLAGS="$(call gb_ExternalProject_get_link_flags,fontconfig)" \
+ $(gb_RUN_CONFIGURE) ./configure \
+ --disable-shared \
+ --disable-silent-rules \
+ --with-pic \
+ $(if $(filter ANDROID,$(OS)),--with-arch=arm) \
+ --with-expat-includes=$(call gb_UnpackedTarball_get_dir,expat)/lib \
+ --with-expat-lib=$(gb_StaticLibrary_WORKDIR) \
+ $(gb_CONFIGURE_PLATFORMS) \
+ $(if $(filter EMSCRIPTEN,$(OS)), \
+ --with-baseconfigdir=/instdir/share/fontconfig \
+ --with-cache-dir=/instdir/share/fontconfig/cache \
+ --with-add-fonts=/instdir/share/fonts \
+ ac_cv_func_fstatfs=no ac_cv_func_fstatvfs=no \
+ ) \
+ && $(MAKE) -C src && $(MAKE) fonts.conf \
+ )
+ $(call gb_Trace_EndRange,fontconfig,EXTERNAL)
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/Makefile b/external/fontconfig/Makefile
new file mode 100644
index 000000000..e4968cf85
--- /dev/null
+++ b/external/fontconfig/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/Module_fontconfig.mk b/external/fontconfig/Module_fontconfig.mk
new file mode 100644
index 000000000..2f8f9c8f5
--- /dev/null
+++ b/external/fontconfig/Module_fontconfig.mk
@@ -0,0 +1,18 @@
+# -*- 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_Module_Module,fontconfig))
+
+$(eval $(call gb_Module_add_targets,fontconfig,\
+ ExternalProject_fontconfig \
+ $(if $(filter EMSCRIPTEN,$(OS)),ExternalPackage_fontconfig_data) \
+ UnpackedTarball_fontconfig \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/README b/external/fontconfig/README
new file mode 100644
index 000000000..220ee6078
--- /dev/null
+++ b/external/fontconfig/README
@@ -0,0 +1,6 @@
+This "bundled" fontconfig is built only in an Android build
+
+Fontconfig is a font configuration and customization library. It is designed to locate fonts
+within the system and select them according to requirements specified by applications.
+
+From [ http://packages.debian.org/squeeze/fontconfig ] \ No newline at end of file
diff --git a/external/fontconfig/UnpackedTarball_fontconfig.mk b/external/fontconfig/UnpackedTarball_fontconfig.mk
new file mode 100644
index 000000000..6026a817c
--- /dev/null
+++ b/external/fontconfig/UnpackedTarball_fontconfig.mk
@@ -0,0 +1,18 @@
+# -*- 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_UnpackedTarball_UnpackedTarball,fontconfig))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,fontconfig,$(FONTCONFIG_TARBALL),,fontconfig))
+
+$(eval $(call gb_UnpackedTarball_add_patches,fontconfig,\
+ external/fontconfig/fontconfig-2.12.1.patch.1 \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/fontconfig/fontconfig-2.12.1.patch.1 b/external/fontconfig/fontconfig-2.12.1.patch.1
new file mode 100644
index 000000000..f348d2aa8
--- /dev/null
+++ b/external/fontconfig/fontconfig-2.12.1.patch.1
@@ -0,0 +1,135 @@
+diff -up fontconfig/configure.dt fontconfig/configure
+--- fontconfig/configure.dt 2017-02-01 22:07:29.671668568 +0100
++++ fontconfig/configure 2017-02-01 22:09:53.335215490 +0100
+@@ -10469,7 +10469,7 @@ _LT_EOF
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+@@ -10485,7 +10485,7 @@ _LT_EOF
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
++ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -10519,7 +10519,7 @@ _LT_EOF
+ ;;
+
+ haiku*)
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+@@ -10614,13 +10614,13 @@ _LT_EOF
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
++ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
++ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+@@ -10650,8 +10650,8 @@ _LT_EOF
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+@@ -10669,8 +10669,8 @@ _LT_EOF
+
+ _LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -10698,8 +10698,8 @@ _LT_EOF
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $lib'
++ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -10716,8 +10716,8 @@ _LT_EOF
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+@@ -11016,7 +11016,7 @@ fi
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
++ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+@@ -11285,7 +11285,7 @@ fi
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
++ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+@@ -11313,7 +11313,7 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+ $as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
++ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+@@ -11408,7 +11408,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
++ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+@@ -11421,7 +11421,7 @@ $as_echo "$lt_cv_irix_exported_symbol" >
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+- archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
++ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'