From 6bb09f89b599da2c2029f631e874705f7203c89f Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Thu, 8 Apr 2021 18:37:00 +0300
Subject: [PATCH] added windows x86 and x64 builds of freetype2 and harfbuzz
for MSVC
---
.../include/freetype/config/ftconfig.h | 616 +-
.../include/freetype/config/ftheader.h | 390 +-
.../include/freetype/config/ftmodule.h | 2 -
.../include/freetype/config/ftoption.h | 1391 ++--
.../include/freetype/config/ftstdlib.h | 160 +-
.../include/freetype/config/integer-types.h | 245 +
.../include/freetype/config/mac-support.h | 49 +
.../include/freetype/config/public-macros.h | 120 +
VisualC/external/include/freetype/freetype.h | 7054 +++++++++--------
VisualC/external/include/freetype/ftadvanc.h | 243 +-
VisualC/external/include/freetype/ftbbox.h | 132 +-
VisualC/external/include/freetype/ftbdf.h | 244 +-
VisualC/external/include/freetype/ftbitmap.h | 441 +-
VisualC/external/include/freetype/ftbzip2.h | 144 +-
VisualC/external/include/freetype/ftcache.h | 1193 +--
.../external/include/freetype/ftchapters.h | 284 +-
VisualC/external/include/freetype/ftcid.h | 105 +-
VisualC/external/include/freetype/ftcolor.h | 313 +
VisualC/external/include/freetype/ftdriver.h | 756 +-
VisualC/external/include/freetype/fterrdef.h | 101 +-
VisualC/external/include/freetype/fterrors.h | 272 +-
VisualC/external/include/freetype/ftfntfmt.h | 120 +-
VisualC/external/include/freetype/ftgasp.h | 77 +-
VisualC/external/include/freetype/ftglyph.h | 1002 +--
VisualC/external/include/freetype/ftgxval.h | 493 +-
VisualC/external/include/freetype/ftgzip.h | 230 +-
VisualC/external/include/freetype/ftimage.h | 1786 +++--
VisualC/external/include/freetype/ftincrem.h | 144 +-
VisualC/external/include/freetype/ftlcdfil.h | 327 +-
VisualC/external/include/freetype/ftlist.h | 424 +-
VisualC/external/include/freetype/ftlzw.h | 141 +-
VisualC/external/include/freetype/ftmac.h | 400 +-
VisualC/external/include/freetype/ftmm.h | 1106 +--
VisualC/external/include/freetype/ftmodapi.h | 949 ++-
VisualC/external/include/freetype/ftmoderr.h | 191 +-
VisualC/external/include/freetype/ftotval.h | 306 +-
VisualC/external/include/freetype/ftoutln.h | 938 +--
VisualC/external/include/freetype/ftparams.h | 102 +-
VisualC/external/include/freetype/ftpfr.h | 261 +-
VisualC/external/include/freetype/ftrender.h | 219 +-
VisualC/external/include/freetype/ftsizes.h | 242 +-
VisualC/external/include/freetype/ftsnames.h | 399 +-
VisualC/external/include/freetype/ftstroke.h | 436 +-
VisualC/external/include/freetype/ftsynth.h | 41 +-
VisualC/external/include/freetype/ftsystem.h | 135 +-
VisualC/external/include/freetype/fttrigon.h | 86 +-
VisualC/external/include/freetype/fttypes.h | 855 +-
VisualC/external/include/freetype/ftwinfnt.h | 165 +-
VisualC/external/include/freetype/t1tables.h | 619 +-
VisualC/external/include/freetype/ttnameid.h | 139 +-
VisualC/external/include/freetype/tttables.h | 979 +--
VisualC/external/include/freetype/tttags.h | 38 +-
VisualC/external/include/ft2build.h | 62 +-
.../external/include/harfbuzz/hb-aat-layout.h | 795 ++
VisualC/external/include/harfbuzz/hb-aat.h | 38 +
VisualC/external/include/harfbuzz/hb-blob.h | 150 +
VisualC/external/include/harfbuzz/hb-buffer.h | 691 ++
VisualC/external/include/harfbuzz/hb-common.h | 861 ++
.../external/include/harfbuzz/hb-deprecated.h | 254 +
VisualC/external/include/harfbuzz/hb-draw.h | 98 +
VisualC/external/include/harfbuzz/hb-face.h | 177 +
VisualC/external/include/harfbuzz/hb-font.h | 1063 +++
VisualC/external/include/harfbuzz/hb-ft.h | 138 +
VisualC/external/include/harfbuzz/hb-map.h | 114 +
.../external/include/harfbuzz/hb-ot-color.h | 142 +
.../include/harfbuzz/hb-ot-deprecated.h | 126 +
.../external/include/harfbuzz/hb-ot-font.h | 45 +
.../external/include/harfbuzz/hb-ot-layout.h | 524 ++
.../external/include/harfbuzz/hb-ot-math.h | 307 +
.../external/include/harfbuzz/hb-ot-meta.h | 72 +
.../external/include/harfbuzz/hb-ot-metrics.h | 124 +
.../external/include/harfbuzz/hb-ot-name.h | 128 +
.../external/include/harfbuzz/hb-ot-shape.h | 53 +
VisualC/external/include/harfbuzz/hb-ot-var.h | 191 +
VisualC/external/include/harfbuzz/hb-ot.h | 49 +
VisualC/external/include/harfbuzz/hb-set.h | 180 +
.../external/include/harfbuzz/hb-shape-plan.h | 122 +
VisualC/external/include/harfbuzz/hb-shape.h | 62 +
VisualC/external/include/harfbuzz/hb-style.h | 43 +
VisualC/external/include/harfbuzz/hb-subset.h | 97 +
.../external/include/harfbuzz/hb-unicode.h | 643 ++
.../external/include/harfbuzz/hb-version.h | 95 +
VisualC/external/include/harfbuzz/hb.h | 50 +
VisualC/external/lib/x64/LICENSE.harfbuzz.txt | 38 +
VisualC/external/lib/x64/libfreetype-6.dll | Bin 586240 -> 615936 bytes
VisualC/external/lib/x64/libfreetype-6.lib | Bin 45934 -> 47764 bytes
VisualC/external/lib/x64/libharfbuzz-0.dll | Bin 0 -> 1092096 bytes
VisualC/external/lib/x64/libharfbuzz-0.lib | Bin 0 -> 101730 bytes
VisualC/external/lib/x86/LICENSE.harfbuzz.txt | 38 +
VisualC/external/lib/x86/libfreetype-6.dll | Bin 550912 -> 577024 bytes
VisualC/external/lib/x86/libfreetype-6.lib | Bin 46910 -> 48782 bytes
VisualC/external/lib/x86/libharfbuzz-0.dll | Bin 0 -> 1086976 bytes
VisualC/external/lib/x86/libharfbuzz-0.lib | Bin 0 -> 103652 bytes
93 files changed, 21863 insertions(+), 13312 deletions(-)
create mode 100644 VisualC/external/include/freetype/config/integer-types.h
create mode 100644 VisualC/external/include/freetype/config/mac-support.h
create mode 100644 VisualC/external/include/freetype/config/public-macros.h
create mode 100644 VisualC/external/include/freetype/ftcolor.h
create mode 100644 VisualC/external/include/harfbuzz/hb-aat-layout.h
create mode 100644 VisualC/external/include/harfbuzz/hb-aat.h
create mode 100644 VisualC/external/include/harfbuzz/hb-blob.h
create mode 100644 VisualC/external/include/harfbuzz/hb-buffer.h
create mode 100644 VisualC/external/include/harfbuzz/hb-common.h
create mode 100644 VisualC/external/include/harfbuzz/hb-deprecated.h
create mode 100644 VisualC/external/include/harfbuzz/hb-draw.h
create mode 100644 VisualC/external/include/harfbuzz/hb-face.h
create mode 100644 VisualC/external/include/harfbuzz/hb-font.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ft.h
create mode 100644 VisualC/external/include/harfbuzz/hb-map.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-color.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-deprecated.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-font.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-layout.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-math.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-meta.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-metrics.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-name.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-shape.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot-var.h
create mode 100644 VisualC/external/include/harfbuzz/hb-ot.h
create mode 100644 VisualC/external/include/harfbuzz/hb-set.h
create mode 100644 VisualC/external/include/harfbuzz/hb-shape-plan.h
create mode 100644 VisualC/external/include/harfbuzz/hb-shape.h
create mode 100644 VisualC/external/include/harfbuzz/hb-style.h
create mode 100644 VisualC/external/include/harfbuzz/hb-subset.h
create mode 100644 VisualC/external/include/harfbuzz/hb-unicode.h
create mode 100644 VisualC/external/include/harfbuzz/hb-version.h
create mode 100644 VisualC/external/include/harfbuzz/hb.h
create mode 100644 VisualC/external/lib/x64/LICENSE.harfbuzz.txt
create mode 100644 VisualC/external/lib/x64/libharfbuzz-0.dll
create mode 100644 VisualC/external/lib/x64/libharfbuzz-0.lib
create mode 100644 VisualC/external/lib/x86/LICENSE.harfbuzz.txt
create mode 100644 VisualC/external/lib/x86/libharfbuzz-0.dll
create mode 100644 VisualC/external/lib/x86/libharfbuzz-0.lib
diff --git a/VisualC/external/include/freetype/config/ftconfig.h b/VisualC/external/include/freetype/config/ftconfig.h
index 19d091d..baa87a2 100644
--- a/VisualC/external/include/freetype/config/ftconfig.h
+++ b/VisualC/external/include/freetype/config/ftconfig.h
@@ -1,39 +1,37 @@
-/* ftconfig.h. Generated from ftconfig.in by configure. */
-/***************************************************************************/
-/* */
-/* ftconfig.in */
-/* */
-/* UNIX-specific configuration file (specification only). */
-/* */
-/* Copyright 1996-2018 by */
-/* David Turner, Robert Wilhelm, and Werner Lemberg. */
-/* */
-/* This file is part of the FreeType project, and may only be used, */
-/* modified, and distributed under the terms of the FreeType project */
-/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
-/* this file you indicate that you have read the license and */
-/* understand and accept it fully. */
-/* */
-/***************************************************************************/
-
-
- /*************************************************************************/
- /* */
- /* This header file contains a number of macro definitions that are used */
- /* by the rest of the engine. Most of the macros here are automatically */
- /* determined at compile time, and you should not need to change it to */
- /* port FreeType, except to compile the library with a non-ANSI */
- /* compiler. */
- /* */
- /* Note however that if some specific modifications are needed, we */
- /* advise you to place a modified copy in your build directory. */
- /* */
- /* The build directory is usually `builds/<system>', and contains */
- /* system-specific files that are always included first when building */
- /* the library. */
- /* */
- /*************************************************************************/
-
+/* ftconfig.h. Generated from ftconfig.h.in by configure. */
+/****************************************************************************
+ *
+ * ftconfig.h.in
+ *
+ * UNIX-specific configuration file (specification only).
+ *
+ * Copyright (C) 1996-2020 by
+ * David Turner, Robert Wilhelm, and Werner Lemberg.
+ *
+ * This file is part of the FreeType project, and may only be used,
+ * modified, and distributed under the terms of the FreeType project
+ * license, LICENSE.TXT. By continuing to use, modify, or distribute
+ * this file you indicate that you have read the license and
+ * understand and accept it fully.
+ *
+ */
+
+
+ /**************************************************************************
+ *
+ * This header file contains a number of macro definitions that are used by
+ * the rest of the engine. Most of the macros here are automatically
+ * determined at compile time, and you should not need to change it to port
+ * FreeType, except to compile the library with a non-ANSI compiler.
+ *
+ * Note however that if some specific modifications are needed, we advise
+ * you to place a modified copy in your build directory.
+ *
+ * The build directory is usually `builds/<system>`, and contains
+ * system-specific files that are always included first when building the
+ * library.
+ *
+ */
#ifndef FTCONFIG_H_
#define FTCONFIG_H_
@@ -42,39 +40,8 @@
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
-
-FT_BEGIN_HEADER
-
-
- /*************************************************************************/
- /* */
- /* PLATFORM-SPECIFIC CONFIGURATION MACROS */
- /* */
- /* These macros can be toggled to suit a specific system. The current */
- /* ones are defaults used to compile FreeType in an ANSI C environment */
- /* (16bit compilers are also supported). Copy this file to your own */
- /* `builds/<system>' directory, and edit it to port the engine. */
- /* */
- /*************************************************************************/
-
-
#define HAVE_UNISTD_H 1
#define HAVE_FCNTL_H 1
-#define HAVE_STDINT_H 1
-
-
- /* There are systems (like the Texas Instruments 'C54x) where a `char' */
- /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */
- /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */
- /* is probably unexpected. */
- /* */
- /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */
- /* `char' type. */
-
-#ifndef FT_CHAR_BIT
-#define FT_CHAR_BIT CHAR_BIT
-#endif
-
/* #undef FT_USE_AUTOCONF_SIZEOF_TYPES */
#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
@@ -84,518 +51,11 @@ FT_BEGIN_HEADER
#define FT_SIZEOF_INT SIZEOF_INT
#define FT_SIZEOF_LONG SIZEOF_LONG
-#else /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
-
- /* Following cpp computation of the bit length of int and long */
- /* is copied from default include/freetype/config/ftconfig.h. */
- /* If any improvement is required for this file, it should be */
- /* applied to the original header file for the builders that */
- /* do not use configure script. */
-
- /* The size of an `int' type. */
-#if FT_UINT_MAX == 0xFFFFUL
-#define FT_SIZEOF_INT (16 / FT_CHAR_BIT)
-#elif FT_UINT_MAX == 0xFFFFFFFFUL
-#define FT_SIZEOF_INT (32 / FT_CHAR_BIT)
-#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
-#define FT_SIZEOF_INT (64 / FT_CHAR_BIT)
-#else
-#error "Unsupported size of `int' type!"
-#endif
-
- /* The size of a `long' type. A five-byte `long' (as used e.g. on the */
- /* DM642) is recognized but avoided. */
-#if FT_ULONG_MAX == 0xFFFFFFFFUL
-#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT)
-#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
-#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT)
-#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
-#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT)
-#else
-#error "Unsupported size of `long' type!"
-#endif
-
-#endif /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
-
-
- /* FT_UNUSED is a macro used to indicate that a given parameter is not */
- /* used -- this is only used to get rid of unpleasant compiler warnings */
-#ifndef FT_UNUSED
-#define FT_UNUSED( arg ) ( (arg) = (arg) )
-#endif
-
-
- /*************************************************************************/
- /* */
- /* AUTOMATIC CONFIGURATION MACROS */
- /* */
- /* These macros are computed from the ones defined above. Don't touch */
- /* their definition, unless you know precisely what you are doing. No */
- /* porter should need to mess with them. */
- /* */
- /*************************************************************************/
-
-
- /*************************************************************************/
- /* */
- /* Mac support */
- /* */
- /* This is the only necessary change, so it is defined here instead */
- /* providing a new configuration file. */
- /* */
-#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
- /* no Carbon frameworks for 64bit 10.4.x */
- /* AvailabilityMacros.h is available since Mac OS X 10.2, */
- /* so guess the system version by maximum errno before inclusion */
-#include <errno.h>
-#ifdef ECANCELED /* defined since 10.2 */
-#include "AvailabilityMacros.h"
-#endif
-#if defined( __LP64__ ) && \
- ( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
-#undef FT_MACINTOSH
-#endif
-
-#elif defined( __SC__ ) || defined( __MRC__ )
- /* Classic MacOS compilers */
-#include "ConditionalMacros.h"
-#if TARGET_OS_MAC
-#define FT_MACINTOSH 1
-#endif
-
-#endif
-
-
- /* Fix compiler warning with sgi compiler */
-#if defined( __sgi ) && !defined( __GNUC__ )
-#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
-#pragma set woff 3505
-#endif
-#endif
-
-
- /*************************************************************************/
- /* */
- /* <Section> */
- /* basic_types */
- /* */
- /*************************************************************************/
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_Int16 */
- /* */
- /* <Description> */
- /* A typedef for a 16bit signed integer type. */
- /* */
- typedef signed short FT_Int16;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_UInt16 */
- /* */
- /* <Description> */
- /* A typedef for a 16bit unsigned integer type. */
- /* */
- typedef unsigned short FT_UInt16;
-
- /* */
-
-
- /* this #if 0 ... #endif clause is for documentation purposes */
-#if 0
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_Int32 */
- /* */
- /* <Description> */
- /* A typedef for a 32bit signed integer type. The size depends on */
- /* the configuration. */
- /* */
- typedef signed XXX FT_Int32;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_UInt32 */
- /* */
- /* A typedef for a 32bit unsigned integer type. The size depends on */
- /* the configuration. */
- /* */
- typedef unsigned XXX FT_UInt32;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_Int64 */
- /* */
- /* A typedef for a 64bit signed integer type. The size depends on */
- /* the configuration. Only defined if there is real 64bit support; */
- /* otherwise, it gets emulated with a structure (if necessary). */
- /* */
- typedef signed XXX FT_Int64;
-
-
- /*************************************************************************/
- /* */
- /* <Type> */
- /* FT_UInt64 */
- /* */
- /* A typedef for a 64bit unsigned integer type. The size depends on */
- /* the configuration. Only defined if there is real 64bit support; */
- /* otherwise, it gets emulated with a structure (if necessary). */
- /* */
- typedef unsigned XXX FT_UInt64;
-
- /* */
-
-#endif
-
-#if FT_SIZEOF_INT == 4
-
- typedef signed int FT_Int32;
- typedef unsigned int FT_UInt32;
-
-#elif FT_SIZEOF_LONG == 4
-
- typedef signed long FT_Int32;
- typedef unsigned long FT_UInt32;
-
-#else
-#error "no 32bit type found -- please check your configuration files"
-#endif
-
-
- /* look up an integer type that is at least 32 bits */
-#if FT_SIZEOF_INT >= 4
-
- typedef int FT_Fast;
- typedef unsigned int FT_UFast;
-
-#elif FT_SIZEOF_LONG >= 4
-
- typedef long FT_Fast;
- typedef unsigned long FT_UFast;
-
-#endif
-
-
- /* determine whether we have a 64-bit int type */
- /* (mostly for environments without `autoconf') */
-#if FT_SIZEOF_LONG == 8
-
- /* FT_LONG64 must be defined if a 64-bit type is available */
-#define FT_LONG64
-#define FT_INT64 long
-#define FT_UINT64 unsigned long
-
- /* we handle the LLP64 scheme separately for GCC and clang, */
- /* suppressing the `long long' warning */
-#elif ( FT_SIZEOF_LONG == 4 ) && \
- defined( HAVE_LONG_LONG_INT ) && \
- defined( __GNUC__ )
-#pragma GCC diagnostic ignored "-Wlong-long"
-#define FT_LONG64
-#define FT_INT64 long long int
-#define FT_UINT64 unsigned long long int
-
- /*************************************************************************/
- /* */
- /* A 64-bit data type may create compilation problems if you compile */
- /* in strict ANSI mode. To avoid them, we disable other 64-bit data */
- /* types if __STDC__ is defined. You can however ignore this rule */
- /* by defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
- /* */
-#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
-
-#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
-
-#define FT_LONG64
-#define FT_INT64 long long int
-#define FT_UINT64 unsigned long long int
-
-#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
-
- /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64 __int64
-#define FT_UINT64 unsigned __int64
-
-#elif defined( __BORLANDC__ ) /* Borland C++ */
-
- /* XXXX: We should probably check the value of __BORLANDC__ in order */
- /* to test the compiler version. */
-
- /* this compiler provides the __int64 type */
-#define FT_LONG64
-#define FT_INT64 __int64
-#define FT_UINT64 unsigned __int64
-
-#elif defined( __WATCOMC__ ) /* Watcom C++ */
-
- /* Watcom doesn't provide 64-bit data types */
-
-#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
-
-#define FT_LONG64
-#define FT_INT64 long long int
-#define FT_UINT64 unsigned long long int
-
-#elif defined( __GNUC__ )
-
- /* GCC provides the `long long' type */
-#define FT_LONG64
-#define FT_INT64 long long int
-#define FT_UINT64 unsigned long long int
-
-#endif /* __STDC_VERSION__ >= 199901L */
-
-#endif /* FT_SIZEOF_LONG == 8 */
-
-#ifdef FT_LONG64
- typedef FT_INT64 FT_Int64;
- typedef FT_UINT64 FT_UInt64;
-#endif
-
-
-#ifdef _WIN64
- /* only 64bit Windows uses the LLP64 data model, i.e., */
- /* 32bit integers, 64bit pointers */
-#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
-#else
-#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
-#endif
-
-
- /*************************************************************************/
- /* */
- /* miscellaneous */
- /* */
- /*************************************************************************/
-
-
-#define FT_BEGIN_STMNT do {
-#define FT_END_STMNT } while ( 0 )
-#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
-
-
- /* typeof condition taken from gnulib's `intprops.h' header file */
-#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
- ( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
- defined( __IBM__TYPEOF__ ) ) || \
- ( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
-#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
-#else
-#define FT_TYPEOF( type ) /* empty */
-#endif
-
-
- /* Use FT_LOCAL and FT_LOCAL_DEF to declare and define, respectively, */
- /* a function that gets used only within the scope of a module. */
- /* Normally, both the header and source code files for such a */
- /* function are within a single module directory. */
- /* */
- /* Intra-module arrays should be tagged with FT_LOCAL_ARRAY and */
- /* FT_LOCAL_ARRAY_DEF. */
- /* */
-#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
-
-#define FT_LOCAL( x ) static x
-#define FT_LOCAL_DEF( x ) static x
-
-#else
-
-#ifdef __cplusplus
-#define FT_LOCAL( x ) extern "C" x
-#define FT_LOCAL_DEF( x ) extern "C" x
-#else
-#define FT_LOCAL( x ) extern x
-#define FT_LOCAL_DEF( x ) x
-#endif
-
-#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
-
-#define FT_LOCAL_ARRAY( x ) extern const x
-#define FT_LOCAL_ARRAY_DEF( x ) const x
-
-
- /* Use FT_BASE and FT_BASE_DEF to declare and define, respectively, */
- /* functions that are used in more than a single module. In the */
- /* current setup this implies that the declaration is in a header */
- /* file in the `include/freetype/internal' directory, and the */
- /* function body is in a file in `src/base'. */
- /* */
-#ifndef FT_BASE
-
-#ifdef __cplusplus
-#define FT_BASE( x ) extern "C" x
-#else
-#define FT_BASE( x ) extern x
-#endif
-
-#endif /* !FT_BASE */
-
-
-#ifndef FT_BASE_DEF
-
-#ifdef __cplusplus
-#define FT_BASE_DEF( x ) x
-#else
-#define FT_BASE_DEF( x ) x
-#endif
-
-#endif /* !FT_BASE_DEF */
-
-
- /* When compiling FreeType as a DLL or DSO with hidden visibility */
- /* some systems/compilers need a special attribute in front OR after */
- /* the return type of function declarations. */
- /* */
- /* Two macros are used within the FreeType source code to define */
- /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
- /* */
- /* FT_EXPORT( return_type ) */
- /* */
- /* is used in a function declaration, as in */
- /* */
- /* FT_EXPORT( FT_Error ) */
- /* FT_Init_FreeType( FT_Library* alibrary ); */
- /* */
- /* */
- /* FT_EXPORT_DEF( return_type ) */
- /* */
- /* is used in a function definition, as in */
- /* */
- /* FT_EXPORT_DEF( FT_Error ) */
- /* FT_Init_FreeType( FT_Library* alibrary ) */
- /* { */
- /* ... some code ... */
- /* return FT_Err_Ok; */
- /* } */
- /* */
- /* You can provide your own implementation of FT_EXPORT and */
- /* FT_EXPORT_DEF here if you want. */
- /* */
- /* To export a variable, use FT_EXPORT_VAR.
(Patch may be truncated, please check the link at the top of this post.)