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
Werner Lemberg
bd9400bd46
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7453
* src/truetype/ttinterp.c (Round_Super, Round_Super_45): Use
ADD_LONG and SUB_LONG.
2018-04-09 21:28:37 +02: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
3b8f16803c
[cff, type1] Sanitize `BlueFuzz' and `BlueShift'.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7371
* src/cff/cffload.c (cff_load_private_dict): Sanitize
`priv->blue_shift' and `priv->blue_fuzz' to avoid overflows later
on.
* src/type1/t1load.c (T1_Open_Face): Ditto.
2018-04-04 20:26:08 +02:00
suzuki toshiya
26ad1acbcb
* src/truetype/ttobjs.c (trick_names): Add 3 tricky fonts ( #53554 ),
...
`DFHei-Md-HK-BF', `DFKaiShu-Md-HK-BF' and `DFMing-Bd-HK-BF'.
(tt_check_trickyness_sfnt_ids): Add checksums for 3 tricky fonts
in above.
2018-04-04 16:39:42 +09:00
Werner Lemberg
578dafd6b4
Minor comment improvement.
2018-04-03 11:31:22 +02: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
597cb3b442
[truetype] Fix memory leak (only if tracing is on).
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var) [FT_DEBUG_LEVEL_TRACE}: Fix
it.
2018-03-30 13:46:03 +02:00
Alexei Podtelezhnikov
fa6da7bf6d
Documentation improvement.
2018-03-26 21:40:18 -04:00
Werner Lemberg
61ee69a66e
Typo.
2018-03-24 05:53:22 +01:00
Kushal K S V S
e1122047ae
Fixing cmake command format
2018-03-23 13:12:07 +05:30
Ben Wagner
34e467332b
[sfnt] Correctly handle missing bitmaps in sbix format ( #53404 ).
...
* src/sfnt/ttfsbit.c (tt_face_load_sbix_image): Fix return value.
2018-03-23 06:13:25 +01:00
Ben Wagner
43d4852ec6
[truetype] Fix advance of empty glyphs in bitmap fonts ( #53393 ).
...
* src/truetype/ttgload.c (TT_Load_Glyph): Apply scaling to metrics
for empty bitmaps.
2018-03-23 06:07:24 +01: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
Werner Lemberg
5bd76524ef
* src/sfnt/ttcmap.c (tt_cmap2_validate): Fix potential numeric
...
overflow.
2018-03-13 11:11:16 +01:00
Werner Lemberg
78cded2c5c
Fix cmap format 2 handling ( #53320 ).
...
The patch introduced for #52646 was not correct.
* src/sfnt/ttcmap.c (tt_cmap2_char_next): Adjust condition.
2018-03-13 11:09:44 +01:00
Nikolaus Waxweiler
098dd70cb1
* CMakeLists.txt (BASE_SRCS): Update to changes from 2018-03-05.
2018-03-10 14:51:17 +01:00
Chun-wei Fan
6f854692a8
* CMakeLists.txt [win32]: Allow MSVC DLL builds ( #53287 ).
...
Do not limit DLL builds to MinGW, since we already have
`__declspec(dllexport)' directives in `ftconfig.h'.
Also suppress more warnings for POSIX functions.
2018-03-09 06:51:38 +01:00
Werner Lemberg
e277267c52
Typo.
2018-03-08 11:33:31 +01:00
Werner Lemberg
b0a93839b5
CHANGES: Document `--enable-freetype-config'.
2018-03-08 06:36:47 +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
ccec889229
Minor: Update `CHANGES' and improve documentation in `modules.cfg'.
2018-03-08 06:09:17 +01:00
Werner Lemberg
733a21bdbc
Make `ftlcdfil.c' part of the `base' module.
...
`ftobjs.c' needs `ft_lcd_padding'.
Problem reported by duhuanpeng <548708880@qq.com>.
* modules.cfg (BASE_EXTENSIONS): Don't include `ftlcdfil.c'.
* src/base/ftbase.c: Include `ftlcdfil.c'.
* src/base/rules.mk (BASE_SRC): Add `ftlcdfil.c'.
* src/base/Jamfile (_sources): Adjusted.
* docs/INSTALL.ANY: Updated.
2018-03-05 23:37:17 +01:00
Werner Lemberg
f4a3531655
Make `ftfntfmt.c' part of the `base' module.
...
`ftobjs.c' needs `FT_Get_Font_Format'.
Problem reported by duhuanpeng <548708880@qq.com>.
* modules.cfg (BASE_EXTENSIONS): Don't include `ftfntfmt.c'.
* src/base/ftbase.c: Include `ftfntfmt.c'.
* src/base/rules.mk (BASE_SRC): Add `ftfntfmt.c'.
* src/base/Jamfile (_sources): Adjusted.
* docs/INSTALL.ANY: Updated.
2018-03-05 20:45:12 +01:00
Werner Lemberg
5955b77b1d
Minor documentation improvement.
2018-03-03 09:21:59 +01:00
Werner Lemberg
efd13c5d1b
* src/truetype/ttinterp.c (TT_RunIns): Fix tracing arguments.
2018-03-01 22:17:54 +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
Werner Lemberg
713d68ee9f
[sfnt] Prefer `CBDT'/`CBLC' over `glyf' table ( #53154 ).
2018-02-17 18:35:15 +01:00
Werner Lemberg
9fbd0041ca
Split off ChangeLog.28.
2018-02-17 10:37:10 +01:00
Werner Lemberg
63aaf89cec
s/sub-pixel/subpixel/.
2018-02-17 10:34:47 +01:00
Werner Lemberg
4a03f17449
[truetype] Integer overflow issues.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6027
* src/truetype/ttinterp.c (Ins_MSIRP, Ins_MIAP, Ins_MIRP): Use
SUB_LONG; avoid FT_ABS.
2018-02-06 02:23:19 +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
Werner Lemberg
036bdc0c9a
[truetype] Minor typo.
2018-01-28 00:05:46 +01:00
Werner Lemberg
68dddcdcbe
[truetype] Better protection against invalid VF data.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5739
Bug introduced in commit 08cd62deed
.
* src/truetype/ttgxvar.c (TT_Set_Var_Design): Always initialize
`normalizedcoords'.
2018-01-27 23:59:30 +01:00
Werner Lemberg
29c759284e
* src/truetype/ttinterp.c (Ins_GETVARIATION): Avoid NULL reference.
...
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5736
2018-01-27 14:43:43 +01:00
Werner Lemberg
f438e06972
* src/truetype/ttgxvar.c (tt_set_mm_blend): Minor.
2018-01-27 14:39:15 +01:00
Werner Lemberg
ef48653023
[truetype] Better trace VF instances.
...
* src/truetype/ttgxvar.c (ft_var_to_normalized): Don't emit number
of coordinates.
(TT_Get_MM_Var): Trace instance indices names.
(TT_Set_Var_Design): Updated.
2018-01-27 13:58:02 +01:00
Werner Lemberg
5f94c90f19
Fix comment.
2018-01-27 10:52:13 +01:00
Werner Lemberg
50f693a78b
[truetype] Beautify tracing of VF axis records.
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Show axis records in a
table-like manner.
2018-01-27 10:15:58 +01:00
Werner Lemberg
994eb2b349
[truetype] Fix multiple calls of `FT_Get_MM_Var' ( #52955 ).
...
* src/truetype/ttgxvar.c (TT_Get_MM_Var): Set
`face->blend->num_axis' in case we have to initialize the
`face->blend'.
2018-01-26 23:17:43 +01:00
Alexei Podtelezhnikov
b1e0209829
[apinames] Anonymous version map for GNU linker.
...
* src/tools/apinames.c (PROGRAM_VERSION): Set to 0.3.
(OutputFormat): Add `OUTPUT_GNU_VERMAP'.
(names_dump): Handle it.
(usage): Updated.
(main): Handle new command line flag `-wL'.
2018-01-23 22:29:45 -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
6ce6685659
* src/base/ftver.rc: Fix mingw-w64 compilation.
2018-01-18 21:29:48 -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
Steve Robinson
707cd028b2
* CMakeLists.txt [win32]: Suppress warnings for POSIX functions.
2018-01-10 07:49:43 +01:00
Ewald Hew
cc2f3cdecf
[psaux] Correctly handle Flex features ( #52846 ).
...
* src/psaux/psintrp.c (cf2_interpT2CharString) <cf2_cmdVMOVETO,
cf2_cmdHMOVETO>: Do not move if doing Flex.
2018-01-10 13:28:36 +08:00
Alexei Podtelezhnikov
3f96c0bcc1
* builds/windows/vc2010/freetype.sln: Synchronize with the project.
2018-01-09 22:22:19 -05:00