8170681: Remove fontconfig header files from JDK source tree
Reviewed-by: serb, erikj
This commit is contained in:
parent
62fa58101a
commit
2d7d87f3fc
@ -690,6 +690,7 @@ FREETYPE_LICENSE
|
||||
FREETYPE_BUNDLE_LIB_PATH
|
||||
FREETYPE_LIBS
|
||||
FREETYPE_CFLAGS
|
||||
FONTCONFIG_CFLAGS
|
||||
CUPS_CFLAGS
|
||||
X_EXTRA_LIBS
|
||||
X_LIBS
|
||||
@ -1183,6 +1184,8 @@ with_msvcp_dll
|
||||
with_x
|
||||
with_cups
|
||||
with_cups_include
|
||||
with_fontconfig
|
||||
with_fontconfig_include
|
||||
with_freetype
|
||||
with_freetype_include
|
||||
with_freetype_lib
|
||||
@ -2111,6 +2114,10 @@ Optional Packages:
|
||||
--with-cups specify prefix directory for the cups package
|
||||
(expecting the headers under PATH/include)
|
||||
--with-cups-include specify directory for the cups include files
|
||||
--with-fontconfig specify prefix directory for the fontconfig package
|
||||
(expecting the headers under PATH/include)
|
||||
--with-fontconfig-include
|
||||
specify directory for the fontconfig include files
|
||||
--with-freetype specify prefix directory for the freetype package
|
||||
(expecting the libraries under PATH/lib and the
|
||||
headers under PATH/include)
|
||||
@ -4168,6 +4175,8 @@ apt_help() {
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
|
||||
fontconfig)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libfontconfig1-dev" ;;
|
||||
freetype)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
|
||||
ffi)
|
||||
@ -4191,6 +4200,8 @@ yum_help() {
|
||||
PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
|
||||
fontconfig)
|
||||
PKGHANDLER_COMMAND="sudo yum install fontconfig-devel" ;;
|
||||
freetype)
|
||||
PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
|
||||
x11)
|
||||
@ -4748,6 +4759,36 @@ VALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
|
||||
################################################################################
|
||||
|
||||
|
||||
#
|
||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Setup fontconfig
|
||||
################################################################################
|
||||
|
||||
|
||||
|
||||
################################################################################
|
||||
# Determine which libraries are needed for this configuration
|
||||
@ -5117,7 +5158,7 @@ VS_SDK_PLATFORM_NAME_2013=
|
||||
#CUSTOM_AUTOCONF_INCLUDE
|
||||
|
||||
# Do not change or remove the following line, it is needed for consistency checks:
|
||||
DATE_WHEN_GENERATED=1508746828
|
||||
DATE_WHEN_GENERATED=1508961024
|
||||
|
||||
###############################################################################
|
||||
#
|
||||
@ -54538,6 +54579,16 @@ $as_echo "yes" >&6; }
|
||||
NEEDS_LIB_X11=true
|
||||
fi
|
||||
|
||||
# Check if fontconfig is needed
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# No fontconfig support on windows or macosx
|
||||
NEEDS_LIB_FONTCONFIG=false
|
||||
else
|
||||
# All other instances need fontconfig, even if building headless only,
|
||||
# libawt still needs fontconfig headers.
|
||||
NEEDS_LIB_FONTCONFIG=true
|
||||
fi
|
||||
|
||||
# Check if cups is needed
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
# Windows have a separate print system
|
||||
@ -58355,6 +58406,116 @@ done
|
||||
|
||||
|
||||
|
||||
# Check whether --with-fontconfig was given.
|
||||
if test "${with_fontconfig+set}" = set; then :
|
||||
withval=$with_fontconfig;
|
||||
fi
|
||||
|
||||
|
||||
# Check whether --with-fontconfig-include was given.
|
||||
if test "${with_fontconfig_include+set}" = set; then :
|
||||
withval=$with_fontconfig_include;
|
||||
fi
|
||||
|
||||
|
||||
if test "x$NEEDS_LIB_FONTCONFIG" = xfalse; then
|
||||
if (test "x${with_fontconfig}" != x && test "x${with_fontconfig}" != xno) || \
|
||||
(test "x${with_fontconfig_include}" != x && test "x${with_fontconfig_include}" != xno); then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: fontconfig not used, so --with-fontconfig[-*] is ignored" >&5
|
||||
$as_echo "$as_me: WARNING: fontconfig not used, so --with-fontconfig[-*] is ignored" >&2;}
|
||||
fi
|
||||
FONTCONFIG_CFLAGS=
|
||||
else
|
||||
FONTCONFIG_FOUND=no
|
||||
|
||||
if test "x${with_fontconfig}" = xno || test "x${with_fontconfig_include}" = xno; then
|
||||
as_fn_error $? "It is not possible to disable the use of fontconfig. Remove the --without-fontconfig option." "$LINENO" 5
|
||||
fi
|
||||
|
||||
if test "x${with_fontconfig}" != x; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig headers" >&5
|
||||
$as_echo_n "checking for fontconfig headers... " >&6; }
|
||||
if test -s "${with_fontconfig}/include/fontconfig/fontconfig.h"; then
|
||||
FONTCONFIG_CFLAGS="-I${with_fontconfig}/include"
|
||||
FONTCONFIG_FOUND=yes
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_FOUND" >&5
|
||||
$as_echo "$FONTCONFIG_FOUND" >&6; }
|
||||
else
|
||||
as_fn_error $? "Can't find 'include/fontconfig/fontconfig.h' under ${with_fontconfig} given with the --with-fontconfig option." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
if test "x${with_fontconfig_include}" != x; then
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig headers" >&5
|
||||
$as_echo_n "checking for fontconfig headers... " >&6; }
|
||||
if test -s "${with_fontconfig_include}/fontconfig/fontconfig.h"; then
|
||||
FONTCONFIG_CFLAGS="-I${with_fontconfig_include}"
|
||||
FONTCONFIG_FOUND=yes
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_FOUND" >&5
|
||||
$as_echo "$FONTCONFIG_FOUND" >&6; }
|
||||
else
|
||||
as_fn_error $? "Can't find 'fontconfig/fontconfig.h' under ${with_fontconfig_include} given with the --with-fontconfig-include option." "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
if test "x$FONTCONFIG_FOUND" = xno; then
|
||||
# Are the fontconfig headers installed in the default /usr/include location?
|
||||
for ac_header in fontconfig/fontconfig.h
|
||||
do :
|
||||
ac_fn_cxx_check_header_mongrel "$LINENO" "fontconfig/fontconfig.h" "ac_cv_header_fontconfig_fontconfig_h" "$ac_includes_default"
|
||||
if test "x$ac_cv_header_fontconfig_fontconfig_h" = xyes; then :
|
||||
cat >>confdefs.h <<_ACEOF
|
||||
#define HAVE_FONTCONFIG_FONTCONFIG_H 1
|
||||
_ACEOF
|
||||
|
||||
FONTCONFIG_FOUND=yes
|
||||
FONTCONFIG_CFLAGS=
|
||||
DEFAULT_FONTCONFIG=yes
|
||||
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
fi
|
||||
if test "x$FONTCONFIG_FOUND" = xno; then
|
||||
|
||||
# Print a helpful message on how to acquire the necessary build dependency.
|
||||
# fontconfig is the help tag: freetype, cups, alsa etc
|
||||
MISSING_DEPENDENCY=fontconfig
|
||||
|
||||
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
|
||||
cygwin_help $MISSING_DEPENDENCY
|
||||
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
|
||||
msys_help $MISSING_DEPENDENCY
|
||||
else
|
||||
PKGHANDLER_COMMAND=
|
||||
|
||||
case $PKGHANDLER in
|
||||
apt-get)
|
||||
apt_help $MISSING_DEPENDENCY ;;
|
||||
yum)
|
||||
yum_help $MISSING_DEPENDENCY ;;
|
||||
brew)
|
||||
brew_help $MISSING_DEPENDENCY ;;
|
||||
port)
|
||||
port_help $MISSING_DEPENDENCY ;;
|
||||
pkgutil)
|
||||
pkgutil_help $MISSING_DEPENDENCY ;;
|
||||
pkgadd)
|
||||
pkgadd_help $MISSING_DEPENDENCY ;;
|
||||
esac
|
||||
|
||||
if test "x$PKGHANDLER_COMMAND" != x; then
|
||||
HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
|
||||
fi
|
||||
fi
|
||||
|
||||
as_fn_error $? "Could not find fontconfig! $HELP_MSG " "$LINENO" 5
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Check whether --with-freetype was given.
|
||||
if test "${with_freetype+set}" = set; then :
|
||||
withval=$with_freetype;
|
||||
@ -65889,6 +66050,7 @@ $as_echo "no, not found at $STLPORT_LIB" >&6; }
|
||||
|
||||
|
||||
|
||||
|
||||
# Hotspot setup depends on lib checks.
|
||||
|
||||
|
||||
|
@ -113,6 +113,8 @@ apt_help() {
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libcups2-dev" ;;
|
||||
fontconfig)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libfontconfig1-dev" ;;
|
||||
freetype)
|
||||
PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
|
||||
ffi)
|
||||
@ -136,6 +138,8 @@ yum_help() {
|
||||
PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
|
||||
cups)
|
||||
PKGHANDLER_COMMAND="sudo yum install cups-devel" ;;
|
||||
fontconfig)
|
||||
PKGHANDLER_COMMAND="sudo yum install fontconfig-devel" ;;
|
||||
freetype)
|
||||
PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
|
||||
x11)
|
||||
|
85
make/autoconf/lib-fontconfig.m4
Normal file
85
make/autoconf/lib-fontconfig.m4
Normal file
@ -0,0 +1,85 @@
|
||||
#
|
||||
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
################################################################################
|
||||
# Setup fontconfig
|
||||
################################################################################
|
||||
AC_DEFUN_ONCE([LIB_SETUP_FONTCONFIG],
|
||||
[
|
||||
AC_ARG_WITH(fontconfig, [AS_HELP_STRING([--with-fontconfig],
|
||||
[specify prefix directory for the fontconfig package
|
||||
(expecting the headers under PATH/include)])])
|
||||
AC_ARG_WITH(fontconfig-include, [AS_HELP_STRING([--with-fontconfig-include],
|
||||
[specify directory for the fontconfig include files])])
|
||||
|
||||
if test "x$NEEDS_LIB_FONTCONFIG" = xfalse; then
|
||||
if (test "x${with_fontconfig}" != x && test "x${with_fontconfig}" != xno) || \
|
||||
(test "x${with_fontconfig_include}" != x && test "x${with_fontconfig_include}" != xno); then
|
||||
AC_MSG_WARN([[fontconfig not used, so --with-fontconfig[-*] is ignored]])
|
||||
fi
|
||||
FONTCONFIG_CFLAGS=
|
||||
else
|
||||
FONTCONFIG_FOUND=no
|
||||
|
||||
if test "x${with_fontconfig}" = xno || test "x${with_fontconfig_include}" = xno; then
|
||||
AC_MSG_ERROR([It is not possible to disable the use of fontconfig. Remove the --without-fontconfig option.])
|
||||
fi
|
||||
|
||||
if test "x${with_fontconfig}" != x; then
|
||||
AC_MSG_CHECKING([for fontconfig headers])
|
||||
if test -s "${with_fontconfig}/include/fontconfig/fontconfig.h"; then
|
||||
FONTCONFIG_CFLAGS="-I${with_fontconfig}/include"
|
||||
FONTCONFIG_FOUND=yes
|
||||
AC_MSG_RESULT([$FONTCONFIG_FOUND])
|
||||
else
|
||||
AC_MSG_ERROR([Can't find 'include/fontconfig/fontconfig.h' under ${with_fontconfig} given with the --with-fontconfig option.])
|
||||
fi
|
||||
fi
|
||||
if test "x${with_fontconfig_include}" != x; then
|
||||
AC_MSG_CHECKING([for fontconfig headers])
|
||||
if test -s "${with_fontconfig_include}/fontconfig/fontconfig.h"; then
|
||||
FONTCONFIG_CFLAGS="-I${with_fontconfig_include}"
|
||||
FONTCONFIG_FOUND=yes
|
||||
AC_MSG_RESULT([$FONTCONFIG_FOUND])
|
||||
else
|
||||
AC_MSG_ERROR([Can't find 'fontconfig/fontconfig.h' under ${with_fontconfig_include} given with the --with-fontconfig-include option.])
|
||||
fi
|
||||
fi
|
||||
if test "x$FONTCONFIG_FOUND" = xno; then
|
||||
# Are the fontconfig headers installed in the default /usr/include location?
|
||||
AC_CHECK_HEADERS([fontconfig/fontconfig.h], [
|
||||
FONTCONFIG_FOUND=yes
|
||||
FONTCONFIG_CFLAGS=
|
||||
DEFAULT_FONTCONFIG=yes
|
||||
])
|
||||
fi
|
||||
if test "x$FONTCONFIG_FOUND" = xno; then
|
||||
HELP_MSG_MISSING_DEPENDENCY([fontconfig])
|
||||
AC_MSG_ERROR([Could not find fontconfig! $HELP_MSG ])
|
||||
fi
|
||||
fi
|
||||
|
||||
AC_SUBST(FONTCONFIG_CFLAGS)
|
||||
])
|
@ -31,6 +31,7 @@ m4_include([lib-ffi.m4])
|
||||
m4_include([lib-freetype.m4])
|
||||
m4_include([lib-std.m4])
|
||||
m4_include([lib-x11.m4])
|
||||
m4_include([lib-fontconfig.m4])
|
||||
|
||||
################################################################################
|
||||
# Determine which libraries are needed for this configuration
|
||||
@ -47,6 +48,16 @@ AC_DEFUN_ONCE([LIB_DETERMINE_DEPENDENCIES],
|
||||
NEEDS_LIB_X11=true
|
||||
fi
|
||||
|
||||
# Check if fontconfig is needed
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows || test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||||
# No fontconfig support on windows or macosx
|
||||
NEEDS_LIB_FONTCONFIG=false
|
||||
else
|
||||
# All other instances need fontconfig, even if building headless only,
|
||||
# libawt still needs fontconfig headers.
|
||||
NEEDS_LIB_FONTCONFIG=true
|
||||
fi
|
||||
|
||||
# Check if cups is needed
|
||||
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||||
# Windows have a separate print system
|
||||
@ -83,6 +94,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
|
||||
LIB_SETUP_STD_LIBS
|
||||
LIB_SETUP_X11
|
||||
LIB_SETUP_CUPS
|
||||
LIB_SETUP_FONTCONFIG
|
||||
LIB_SETUP_FREETYPE
|
||||
LIB_SETUP_ALSA
|
||||
LIB_SETUP_LIBFFI
|
||||
|
@ -317,6 +317,7 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS),windows macosx),)
|
||||
|
||||
LIBAWT_XAWT_CFLAGS += -DXAWT -DXAWT_HACK \
|
||||
-DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
|
||||
$(FONTCONFIG_CFLAGS) \
|
||||
$(CUPS_CFLAGS)
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
@ -555,6 +556,7 @@ ifeq ($(findstring $(OPENJDK_TARGET_OS), windows macosx),)
|
||||
-DHEADLESS=true \
|
||||
-DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \
|
||||
$(CUPS_CFLAGS) \
|
||||
$(FONTCONFIG_CFLAGS) \
|
||||
$(X_CFLAGS) \
|
||||
$(LIBAWT_HEADLESS_CFLAGS), \
|
||||
DISABLED_WARNINGS_xlc := 1506-356, \
|
||||
|
@ -1,24 +0,0 @@
|
||||
## Fontconfig v2.5
|
||||
|
||||
### Fontconfig License
|
||||
<pre>
|
||||
|
||||
Copyright 2001,2003 Keith Packard
|
||||
|
||||
Permission to use, copy, modify, distribute, and sell this software and its
|
||||
documentation for any purpose is hereby granted without fee, provided that the
|
||||
above copyright notice appear in all copies and that both that copyright
|
||||
notice and this permission notice appear in supporting documentation, and that
|
||||
the name of Keith Packard not be used in advertising or publicity pertaining
|
||||
to distribution of the software without specific, written prior permission.
|
||||
Keith Packard makes no representations about the suitability of this software
|
||||
for any purpose. It is provided "as is" without express or implied warranty.
|
||||
|
||||
KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL KEITH
|
||||
PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
|
||||
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
</pre>
|
@ -1,941 +0,0 @@
|
||||
/*
|
||||
* $RCSId: xc/lib/fontconfig/fontconfig/fontconfig.h,v 1.30 2002/09/26 00:17:27 keithp Exp $
|
||||
*
|
||||
* Copyright © 2001 Keith Packard
|
||||
*
|
||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||
* documentation for any purpose is hereby granted without fee, provided that
|
||||
* the above copyright notice appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of Keith Packard not be used in
|
||||
* advertising or publicity pertaining to distribution of the software without
|
||||
* specific, written prior permission. Keith Packard makes no
|
||||
* representations about the suitability of this software for any purpose. It
|
||||
* is provided "as is" without express or implied warranty.
|
||||
*
|
||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef _FONTCONFIG_H_
|
||||
#define _FONTCONFIG_H_
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||
#define FC_ATTRIBUTE_SENTINEL(x) __attribute__((__sentinel__(0)))
|
||||
#else
|
||||
#define FC_ATTRIBUTE_SENTINEL(x)
|
||||
#endif
|
||||
|
||||
#ifndef FcPublic
|
||||
#define FcPublic
|
||||
#endif
|
||||
|
||||
typedef unsigned char FcChar8;
|
||||
typedef unsigned short FcChar16;
|
||||
typedef unsigned int FcChar32;
|
||||
typedef int FcBool;
|
||||
|
||||
/*
|
||||
* Current Fontconfig version number. This same number
|
||||
* must appear in the fontconfig configure.in file. Yes,
|
||||
* it'a a pain to synchronize version numbers like this.
|
||||
*/
|
||||
|
||||
#define FC_MAJOR 2
|
||||
#define FC_MINOR 5
|
||||
#define FC_REVISION 0
|
||||
|
||||
#define FC_VERSION ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION))
|
||||
|
||||
/*
|
||||
* Current font cache file format version
|
||||
* This is appended to the cache files so that multiple
|
||||
* versions of the library will peacefully coexist
|
||||
*
|
||||
* Change this value whenever the disk format for the cache file
|
||||
* changes in any non-compatible way. Try to avoid such changes as
|
||||
* it means multiple copies of the font information.
|
||||
*/
|
||||
|
||||
#define FC_CACHE_VERSION "2"
|
||||
|
||||
#define FcTrue 1
|
||||
#define FcFalse 0
|
||||
|
||||
#define FC_FAMILY "family" /* String */
|
||||
#define FC_STYLE "style" /* String */
|
||||
#define FC_SLANT "slant" /* Int */
|
||||
#define FC_WEIGHT "weight" /* Int */
|
||||
#define FC_SIZE "size" /* Double */
|
||||
#define FC_ASPECT "aspect" /* Double */
|
||||
#define FC_PIXEL_SIZE "pixelsize" /* Double */
|
||||
#define FC_SPACING "spacing" /* Int */
|
||||
#define FC_FOUNDRY "foundry" /* String */
|
||||
#define FC_ANTIALIAS "antialias" /* Bool (depends) */
|
||||
#define FC_HINTING "hinting" /* Bool (true) */
|
||||
#define FC_HINT_STYLE "hintstyle" /* Int */
|
||||
#define FC_VERTICAL_LAYOUT "verticallayout" /* Bool (false) */
|
||||
#define FC_AUTOHINT "autohint" /* Bool (false) */
|
||||
#define FC_GLOBAL_ADVANCE "globaladvance" /* Bool (true) */
|
||||
#define FC_WIDTH "width" /* Int */
|
||||
#define FC_FILE "file" /* String */
|
||||
#define FC_INDEX "index" /* Int */
|
||||
#define FC_FT_FACE "ftface" /* FT_Face */
|
||||
#define FC_RASTERIZER "rasterizer" /* String */
|
||||
#define FC_OUTLINE "outline" /* Bool */
|
||||
#define FC_SCALABLE "scalable" /* Bool */
|
||||
#define FC_SCALE "scale" /* double */
|
||||
#define FC_DPI "dpi" /* double */
|
||||
#define FC_RGBA "rgba" /* Int */
|
||||
#define FC_MINSPACE "minspace" /* Bool use minimum line spacing */
|
||||
#define FC_SOURCE "source" /* String (deprecated) */
|
||||
#define FC_CHARSET "charset" /* CharSet */
|
||||
#define FC_LANG "lang" /* String RFC 3066 langs */
|
||||
#define FC_FONTVERSION "fontversion" /* Int from 'head' table */
|
||||
#define FC_FULLNAME "fullname" /* String */
|
||||
#define FC_FAMILYLANG "familylang" /* String RFC 3066 langs */
|
||||
#define FC_STYLELANG "stylelang" /* String RFC 3066 langs */
|
||||
#define FC_FULLNAMELANG "fullnamelang" /* String RFC 3066 langs */
|
||||
#define FC_CAPABILITY "capability" /* String */
|
||||
#define FC_FONTFORMAT "fontformat" /* String */
|
||||
#define FC_EMBOLDEN "embolden" /* Bool - true if emboldening needed*/
|
||||
#define FC_EMBEDDED_BITMAP "embeddedbitmap" /* Bool - true to enable embedded bitmaps */
|
||||
#define FC_DECORATIVE "decorative" /* Bool - true if style is a decorative variant */
|
||||
|
||||
#define FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION
|
||||
#define FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
|
||||
#define FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION
|
||||
|
||||
/* Adjust outline rasterizer */
|
||||
#define FC_CHAR_WIDTH "charwidth" /* Int */
|
||||
#define FC_CHAR_HEIGHT "charheight"/* Int */
|
||||
#define FC_MATRIX "matrix" /* FcMatrix */
|
||||
|
||||
#define FC_WEIGHT_THIN 0
|
||||
#define FC_WEIGHT_EXTRALIGHT 40
|
||||
#define FC_WEIGHT_ULTRALIGHT FC_WEIGHT_EXTRALIGHT
|
||||
#define FC_WEIGHT_LIGHT 50
|
||||
#define FC_WEIGHT_BOOK 75
|
||||
#define FC_WEIGHT_REGULAR 80
|
||||
#define FC_WEIGHT_NORMAL FC_WEIGHT_REGULAR
|
||||
#define FC_WEIGHT_MEDIUM 100
|
||||
#define FC_WEIGHT_DEMIBOLD 180
|
||||
#define FC_WEIGHT_SEMIBOLD FC_WEIGHT_DEMIBOLD
|
||||
#define FC_WEIGHT_BOLD 200
|
||||
#define FC_WEIGHT_EXTRABOLD 205
|
||||
#define FC_WEIGHT_ULTRABOLD FC_WEIGHT_EXTRABOLD
|
||||
#define FC_WEIGHT_BLACK 210
|
||||
#define FC_WEIGHT_HEAVY FC_WEIGHT_BLACK
|
||||
#define FC_WEIGHT_EXTRABLACK 215
|
||||
#define FC_WEIGHT_ULTRABLACK FC_WEIGHT_EXTRABLACK
|
||||
|
||||
#define FC_SLANT_ROMAN 0
|
||||
#define FC_SLANT_ITALIC 100
|
||||
#define FC_SLANT_OBLIQUE 110
|
||||
|
||||
#define FC_WIDTH_ULTRACONDENSED 50
|
||||
#define FC_WIDTH_EXTRACONDENSED 63
|
||||
#define FC_WIDTH_CONDENSED 75
|
||||
#define FC_WIDTH_SEMICONDENSED 87
|
||||
#define FC_WIDTH_NORMAL 100
|
||||
#define FC_WIDTH_SEMIEXPANDED 113
|
||||
#define FC_WIDTH_EXPANDED 125
|
||||
#define FC_WIDTH_EXTRAEXPANDED 150
|
||||
#define FC_WIDTH_ULTRAEXPANDED 200
|
||||
|
||||
#define FC_PROPORTIONAL 0
|
||||
#define FC_DUAL 90
|
||||
#define FC_MONO 100
|
||||
#define FC_CHARCELL 110
|
||||
|
||||
/* sub-pixel order */
|
||||
#define FC_RGBA_UNKNOWN 0
|
||||
#define FC_RGBA_RGB 1
|
||||
#define FC_RGBA_BGR 2
|
||||
#define FC_RGBA_VRGB 3
|
||||
#define FC_RGBA_VBGR 4
|
||||
#define FC_RGBA_NONE 5
|
||||
|
||||
/* hinting style */
|
||||
#define FC_HINT_NONE 0
|
||||
#define FC_HINT_SLIGHT 1
|
||||
#define FC_HINT_MEDIUM 2
|
||||
#define FC_HINT_FULL 3
|
||||
|
||||
typedef enum _FcType {
|
||||
FcTypeVoid,
|
||||
FcTypeInteger,
|
||||
FcTypeDouble,
|
||||
FcTypeString,
|
||||
FcTypeBool,
|
||||
FcTypeMatrix,
|
||||
FcTypeCharSet,
|
||||
FcTypeFTFace,
|
||||
FcTypeLangSet
|
||||
} FcType;
|
||||
|
||||
typedef struct _FcMatrix {
|
||||
double xx, xy, yx, yy;
|
||||
} FcMatrix;
|
||||
|
||||
#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
|
||||
(m)->xy = (m)->yx = 0)
|
||||
|
||||
/*
|
||||
* A data structure to represent the available glyphs in a font.
|
||||
* This is represented as a sparse boolean btree.
|
||||
*/
|
||||
|
||||
typedef struct _FcCharSet FcCharSet;
|
||||
|
||||
typedef struct _FcObjectType {
|
||||
const char *object;
|
||||
FcType type;
|
||||
} FcObjectType;
|
||||
|
||||
typedef struct _FcConstant {
|
||||
const FcChar8 *name;
|
||||
const char *object;
|
||||
int value;
|
||||
} FcConstant;
|
||||
|
||||
typedef enum _FcResult {
|
||||
FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
|
||||
FcResultOutOfMemory
|
||||
} FcResult;
|
||||
|
||||
typedef struct _FcPattern FcPattern;
|
||||
|
||||
typedef struct _FcLangSet FcLangSet;
|
||||
|
||||
typedef struct _FcValue {
|
||||
FcType type;
|
||||
union {
|
||||
const FcChar8 *s;
|
||||
int i;
|
||||
FcBool b;
|
||||
double d;
|
||||
const FcMatrix *m;
|
||||
const FcCharSet *c;
|
||||
void *f;
|
||||
const FcLangSet *l;
|
||||
} u;
|
||||
} FcValue;
|
||||
|
||||
typedef struct _FcFontSet {
|
||||
int nfont;
|
||||
int sfont;
|
||||
FcPattern **fonts;
|
||||
} FcFontSet;
|
||||
|
||||
typedef struct _FcObjectSet {
|
||||
int nobject;
|
||||
int sobject;
|
||||
const char **objects;
|
||||
} FcObjectSet;
|
||||
|
||||
typedef enum _FcMatchKind {
|
||||
FcMatchPattern, FcMatchFont, FcMatchScan
|
||||
} FcMatchKind;
|
||||
|
||||
typedef enum _FcLangResult {
|
||||
FcLangEqual = 0,
|
||||
FcLangDifferentCountry = 1,
|
||||
FcLangDifferentTerritory = 1,
|
||||
FcLangDifferentLang = 2
|
||||
} FcLangResult;
|
||||
|
||||
typedef enum _FcSetName {
|
||||
FcSetSystem = 0,
|
||||
FcSetApplication = 1
|
||||
} FcSetName;
|
||||
|
||||
typedef struct _FcAtomic FcAtomic;
|
||||
|
||||
#if defined(__cplusplus) || defined(c_plusplus) /* for C++ V2.0 */
|
||||
#define _FCFUNCPROTOBEGIN extern "C" { /* do not leave open across includes */
|
||||
#define _FCFUNCPROTOEND }
|
||||
#else
|
||||
#define _FCFUNCPROTOBEGIN
|
||||
#define _FCFUNCPROTOEND
|
||||
#endif
|
||||
|
||||
typedef enum { FcEndianBig, FcEndianLittle } FcEndian;
|
||||
|
||||
typedef struct _FcConfig FcConfig;
|
||||
|
||||
typedef struct _FcGlobalCache FcFileCache;
|
||||
|
||||
typedef struct _FcBlanks FcBlanks;
|
||||
|
||||
typedef struct _FcStrList FcStrList;
|
||||
|
||||
typedef struct _FcStrSet FcStrSet;
|
||||
|
||||
typedef struct _FcCache FcCache;
|
||||
|
||||
_FCFUNCPROTOBEGIN
|
||||
|
||||
/* fcblanks.c */
|
||||
FcPublic FcBlanks *
|
||||
FcBlanksCreate (void);
|
||||
|
||||
FcPublic void
|
||||
FcBlanksDestroy (FcBlanks *b);
|
||||
|
||||
FcPublic FcBool
|
||||
FcBlanksAdd (FcBlanks *b, FcChar32 ucs4);
|
||||
|
||||
FcPublic FcBool
|
||||
FcBlanksIsMember (FcBlanks *b, FcChar32 ucs4);
|
||||
|
||||
/* fccache.c */
|
||||
|
||||
FcPublic const FcChar8 *
|
||||
FcCacheDir(const FcCache *c);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcCacheCopySet(const FcCache *c);
|
||||
|
||||
FcPublic const FcChar8 *
|
||||
FcCacheSubdir (const FcCache *c, int i);
|
||||
|
||||
FcPublic int
|
||||
FcCacheNumSubdir (const FcCache *c);
|
||||
|
||||
FcPublic int
|
||||
FcCacheNumFont (const FcCache *c);
|
||||
|
||||
FcPublic FcBool
|
||||
FcDirCacheUnlink (const FcChar8 *dir, FcConfig *config);
|
||||
|
||||
FcPublic FcBool
|
||||
FcDirCacheValid (const FcChar8 *cache_file);
|
||||
|
||||
/* fccfg.c */
|
||||
FcPublic FcChar8 *
|
||||
FcConfigHome (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigEnableHome (FcBool enable);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcConfigFilename (const FcChar8 *url);
|
||||
|
||||
FcPublic FcConfig *
|
||||
FcConfigCreate (void);
|
||||
|
||||
FcPublic void
|
||||
FcConfigDestroy (FcConfig *config);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigSetCurrent (FcConfig *config);
|
||||
|
||||
FcPublic FcConfig *
|
||||
FcConfigGetCurrent (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigUptoDate (FcConfig *config);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigBuildFonts (FcConfig *config);
|
||||
|
||||
FcPublic FcStrList *
|
||||
FcConfigGetFontDirs (FcConfig *config);
|
||||
|
||||
FcPublic FcStrList *
|
||||
FcConfigGetConfigDirs (FcConfig *config);
|
||||
|
||||
FcPublic FcStrList *
|
||||
FcConfigGetConfigFiles (FcConfig *config);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcConfigGetCache (FcConfig *config);
|
||||
|
||||
FcPublic FcBlanks *
|
||||
FcConfigGetBlanks (FcConfig *config);
|
||||
|
||||
FcPublic FcStrList *
|
||||
FcConfigGetCacheDirs (FcConfig *config);
|
||||
|
||||
FcPublic int
|
||||
FcConfigGetRescanInterval (FcConfig *config);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigSetRescanInterval (FcConfig *config, int rescanInterval);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcConfigGetFonts (FcConfig *config,
|
||||
FcSetName set);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigAppFontAddFile (FcConfig *config,
|
||||
const FcChar8 *file);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigAppFontAddDir (FcConfig *config,
|
||||
const FcChar8 *dir);
|
||||
|
||||
FcPublic void
|
||||
FcConfigAppFontClear (FcConfig *config);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigSubstituteWithPat (FcConfig *config,
|
||||
FcPattern *p,
|
||||
FcPattern *p_pat,
|
||||
FcMatchKind kind);
|
||||
|
||||
FcPublic FcBool
|
||||
FcConfigSubstitute (FcConfig *config,
|
||||
FcPattern *p,
|
||||
FcMatchKind kind);
|
||||
|
||||
/* fccharset.c */
|
||||
FcPublic FcCharSet*
|
||||
FcCharSetCreate (void);
|
||||
|
||||
/* deprecated alias for FcCharSetCreate */
|
||||
FcPublic FcCharSet *
|
||||
FcCharSetNew (void);
|
||||
|
||||
FcPublic void
|
||||
FcCharSetDestroy (FcCharSet *fcs);
|
||||
|
||||
FcPublic FcBool
|
||||
FcCharSetAddChar (FcCharSet *fcs, FcChar32 ucs4);
|
||||
|
||||
FcPublic FcCharSet*
|
||||
FcCharSetCopy (FcCharSet *src);
|
||||
|
||||
FcPublic FcBool
|
||||
FcCharSetEqual (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcCharSet*
|
||||
FcCharSetIntersect (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcCharSet*
|
||||
FcCharSetUnion (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcCharSet*
|
||||
FcCharSetSubtract (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcBool
|
||||
FcCharSetHasChar (const FcCharSet *fcs, FcChar32 ucs4);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetCount (const FcCharSet *a);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetIntersectCount (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetSubtractCount (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
FcPublic FcBool
|
||||
FcCharSetIsSubset (const FcCharSet *a, const FcCharSet *b);
|
||||
|
||||
#define FC_CHARSET_MAP_SIZE (256/32)
|
||||
#define FC_CHARSET_DONE ((FcChar32) -1)
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetFirstPage (const FcCharSet *a,
|
||||
FcChar32 map[FC_CHARSET_MAP_SIZE],
|
||||
FcChar32 *next);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetNextPage (const FcCharSet *a,
|
||||
FcChar32 map[FC_CHARSET_MAP_SIZE],
|
||||
FcChar32 *next);
|
||||
|
||||
/*
|
||||
* old coverage API, rather hard to use correctly
|
||||
*/
|
||||
|
||||
FcPublic FcChar32
|
||||
FcCharSetCoverage (const FcCharSet *a, FcChar32 page, FcChar32 *result);
|
||||
|
||||
/* fcdbg.c */
|
||||
FcPublic void
|
||||
FcValuePrint (const FcValue v);
|
||||
|
||||
FcPublic void
|
||||
FcPatternPrint (const FcPattern *p);
|
||||
|
||||
FcPublic void
|
||||
FcFontSetPrint (const FcFontSet *s);
|
||||
|
||||
/* fcdefault.c */
|
||||
FcPublic void
|
||||
FcDefaultSubstitute (FcPattern *pattern);
|
||||
|
||||
/* fcdir.c */
|
||||
FcPublic FcBool
|
||||
FcFileIsDir (const FcChar8 *file);
|
||||
|
||||
FcPublic FcBool
|
||||
FcFileScan (FcFontSet *set,
|
||||
FcStrSet *dirs,
|
||||
FcFileCache *cache,
|
||||
FcBlanks *blanks,
|
||||
const FcChar8 *file,
|
||||
FcBool force);
|
||||
|
||||
FcPublic FcBool
|
||||
FcDirScan (FcFontSet *set,
|
||||
FcStrSet *dirs,
|
||||
FcFileCache *cache,
|
||||
FcBlanks *blanks,
|
||||
const FcChar8 *dir,
|
||||
FcBool force);
|
||||
|
||||
FcPublic FcBool
|
||||
FcDirSave (FcFontSet *set, FcStrSet *dirs, const FcChar8 *dir);
|
||||
|
||||
FcPublic FcCache *
|
||||
FcDirCacheLoad (const FcChar8 *dir, FcConfig *config, FcChar8 **cache_file);
|
||||
|
||||
FcPublic FcCache *
|
||||
FcDirCacheRead (const FcChar8 *dir, FcBool force, FcConfig *config);
|
||||
|
||||
FcPublic FcCache *
|
||||
FcDirCacheLoadFile (const FcChar8 *cache_file, struct stat *file_stat);
|
||||
|
||||
FcPublic void
|
||||
FcDirCacheUnload (FcCache *cache);
|
||||
|
||||
/* fcfreetype.c */
|
||||
FcPublic FcPattern *
|
||||
FcFreeTypeQuery (const FcChar8 *file, int id, FcBlanks *blanks, int *count);
|
||||
|
||||
/* fcfs.c */
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcFontSetCreate (void);
|
||||
|
||||
FcPublic void
|
||||
FcFontSetDestroy (FcFontSet *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcFontSetAdd (FcFontSet *s, FcPattern *font);
|
||||
|
||||
/* fcinit.c */
|
||||
FcPublic FcConfig *
|
||||
FcInitLoadConfig (void);
|
||||
|
||||
FcPublic FcConfig *
|
||||
FcInitLoadConfigAndFonts (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcInit (void);
|
||||
|
||||
FcPublic void
|
||||
FcFini (void);
|
||||
|
||||
FcPublic int
|
||||
FcGetVersion (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcInitReinitialize (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcInitBringUptoDate (void);
|
||||
|
||||
/* fclang.c */
|
||||
FcPublic FcStrSet *
|
||||
FcGetLangs (void);
|
||||
|
||||
FcPublic const FcCharSet *
|
||||
FcLangGetCharSet (const FcChar8 *lang);
|
||||
|
||||
FcPublic FcLangSet*
|
||||
FcLangSetCreate (void);
|
||||
|
||||
FcPublic void
|
||||
FcLangSetDestroy (FcLangSet *ls);
|
||||
|
||||
FcPublic FcLangSet*
|
||||
FcLangSetCopy (const FcLangSet *ls);
|
||||
|
||||
FcPublic FcBool
|
||||
FcLangSetAdd (FcLangSet *ls, const FcChar8 *lang);
|
||||
|
||||
FcPublic FcLangResult
|
||||
FcLangSetHasLang (const FcLangSet *ls, const FcChar8 *lang);
|
||||
|
||||
FcPublic FcLangResult
|
||||
FcLangSetCompare (const FcLangSet *lsa, const FcLangSet *lsb);
|
||||
|
||||
FcPublic FcBool
|
||||
FcLangSetContains (const FcLangSet *lsa, const FcLangSet *lsb);
|
||||
|
||||
FcPublic FcBool
|
||||
FcLangSetEqual (const FcLangSet *lsa, const FcLangSet *lsb);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcLangSetHash (const FcLangSet *ls);
|
||||
|
||||
/* fclist.c */
|
||||
FcPublic FcObjectSet *
|
||||
FcObjectSetCreate (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcObjectSetAdd (FcObjectSet *os, const char *object);
|
||||
|
||||
FcPublic void
|
||||
FcObjectSetDestroy (FcObjectSet *os);
|
||||
|
||||
FcPublic FcObjectSet *
|
||||
FcObjectSetVaBuild (const char *first, va_list va);
|
||||
|
||||
FcPublic FcObjectSet *
|
||||
FcObjectSetBuild (const char *first, ...) FC_ATTRIBUTE_SENTINEL(0);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcFontSetList (FcConfig *config,
|
||||
FcFontSet **sets,
|
||||
int nsets,
|
||||
FcPattern *p,
|
||||
FcObjectSet *os);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcFontList (FcConfig *config,
|
||||
FcPattern *p,
|
||||
FcObjectSet *os);
|
||||
|
||||
/* fcatomic.c */
|
||||
|
||||
FcPublic FcAtomic *
|
||||
FcAtomicCreate (const FcChar8 *file);
|
||||
|
||||
FcPublic FcBool
|
||||
FcAtomicLock (FcAtomic *atomic);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcAtomicNewFile (FcAtomic *atomic);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcAtomicOrigFile (FcAtomic *atomic);
|
||||
|
||||
FcPublic FcBool
|
||||
FcAtomicReplaceOrig (FcAtomic *atomic);
|
||||
|
||||
FcPublic void
|
||||
FcAtomicDeleteNew (FcAtomic *atomic);
|
||||
|
||||
FcPublic void
|
||||
FcAtomicUnlock (FcAtomic *atomic);
|
||||
|
||||
FcPublic void
|
||||
FcAtomicDestroy (FcAtomic *atomic);
|
||||
|
||||
/* fcmatch.c */
|
||||
FcPublic FcPattern *
|
||||
FcFontSetMatch (FcConfig *config,
|
||||
FcFontSet **sets,
|
||||
int nsets,
|
||||
FcPattern *p,
|
||||
FcResult *result);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcFontMatch (FcConfig *config,
|
||||
FcPattern *p,
|
||||
FcResult *result);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcFontRenderPrepare (FcConfig *config,
|
||||
FcPattern *pat,
|
||||
FcPattern *font);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcFontSetSort (FcConfig *config,
|
||||
FcFontSet **sets,
|
||||
int nsets,
|
||||
FcPattern *p,
|
||||
FcBool trim,
|
||||
FcCharSet **csp,
|
||||
FcResult *result);
|
||||
|
||||
FcPublic FcFontSet *
|
||||
FcFontSort (FcConfig *config,
|
||||
FcPattern *p,
|
||||
FcBool trim,
|
||||
FcCharSet **csp,
|
||||
FcResult *result);
|
||||
|
||||
FcPublic void
|
||||
FcFontSetSortDestroy (FcFontSet *fs);
|
||||
|
||||
/* fcmatrix.c */
|
||||
FcPublic FcMatrix *
|
||||
FcMatrixCopy (const FcMatrix *mat);
|
||||
|
||||
FcPublic FcBool
|
||||
FcMatrixEqual (const FcMatrix *mat1, const FcMatrix *mat2);
|
||||
|
||||
FcPublic void
|
||||
FcMatrixMultiply (FcMatrix *result, const FcMatrix *a, const FcMatrix *b);
|
||||
|
||||
FcPublic void
|
||||
FcMatrixRotate (FcMatrix *m, double c, double s);
|
||||
|
||||
FcPublic void
|
||||
FcMatrixScale (FcMatrix *m, double sx, double sy);
|
||||
|
||||
FcPublic void
|
||||
FcMatrixShear (FcMatrix *m, double sh, double sv);
|
||||
|
||||
/* fcname.c */
|
||||
|
||||
FcPublic FcBool
|
||||
FcNameRegisterObjectTypes (const FcObjectType *types, int ntype);
|
||||
|
||||
FcPublic FcBool
|
||||
FcNameUnregisterObjectTypes (const FcObjectType *types, int ntype);
|
||||
|
||||
FcPublic const FcObjectType *
|
||||
FcNameGetObjectType (const char *object);
|
||||
|
||||
FcPublic FcBool
|
||||
FcNameRegisterConstants (const FcConstant *consts, int nconsts);
|
||||
|
||||
FcPublic FcBool
|
||||
FcNameUnregisterConstants (const FcConstant *consts, int nconsts);
|
||||
|
||||
FcPublic const FcConstant *
|
||||
FcNameGetConstant (FcChar8 *string);
|
||||
|
||||
FcPublic FcBool
|
||||
FcNameConstant (FcChar8 *string, int *result);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcNameParse (const FcChar8 *name);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcNameUnparse (FcPattern *pat);
|
||||
|
||||
/* fcpat.c */
|
||||
FcPublic FcPattern *
|
||||
FcPatternCreate (void);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcPatternDuplicate (const FcPattern *p);
|
||||
|
||||
FcPublic void
|
||||
FcPatternReference (FcPattern *p);
|
||||
|
||||
FcPublic void
|
||||
FcValueDestroy (FcValue v);
|
||||
|
||||
FcPublic FcBool
|
||||
FcValueEqual (FcValue va, FcValue vb);
|
||||
|
||||
FcPublic FcValue
|
||||
FcValueSave (FcValue v);
|
||||
|
||||
FcPublic void
|
||||
FcPatternDestroy (FcPattern *p);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternEqual (const FcPattern *pa, const FcPattern *pb);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternEqualSubset (const FcPattern *pa, const FcPattern *pb, const FcObjectSet *os);
|
||||
|
||||
FcPublic FcChar32
|
||||
FcPatternHash (const FcPattern *p);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAdd (FcPattern *p, const char *object, FcValue value, FcBool append);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddWeak (FcPattern *p, const char *object, FcValue value, FcBool append);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternDel (FcPattern *p, const char *object);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternRemove (FcPattern *p, const char *object, int id);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddInteger (FcPattern *p, const char *object, int i);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddDouble (FcPattern *p, const char *object, double d);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddString (FcPattern *p, const char *object, const FcChar8 *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddMatrix (FcPattern *p, const char *object, const FcMatrix *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddCharSet (FcPattern *p, const char *object, const FcCharSet *c);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddBool (FcPattern *p, const char *object, FcBool b);
|
||||
|
||||
FcPublic FcBool
|
||||
FcPatternAddLangSet (FcPattern *p, const char *object, const FcLangSet *ls);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetInteger (const FcPattern *p, const char *object, int n, int *i);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetDouble (const FcPattern *p, const char *object, int n, double *d);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetString (const FcPattern *p, const char *object, int n, FcChar8 ** s);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetMatrix (const FcPattern *p, const char *object, int n, FcMatrix **s);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetCharSet (const FcPattern *p, const char *object, int n, FcCharSet **c);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetBool (const FcPattern *p, const char *object, int n, FcBool *b);
|
||||
|
||||
FcPublic FcResult
|
||||
FcPatternGetLangSet (const FcPattern *p, const char *object, int n, FcLangSet **ls);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcPatternVaBuild (FcPattern *orig, va_list va);
|
||||
|
||||
FcPublic FcPattern *
|
||||
FcPatternBuild (FcPattern *orig, ...) FC_ATTRIBUTE_SENTINEL(0);
|
||||
|
||||
/* fcstr.c */
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrCopy (const FcChar8 *s);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrCopyFilename (const FcChar8 *s);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrPlus (const FcChar8 *s1, const FcChar8 *s2);
|
||||
|
||||
FcPublic void
|
||||
FcStrFree (FcChar8 *s);
|
||||
|
||||
/* These are ASCII only, suitable only for pattern element names */
|
||||
#define FcIsUpper(c) ((0101 <= (c) && (c) <= 0132))
|
||||
#define FcIsLower(c) ((0141 <= (c) && (c) <= 0172))
|
||||
#define FcToLower(c) (FcIsUpper(c) ? (c) - 0101 + 0141 : (c))
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrDowncase (const FcChar8 *s);
|
||||
|
||||
FcPublic int
|
||||
FcStrCmpIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
|
||||
|
||||
FcPublic int
|
||||
FcStrCmp (const FcChar8 *s1, const FcChar8 *s2);
|
||||
|
||||
FcPublic const FcChar8 *
|
||||
FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2);
|
||||
|
||||
FcPublic const FcChar8 *
|
||||
FcStrStr (const FcChar8 *s1, const FcChar8 *s2);
|
||||
|
||||
FcPublic int
|
||||
FcUtf8ToUcs4 (const FcChar8 *src_orig,
|
||||
FcChar32 *dst,
|
||||
int len);
|
||||
|
||||
FcPublic FcBool
|
||||
FcUtf8Len (const FcChar8 *string,
|
||||
int len,
|
||||
int *nchar,
|
||||
int *wchar);
|
||||
|
||||
#define FC_UTF8_MAX_LEN 6
|
||||
|
||||
FcPublic int
|
||||
FcUcs4ToUtf8 (FcChar32 ucs4,
|
||||
FcChar8 dest[FC_UTF8_MAX_LEN]);
|
||||
|
||||
FcPublic int
|
||||
FcUtf16ToUcs4 (const FcChar8 *src_orig,
|
||||
FcEndian endian,
|
||||
FcChar32 *dst,
|
||||
int len); /* in bytes */
|
||||
|
||||
FcPublic FcBool
|
||||
FcUtf16Len (const FcChar8 *string,
|
||||
FcEndian endian,
|
||||
int len, /* in bytes */
|
||||
int *nchar,
|
||||
int *wchar);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrDirname (const FcChar8 *file);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrBasename (const FcChar8 *file);
|
||||
|
||||
FcPublic FcStrSet *
|
||||
FcStrSetCreate (void);
|
||||
|
||||
FcPublic FcBool
|
||||
FcStrSetMember (FcStrSet *set, const FcChar8 *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcStrSetEqual (FcStrSet *sa, FcStrSet *sb);
|
||||
|
||||
FcPublic FcBool
|
||||
FcStrSetAdd (FcStrSet *set, const FcChar8 *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcStrSetAddFilename (FcStrSet *set, const FcChar8 *s);
|
||||
|
||||
FcPublic FcBool
|
||||
FcStrSetDel (FcStrSet *set, const FcChar8 *s);
|
||||
|
||||
FcPublic void
|
||||
FcStrSetDestroy (FcStrSet *set);
|
||||
|
||||
FcPublic FcStrList *
|
||||
FcStrListCreate (FcStrSet *set);
|
||||
|
||||
FcPublic FcChar8 *
|
||||
FcStrListNext (FcStrList *list);
|
||||
|
||||
FcPublic void
|
||||
FcStrListDone (FcStrList *list);
|
||||
|
||||
/* fcxml.c */
|
||||
FcPublic FcBool
|
||||
FcConfigParseAndLoad (FcConfig *config, const FcChar8 *file, FcBool complain);
|
||||
|
||||
_FCFUNCPROTOEND
|
||||
|
||||
#undef FC_ATTRIBUTE_SENTINEL
|
||||
|
||||
|
||||
#ifndef _FCINT_H_
|
||||
|
||||
/*
|
||||
* Deprecated functions are placed here to help users fix their code without
|
||||
* digging through documentation
|
||||
*/
|
||||
|
||||
#define FcConfigGetRescanInverval FcConfigGetRescanInverval_REPLACE_BY_FcConfigGetRescanInterval
|
||||
#define FcConfigSetRescanInverval FcConfigSetRescanInverval_REPLACE_BY_FcConfigSetRescanInterval
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* _FONTCONFIG_H_ */
|
@ -578,7 +578,7 @@ JNIEXPORT jstring JNICALL Java_sun_awt_FcFontManager_getFontPathNative
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include "fontconfig.h"
|
||||
#include <fontconfig/fontconfig.h>
|
||||
|
||||
|
||||
static void* openFontConfig() {
|
||||
|
Loading…
Reference in New Issue
Block a user