Commit Graph

679 Commits

Author SHA1 Message Date
Nikhil Ramakrishnan 9443a1bc3e Add Brotli dependency and required checks.
Brotli is required for decompressing WOFF2 font directory streams.
The library is thus being added as an optional dependency for
FreeType.

* builds/unix/configure.raw: Add checks for `libbrotlidec'.
(REQUIRES_PRIVATE, LIBS_PRIVATE, LIBSSTATIC_CONFIG): Updated.

* devel/ftoption.h, include/freetype/config/ftoption.h
(FT_CONFIG_OPTION_USE_BROTLI): New macro.
2019-08-27 09:09:48 +02:00
Werner Lemberg 8cf046c38d * Version 2.10.1 released.
==========================

Tag sources with `VER-2-10-1'.

* docs/VERSION.TXT: Add entry for version 2.10.1.

* README, Jamfile (RefDoc), src/base/ftver.rc,
builds/windows/vc2010/freetype.vcxproj,
builds/windows/vc2010/index.html,
builds/windows/visualc/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualc/index.html,
builds/windows/visualce/freetype.dsp,
builds/windows/visualce/freetype.vcproj,
builds/windows/visualce/index.html,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.10.0/2.10.1/, s/2100/2101/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.

* builds/unix/configure.raw (version_info): Set to 23:1:17.
* CMakeLists.txt (VERSION_PATCH): Set to 1.

* include/freetype/fterrors.h (FT_Error_String): Fix C++ compilation.
2019-07-01 15:56:34 +02:00
Werner Lemberg 82e4090431 Towards better VMS support.
More to come.

* builds/vms/LIBS.OPT_IA64, builds/vms/_LINK.OPT_IA64,
builds/vms/vmslib.dat: New files provided by Jouk Jansen
<joukj@hrem.nano.tudelft.nl>.

* builds/vms/ftconfig.h: Update, also from Jouk.
2019-06-16 10:11:46 +02:00
Alexei Podtelezhnikov c949ab0757 Minor. 2019-06-04 20:17:05 -04:00
Alexei Podtelezhnikov e13c1f46dc Solidify VC2005 builds.
* include/freetype/internal/ftcalc.h (FT_MSB) [_MSC_VER]: Explicitly
declare `_BitScanReverse' intrinsic.
* builds/windows/visualc/freetype.vcproj [Debug]: Disable intrinsics.
2019-05-31 22:31:47 -04:00
Werner Lemberg 74e9ca6d2e For distribution, replace `.tar.bz2' with `.tar.xz' bundles.
* builds/toplevel.mk (build): Do it.

* README, docs/CHANGES, docs/release: Updated.
2019-04-06 06:51:08 +02:00
Werner Lemberg fbbcf50367 * Version 2.10.0 released.
==========================

Tag sources with `VER-2-10-0'.

* docs/VERSION.TXT: Add entry for version 2.10.0.
* docs/CHANGES: Updated.

* README, Jamfile (RefDoc), src/base/ftver.rc,
builds/windows/vc2010/freetype.vcxproj,
builds/windows/vc2010/index.html,
builds/windows/visualc/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualc/index.html,
builds/windows/visualce/freetype.dsp,
builds/windows/visualce/freetype.vcproj,
builds/windows/visualce/index.html,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.9.1/2.10.0/, s/291/2100/.

* include/freetype/freetype.h (FREETYPE_MINOR): Set to 10.
(FREETYPE_PATCH): Set to 0.

* builds/unix/configure.raw (version_info): Set to 23:0:17.
* CMakeLists.txt (VERSION_MINOR): Set to 10.
(VERSION_PATCH): Set to 0.

* builds/toplevel.mk (version, winversion): Since the minor version
number has two digits now, never omit the patch number.  We would
get ambiguous zip file names otherwise.
(dist): Remove remnants of `docmaker' tool.
(do-dist): Remove unused intermediate files.

* src/cff/cffparse.c (destrict_c2s_item): Guard function with
CFF_CONFIG_OPTION_OLD_ENGINE macro.
2019-03-15 07:56:49 +01:00
Werner Lemberg 7585997024 Update all copyright notices. 2019-02-23 10:07:09 +01:00
Werner Lemberg de8de1ce0e Minor (whitespace, spelling, doc update). 2019-02-20 12:48:36 +01:00
Werner Lemberg f686ad46a3 Update copyright years. 2019-01-22 20:31:44 +01:00
suzuki toshiya 0238237508 * builds/mac/README: Fix a hyperlink to defunct www.gyve.org. 2018-12-26 12:04:39 +09:00
Werner Lemberg afa043de9c Fix links (mostly http -> https). 2018-12-25 22:44:05 +01:00
Alexei Podtelezhnikov 456e9c8fce * builds/windows/visualc/freetype.dsp: Dust off. 2018-12-02 23:40:55 -05:00
Alexei Podtelezhnikov 3dd4e76b19 * builds/windows/vc2010/freetype.vcxproj: Simplify. 2018-11-27 23:22:52 -05:00
Alexei Podtelezhnikov 1c4004bb34 [builds] Belated DLL support with vc2002-vc2008.
The solution and project files should be automatically upgraded for
the approriate Visual C++ version.

* builds/windows/visualc/freetype.{sln,vcproj}: Major upgrades.
* builds/windows/visualc/index.html: Document the change.
* builds/windows/vc2005, builds/windows/vc2008: Removed as redundant.
2018-11-25 23:19:39 -05:00
Alexei Podtelezhnikov 81f43a9d36 * builds/windows/{visualc,vc2005,vc2008}/freetype.vcproj: Fix it. 2018-11-18 14:47:32 -05:00
Alexei Podtelezhnikov 3b6e65f7bf * builds/unix/configure.raw: Require `windows.h' for windres. 2018-11-08 23:36:37 -05:00
Alexei Podtelezhnikov d71f2bc159 Revert "Align FreeType with standard C memory management."
This reverts commit 877aa1b2cc.
2018-10-26 22:52:25 -04:00
Alexei Podtelezhnikov 877aa1b2cc Align FreeType with standard C memory management.
* include/freetype/ftsystem.h: Include FT_TYPES_H.
(*FT_Alloc_Func, *FT_Realloc_Func): Use size_t for the size arguments.
* src/raster/ftmisc.h: Ditto.

* builds/amiga/src/base/ftsystem.c, builds/unix/ftsystem.c,
* builds/vms/ftsystem.c, src/base/ftsystem.c (ft_alloc, ft_realloc):
Use size_t for the size arguments.

* src/base/ftdbgmem.c (ft_mem_debug_alloc, ft_mem_debug_realloc): Use
FT_Offset, aka size_t, for the size arguments.
2018-09-27 21:17:36 -04:00
Ben Wagner 0805c4a488 * builds/freetype.mk (refdoc-venv): Ensure python version (#54631). 2018-09-09 09:25:58 +02:00
Werner Lemberg f8af8fba78 Synchronize `ftdebug.c' files.
* builds/amiga/src/base/ftdebug.c, builds/wince/ftdebug.c,
builds/windows/ftdebug.c: Synchronize with `src/base/ftdebug.c'.
2018-09-05 12:16:56 +02:00
Werner Lemberg 97c7944f9e Synchronize `ftconfig' files. 2018-09-05 11:45:05 +02:00
Nikhil Ramakrishnan c962db28ea * builds/*/*: Prepare build system for docwriter.
Add checks, rules and variables to the build system for docwriter.

* Running `make' will warn if Python/PIP/docwriter are not available.

* Running `make refdoc' will generate static documentation site on the
current Python environment.

* Running `make refdoc-venv' will generate static documentation site
using a virtual environment, using the pip package `virtualenv'.
2018-08-25 16:18:26 +05:30
Young Xiao c94162a220 * builds/mac/ftmac.c (parse_fond): Fix buffer overrun.
Reported as bug #54515, duplicate of #43540.
2018-08-16 08:25:47 -04:00
Werner Lemberg 33cd1eedcf * builds/*/ftsystem.c (FT_COMPONENT): Updated also. 2018-08-16 05:55:18 +02:00
Alexei Podtelezhnikov 0f8aebfd51 * builds/unix/configure.raw: Minor. 2018-07-28 23:21:28 -04:00
Alexei Podtelezhnikov 4b97ab98a8 [build] Fortify dllexport/dllimport attributes (#53969,#54330).
We no longer use predefined _DLL, which can be defined for static
builds too with /MD. We use DLL_EXPORT and DLL_IMPORT instead,
following libtool convention.

* CMakeLists.txt [WIN32], builds/windows/vc2010/freetype.vcxproj:
Define DLL_EXPORT manually.

* include/freetype/config/ftconfig.h, builds/unix/ftconfig.in,
builds/vms/ftconfig.h, builds/windows/vc2010/index.html,
src/base/ftver.rc: /_DLL/d, s/FT2_DLLIMPORT/DLL_IMPORT/.
2018-07-24 23:01:34 -04:00
Alexei Podtelezhnikov af28249862 Autoformatting. 2018-05-20 06:27:08 -04:00
Alan Coopersmith 9e345c9117 Further fix to visibility flag testing with Solaris Studio compilers.
AC_COMPILE_IFELSE only tries to compile a `*.c' to a `*.o'.  The
Solaris Studio 12.1 through 12.5 compilers see the
`-fvisibility=hidden' flag, but ignore it with a warning of:

  cc: Warning: Option -fvisibility=hidden passed to ld,
               if ld is invoked, ignored otherwise

AC_LINK_IFELSE does the compile and then tries to link the result,
at which point the Solaris linker will issue an error:

  ld: fatal: option '-fvisibility=hidden' is incompatible with
      building a dynamic executable

If we don't use AC_LINK_IFELSE to catch the error, then configure
will fail further tests which attempt to link, such as those testing
dependencies like `libbz2'.

Also, don't try adding `-fvisibility' if we have already added
`-xldscope', just use one of them, since Sun Studio 12 and earlier
compilers only issue a warning, and don't try passing through to the
linker to generate an error, so AC_LINK_IFELSE doesn't catch them.

Tested on Solaris 11.4 beta with compiler versions:

  Sun Studio 8 (Sun C 5.5)
  Sun Studio 10 (Sun C 5.7)
  Sun Studio 11 (Sun C 5.8)
  Sun Studio 12 (Sun C 5.9)
  Sun Studio 12.1 (Sun C 5.10)
  Oracle Solaris Studio 12.2 (Sun C 5.11)
  Oracle Solaris Studio 12.3 (Sun C 5.12)
  Oracle Solaris Studio 12.4 (Sun C 5.13)
  Oracle Developer Studio 12.5 (Sun C 5.14)
  Oracle Developer Studio 12.6 (Sun C 5.15)
  gcc 5.5.0
  gcc 7.3.0

and verified the libfreetype.so.6 generated by each of those
compilers exported the same set of symbols.

* builds/unix/configure.raw: Implement it.
2018-05-10 10:13:18 +02:00
Werner Lemberg 7702edf793 [build] Suppress configure's `nothing to be done' message.
This is due to calling the configure script via `make' (within the
top-level `configure' wrapper script).  The same can happen for all
other secondary make targets that are used to only modify the
primary one, e.g., `make setup devel'.

* builds/dos/detect.mk (emx, turboc, watcom, borlandc, borlandc16),
builds/os2/detect (visualage, watcom, borlandc, devel),
builds/unix/detect.mk (devel, lcc, unix), builds/windows/detect.mk
(visualc, watcom, visualage, lcc, mingw32, bcc32, devel-bcc,
devel-gcc): Use no-op recipe.
2018-05-07 08:54:34 +02:00
suzuki toshiya 2b3e0ef6c0 Support symbol visibility features of Sun / Oracle C compilers.
Reported by Kiyoshi Kanazawa:
https://lists.gnu.org/archive/html/freetype-devel/2018-05/msg00008.html
Thanks to the suggestions by Alexei and Alan Coopersmith.

* builds/unix/configure.raw: Check if "-xldscope=hidden" is
accepted, and if so, it is added to CFLAGS.  This is the option
making Sun / Oracle C compilers hide the symbols from global
scope.
* include/freetype/config/ftconfig.h: Use "__global" prefix
for FT_EXPORT() macro, if SunPro C is newer than Sun ONE
Studio 8 (2003).
* builds/unix/ftconfig.in: Ditto.
* builds/vms/ftconfig.h: Ditto.
2018-05-04 12:55:48 +09:00
Werner Lemberg 86bc8a9505 * Version 2.9.1 released.
=========================

Tag sources with `VER-2-9-1'.

* docs/VERSION.TXT: Add entry for version 2.9.1.
* docs/CHANGES: Updated.

* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
src/base/ftver.rc, builds/windows/vc2005/index.html,
builds/windows/vc2008/freetype.vcproj,
builds/windows/vc2008/index.html,
builds/windows/vc2010/freetype.vcxproj,
builds/windows/vc2010/index.html,
builds/windows/visualc/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualc/index.html,
builds/windows/visualce/freetype.dsp,
builds/windows/visualce/freetype.vcproj,
builds/windows/visualce/index.html,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.9/2.9.1/, s/29/291/.

* include/freetype/freetype.h (FREETYPE_PATCH): Set to 1.

* builds/unix/configure.raw (version_info): Set to 22:1:16.
* CMakeLists.txt (VERSION_PATCH): Set to 1.

* include/freetype/ftgasp.h: Use FT_BEGIN_HEADER and FT_END_HEADER.
2018-05-01 20:37:24 +02:00
Alexei Podtelezhnikov 843193b9d5 [build] Use `info' function of make 3.81.
* configure, docs/INSTALL, docs/INSTALL.CROSS, docs/INSTALL.GNU,
docs/INSTALL.UNIX, docs/MAKEPP: Bump make version requirements.

* builds/detect.mk (std_setup): Replace `echo' with `info'.
(dos_setup): Removed.
* builds/unix/install.mk, builds/modules.mk, builds/dos/detect.mk,
builds/windows/detect.mk, builds/os2/detect.mk: Updated.
* builds/newline: No longer needed.
2018-04-15 16:27:10 -04:00
Nikolaus Waxweiler 029721d69c Modernize CMake build.
* CMakeLists.txt, builds/cmake/FindHarfBuzz.cmake: Extensive
  modernization measures.

* .gitignore: Add build/, as that's the example directory used in
  CMakeLists.txt.

This brings up the minimum required CMake version to 2.8.12.

The installation paths follow the GNU defaults now, e.g. installing on a
64 bit host will place binaries into the lib64/ folder on e.g. Fedora.

Symbols are hidden by default (e.g. `-fvisibility=hidden' on GCC).

CMake will no longer look for a C++ compiler.

Library and .so version now match the Autotools build.

Comments in the build file and informational messages now use platform
agnostic example commands.

ftoption.h and ftconfig.h are written directly without a redundant
`-new' copy.

External dependencies are expressed as option()s and will turn up as
such in cmake-gui.

Internal: Properties such as dependencies and include directories are
now privately set on the freetype library instead of globally.

The CPack definitions have been cleaned up, the `make dist' has been
removed. Source packages generated with CPack don't contain Autotools
files and aren't used by the maintainters anyway.

On Windows, src/base/ftver.rc is compiled to decorate the library with
version and copyright information.

A pkg-config file is now generated and installed.
2018-04-10 22:31:10 +01:00
Alexei Podtelezhnikov cdddeff02f [windows, wince] Clean up legacy project files.
* builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2008-ce/freetype.vcproj,
builds/windows/vc2005/freetype.vcproj,
builds/windows/vc2008/freetype.vcproj,
builds/windows/visualce/freetype.vcproj,
builds/windows/visualce/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualc/freetype.dsp: Remove per-file compile flags.
2018-04-06 21:01:50 -04:00
Werner Lemberg 7109495c5e * builds/toplevel.mk (work): Use $(SEP).
This fixes the `make refdoc' using Cygwin: $(CAT) is `type' on this
platform, and this program only understands backslashes in paths.

Reported by Nikhil Ramakrishnan <ramakrishnan.nikhil@gmail.com>.
2018-04-01 13:24:59 +02:00
Werner Lemberg af89e445f8 Remove `ftlcdfil.c' and `ftfntfmt.c' from build files (#53415).
builds/amiga/makefile, builds/amiga/makefile.os4,
builds/amiga/smakefile, builds/mac/FreeType.m68k_cfm.make.txt,
builds/mac/FreeType.m68k_far.make.txt,
builds/mac/FreeType.ppc_carbon.make.txt,
builds/mac/FreeType.ppc_classic.make.txt,
builds/symbian/freetype.mmp, builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2008-ce/freetype.vcproj,
builds/windows/vc2005/freetype.vcproj,
builds/windows/vc2008/freetype.vcproj,
builds/windows/vc2010/freetype.vcxproj,
builds/windows/vc2010/freetype.vcxproj.filters,
builds/windows/visualc/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualce/freetype.dsp,
builds/windows/visualce/freetype.vcproj, vms_make.com: Do it.
2018-03-22 06:00:55 +01:00
Hugh McMaster a7833f26c4 Make installation of `freetype-config' optional (#53093).
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
2018-03-08 06:25:13 +01:00
Werner Lemberg 0206479158 * builds/unix/configure.raw: Need HarfBuzz 1.3.0 or newer.
Problem reported by Alan Coopersmith <alan.coopersmith@oracle.com>.
2018-03-01 21:34:57 +01:00
Alexei Podtelezhnikov f4a3255d45 [unix] Use -fvisibility=hidden.
It is now widely recommended that ELF shared libraries hide symbols
except those with explicit __attribute__((visibility("default"))).
This is supported by all major compilers and should rather be an
option in libtool.

* builds/unix/configure.raw: Add -fvisibility=hidden to CFLAGS.
* builds/unix/ftconfig.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h (FT_EXPORT): Use visibility
attribute.
2018-02-04 00:09:02 -05:00
Alexei Podtelezhnikov c6a965b4d3 [unix] Call libtool to clean up.
* builds/unix/install.mk (clean_project_unix, distclean_project_unix):
Use libtool.
* builds/freetype.mk: Minor.
2018-01-21 14:29:58 -05:00
Alexei Podtelezhnikov 4b8ccc56d8 [build] Enable VERSIONINFO resource for Cygwin/MinGW.
* builds/unix/configure.raw: Check for resource compiler.
* builds/unix/unix-cc.in: Conditionally set up resource compiler.
* builds/freetype.mk: Add conditional rule for `ftver.rc'.
* src/base/ftver.rc: Copyright notice and year update.
2018-01-18 04:32:52 -05:00
Alexei Podtelezhnikov fd8000f040 [build] Move VERSIONINFO resource.
* builds/windows/vc2010/freetype.vcxproj: Updated.
* builds/windows/ftver.rc: Move file from here...
* src/base/ftver.rc: ... to here.
2018-01-18 03:58:34 -05:00
Alexei Podtelezhnikov d2d1750e08 [build] Expand dllexport/dllimport to Cygwin/MinGW.
* include/freetype/config/ftconfig.h: Respect DLL_EXPORT,
s/_MSC_VER/_WIN32/.
* builds/unix/ftconfig.in: Replicate here.
* builds/vms/ftconfig.h: Replicate here.
2018-01-12 23:01:49 -05:00
Alexei Podtelezhnikov e8b38f899c [build] Improve and document MSVC build.
* include/freetype/config/ftconfig.h: Guard dllexport/dllimport
attributes with _DLL and FT2_DLLIMPORT.
* builds/windows/vc2010/index.html: Update documentation.
2018-01-12 08:57:08 -05:00
Alexei Podtelezhnikov 3f96c0bcc1 * builds/windows/vc2010/freetype.sln: Synchronize with the project. 2018-01-09 22:22:19 -05:00
Werner Lemberg 67a42aa887 * Version 2.9 released.
=======================

Tag sources with `VER-2-9'.

* docs/VERSION.TXT: Add entry for version 2.9.

* README, Jamfile (RefDoc), builds/windows/vc2005/freetype.vcproj,
builds/windows/vc2005/index.html,
builds/windows/vc2008/freetype.vcproj,
builds/windows/vc2008/index.html,
builds/windows/vc2010/freetype.vcxproj,
builds/windows/vc2010/index.html,
builds/windows/visualc/freetype.dsp,
builds/windows/visualc/freetype.vcproj,
builds/windows/visualc/index.html,
builds/windows/visualce/freetype.dsp,
builds/windows/visualce/freetype.vcproj,
builds/windows/visualce/index.html,
builds/windows/ftver.rc,
builds/wince/vc2005-ce/freetype.vcproj,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/freetype.vcproj,
builds/wince/vc2008-ce/index.html: s/2.8.1/2.9/, s/281/29/.

* include/freetype/freetype.h (FREETYPE_MINOR): Set to 9.
(FREETYPE_PATCH): Set to 0.

* builds/unix/configure.raw (version_info): Set to 22:0:16.
* CMakeLists.txt (VERSION_PATCH): Set to 1.
2018-01-08 12:30:04 +01:00
Werner Lemberg 1d6773e6d9 Add check for librt, needed for `ftbench' (#52824).
* builds/unix/configure.raw: Call AC_USE_SYSTEM_EXTENSIONS.
(LIB_CLOCK_GETTIME): Define; this will hold `-lrt' if necessary.

* builds/unix/unix-cc.in (LIB_CLOCK_GETTIME): New variable.
2018-01-07 19:06:19 +01:00
Werner Lemberg 0a0c22569d Update copyright year. 2018-01-02 09:33:57 +01:00
Werner Lemberg 0268bf35f0 Synchronize other Windows project files.
* builds/windows/*: Add missing files.
2017-12-31 08:21:08 +01:00