[HarfBuzz] harfbuzz: Branch 'master' - 6 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Fri Mar 24 17:25:23 UTC 2017
appveyor.yml | 2 +-
src/hb-common.cc | 2 +-
src/hb-ot-layout.cc | 8 ++++++++
win32/Makefile.vc | 15 +++++++++++++++
win32/README.txt | 6 +++---
win32/config-msvc.mak | 28 +++++++++++++++-------------
win32/config.h.win32.in | 2 +-
win32/info-msvc.mak | 43 +++++++++++++++++++++++++------------------
8 files changed, 69 insertions(+), 37 deletions(-)
New commits:
commit edcf6344bc62af9ea726a633468c9243e127fa13
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Fri Mar 24 10:24:52 2017 -0700
Blacklist more versions of Padauk
Patch from Phil Race.
diff --git a/src/hb-ot-layout.cc b/src/hb-ot-layout.cc
index e78e1524..f8a04a95 100644
--- a/src/hb-ot-layout.cc
+++ b/src/hb-ot-layout.cc
@@ -125,6 +125,14 @@ _hb_ot_layout_create (hb_face_t *face)
/* 2c0c90c6f6087ffbfea76589c93113a9cbb0e75f cantarell-fonts-0.0.21/otf/Cantarell-Bold.otf */
/* 55461f5b853c6da88069ffcdf7f4dd3f8d7e3e6b cantarell-fonts-0.0.21/otf/Cantarell-Bold-Oblique.otf */
|| (188 == gdef_len && 3426 == gpos_len && 264 == gsub_len)
+ /* d125afa82a77a6475ac0e74e7c207914af84b37a padauk-2.80/Padauk.ttf RHEL 7.2 */
+ || (1058 == gdef_len && 11818 == gpos_len && 47032 == gsub_len)
+ /* 0f7b80437227b90a577cc078c0216160ae61b031 padauk-2.80/Padauk-Bold.ttf RHEL 7.2*/
+ || (1046 == gdef_len && 12600 == gpos_len && 47030 == gsub_len)
+ /* d3dde9aa0a6b7f8f6a89ef1002e9aaa11b882290 padauk-2.80/Padauk.ttf Ubuntu 16.04 */
+ || (1058 == gdef_len && 16770 == gpos_len && 71796 == gsub_len)
+ /* 5f3c98ccccae8a953be2d122c1b3a77fd805093f padauk-2.80/Padauk-Bold.ttf Ubuntu 16.04 */
+ || (1046 == gdef_len && 17862 == gpos_len && 71790 == gsub_len)
/* 6c93b63b64e8b2c93f5e824e78caca555dc887c7 padauk-2.80/Padauk-book.ttf */
|| (1046 == gdef_len && 17112 == gpos_len && 71788 == gsub_len)
/* d89b1664058359b8ec82e35d3531931125991fb9 padauk-2.80/Padauk-bookbold.ttf */
commit e693ba77980d5ded65bf773d48b6b58274933fb7
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Thu Mar 23 00:35:36 2017 +0200
[ci] Fix msys2 build on AppVeyor
For whatever reason the env variables need to be the Windows way or they
end up being empty.
diff --git a/appveyor.yml b/appveyor.yml
index 67f61149..a2867ca4 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -46,7 +46,7 @@ build_script:
- 'if "%compiler%"=="msvc" nmake /f Makefile.vc CFG=%CFG% UNISCRIBE=1 DIRECTWRITE=1 install' # FREETYPE=1 install'
- 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "pacman --noconfirm -S mingw-w64-$MSYS2_ARCH-{freetype,cairo,icu,gettext,gobject-introspection,gcc,gcc-libs,glib2,graphite2,pkg-config}"'
- - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; PATH=$PATH:/mingw64/bin:/mingw32/bin; ./autogen.sh --with-uniscribe --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 --build=$MINGW_CHOST --host=$MINGW_CHOST --prefix=$MINGW_PREFIX; make; make check"'
+ - 'if "%compiler%"=="msys2" C:\msys64\usr\bin\bash -lc "cd $APPVEYOR_BUILD_FOLDER; PATH=$PATH:/mingw64/bin:/mingw32/bin; ./autogen.sh --with-uniscribe --with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2 --build=%MINGW_CHOST% --host=%MINGW_CHOST% --prefix=%MINGW_PREFIX%; make; make check"'
# disable automatic tests
test: off
commit 91570a1eeb1eca425372e203656369f39ede5c61
Author: Khaled Hosny <khaledhosny at eglug.org>
Date: Wed Mar 22 23:07:15 2017 +0200
Just always use strtod here
diff --git a/src/hb-common.cc b/src/hb-common.cc
index 4c1a9a8d..16657303 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -667,11 +667,7 @@ parse_float (const char **pp, const char *end, float *pv)
float v;
errno = 0;
-#if defined (_MSC_VER) && (_MSC_VER < 1800)
v = strtod (p, &pend);
-#else
- v = strtof (p, &pend);
-#endif
if (errno || p == pend)
return false;
commit 539571c1a9cb5d443d029247874af37fed75432f
Author: Chun-wei Fan <fanchunwei at src.gnome.org>
Date: Fri Feb 24 17:58:25 2017 +0800
src/hb-common.cc: Fix build on older Visual Studio
Visual Studio only supported strtof() from Visual Studio 2013 onwards, so
use strtod() instead to do the operation, which should do the same thing,
sans going to a double, not a float.
diff --git a/src/hb-common.cc b/src/hb-common.cc
index 64e77d43..4c1a9a8d 100644
--- a/src/hb-common.cc
+++ b/src/hb-common.cc
@@ -667,7 +667,11 @@ parse_float (const char **pp, const char *end, float *pv)
float v;
errno = 0;
+#if defined (_MSC_VER) && (_MSC_VER < 1800)
+ v = strtod (p, &pend);
+#else
v = strtof (p, &pend);
+#endif
if (errno || p == pend)
return false;
commit b90fb83ea6067802e62af9e1ea0c61c7ac79e9a9
Author: Chun-wei Fan <fanchunwei at src.gnome.org>
Date: Fri Feb 24 17:47:44 2017 +0800
Visual Studio builds: Fix Introspection when UCDN enabled
The sources in src/hb-ucdn and not included correctly into the NMake
Makefiles, as we need their explicit relative location as we pass all the
sources we used into the introspection scanner. This was not an issue
before as we excluded the UCDN sources in the build when we enabled
introspection (meaning GLib is enabled), but since we default on using
UCDN on all builds unless explicitly disabled, we need to deal with this.
This did not affect builds using UCDN without introspection due to the use
of NMake batch rules.
Fix this by creating a NMake Makefile module on-the-fly with the correct
subdir info, and using that list in there instead.
diff --git a/win32/Makefile.vc b/win32/Makefile.vc
index fdde7a7d..05778ae5 100644
--- a/win32/Makefile.vc
+++ b/win32/Makefile.vc
@@ -14,6 +14,21 @@
!include ..\src\hb-ucdn\Makefile.sources
!include ..\util\Makefile.sources
+# We need to include the sources in ..\src\hb-ucdn indirectly
+!if [call create-lists.bat header hb_ucdn_srcs.mak hb_ucdn_SRCS]
+!endif
+
+!if [for %c in ($(LIBHB_UCDN_sources)) do @call create-lists.bat file hb_ucdn_srcs.mak hb-ucdn\%c]
+!endif
+
+!if [call create-lists.bat footer hb_ucdn_srcs.mak]
+!endif
+
+!include hb_ucdn_srcs.mak
+
+!if [del /f /q hb_ucdn_srcs.mak]
+!endif
+
# Include the Makefile portion that enables features based on user input
!include config-msvc.mak
diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak
index 285ad140..dffdcb26 100644
--- a/win32/config-msvc.mak
+++ b/win32/config-msvc.mak
@@ -136,7 +136,7 @@ HB_CFLAGS = \
$(HB_CFLAGS) \
$(HB_UCDN_CFLAGS)
-HB_SOURCES = $(HB_SOURCES) $(LIBHB_UCDN_sources) $(HB_UCDN_sources)
+HB_SOURCES = $(HB_SOURCES) $(hb_ucdn_SRCS) $(HB_UCDN_sources)
!endif
# Enable GLib if desired
commit f0aa167e447e8aa818a63a4a325be57844bf0353
Author: Chun-wei Fan <fanchunwei at src.gnome.org>
Date: Thu Feb 23 13:02:49 2017 +0800
Update Visual Studio builds for UCDN usage
We now use UCDN by default, so make it so in the build files; however
don't hardcode HAVE_UCDN as one may still opt not to use it (but pass
it in as a CFLAG unless one explicitly disables UCDN by using NO_UCDN=1
on the NMake command line).
Note that we are not blocking builds where UCDN is disabled along with
GLib and ICU, as that will trigger a build error anyways which will tell
the user what needs to be done to remedy this.
diff --git a/win32/README.txt b/win32/README.txt
index af0dc15c..dc31e8b6 100644
--- a/win32/README.txt
+++ b/win32/README.txt
@@ -36,7 +36,7 @@ PREFIX: Optional. Base directory of where the third-party headers, libraries
Explanation of options, set by <option>=1:
------------------------------------------
GLIB: Enable GLib support in HarfBuzz, which also uses the GLib unicode
- callback instead of the bundled UCDN unicode callback. This requires the
+ callback if the bundled UCDN unicode callback is disabled. This requires the
GLib libraries, and is required for building all tool and test programs.
GOBJECT: Enable building the HarfBuzz-GObject DLL, and thus implies GLib
@@ -63,7 +63,7 @@ CAIRO_FT: Enable the build of the hb-view tool, which makes use of Cairo, and
GRAPHITE2: Enable the Graphite2 shaper, requires the SIL Graphite2 library.
-ICU: Enables the build of ICU Unicode functions. Requires the ICU libraries.
+ICU: Enables the build of ICU Unicode functions. Requires the ICU libraries.
UNISCRIBE: Enable Uniscribe platform shaper support.
@@ -75,4 +75,4 @@ PYTHON: Full path to the Python interpretor to be used, if it is not in %PATH%.
PERL: Full path to the PERL interpretor to be used, if it is not in %PATH%.
-LIBTOOL_DLL_NAME: Enable libtool-style DLL names.
\ No newline at end of file
+LIBTOOL_DLL_NAME: Enable libtool-style DLL names.
diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak
index 4cffaeac..285ad140 100644
--- a/win32/config-msvc.mak
+++ b/win32/config-msvc.mak
@@ -129,6 +129,16 @@ HB_HEADERS = $(HB_HEADERS) $(HB_GRAPHITE2_headers)
HB_DEP_LIBS = $(HB_DEP_LIBS) $(GRAPHITE2_LIB)
!endif
+# Always enable UCDN unless explicitly disabled
+!if "$(NO_UCDN)" != "1"
+HB_DEFINES = $(HB_DEFINES) /DHAVE_UCDN=1
+HB_CFLAGS = \
+ $(HB_CFLAGS) \
+ $(HB_UCDN_CFLAGS)
+
+HB_SOURCES = $(HB_SOURCES) $(LIBHB_UCDN_sources) $(HB_UCDN_sources)
+!endif
+
# Enable GLib if desired
!if "$(GLIB)" == "1"
HB_DEFINES = $(HB_DEFINES) /DHAVE_GLIB=1
@@ -164,16 +174,12 @@ HB_TESTS = \
$(CFG)\$(PLAT)\test-unicode.exe \
$(CFG)\$(PLAT)\test-version.exe
-!elseif "$(ICU)" == "1"
+!else
+!if "$(ICU)" == "1"
# use ICU for Unicode functions
# and define some of the macros in GLib's msvc_recommended_pragmas.h
# to reduce some unneeded build-time warnings
HB_DEFINES = $(HB_DEFINES) /DHAVE_ICU=1 /DHAVE_ICU_BUILTIN=1
-HB_CFLAGS = \
- $(HB_CFLAGS) \
- /wd4244 \
- /D_CRT_SECURE_NO_WARNINGS \
- /D_CRT_NONSTDC_NO_WARNINGS
# We don't want ICU to re-define int8_t in VS 2008, will cause build breakage
# as we define it in hb-common.h, and we ought to use the definitions there.
@@ -186,18 +192,14 @@ HB_HEADERS = $(HB_HEADERS) $(HB_ICU_headers)
HB_DEP_LIBS = $(HB_DEP_LIBS) $(HB_ICU_DEP_LIBS)
!endif
-!if "$(UCDN)" != "0"
# Define some of the macros in GLib's msvc_recommended_pragmas.h
# to reduce some unneeded build-time warnings
-HB_DEFINES = $(HB_DEFINES) /DHAVE_UCDN=1
HB_CFLAGS = \
- $(HB_CFLAGS) \
- $(HB_UCDN_CFLAGS) \
- /wd4244 \
- /D_CRT_SECURE_NO_WARNINGS \
+ $(HB_CFLAGS) \
+ /wd4244 \
+ /D_CRT_SECURE_NO_WARNINGS \
/D_CRT_NONSTDC_NO_WARNINGS
-HB_SOURCES = $(HB_SOURCES) $(LIBHB_UCDN_sources) $(HB_UCDN_sources)
!endif
!if "$(UNISCRIBE)" == "1"
diff --git a/win32/config.h.win32.in b/win32/config.h.win32.in
index d45cefb5..435c1bb2 100644
--- a/win32/config.h.win32.in
+++ b/win32/config.h.win32.in
@@ -112,7 +112,7 @@
#define HAVE_SYS_TYPES_H 1
/* Have UCDN Unicode functions */
-#define HAVE_UCDN 1
+/* #undef HAVE_UCDN */
/* Have Uniscribe library */
/* #undef HAVE_UNISCRIBE */
diff --git a/win32/info-msvc.mak b/win32/info-msvc.mak
index 3ec11d4d..9b92e031 100644
--- a/win32/info-msvc.mak
+++ b/win32/info-msvc.mak
@@ -4,6 +4,9 @@ INC_FEATURES = Fallback OT
BUILT_TOOLS =
BUILT_LIBRARIES = HarfBuzz
+!if "$(NO_UCDN)" != "1"
+UNICODE_IMPL = ucdn
+!else
!if "$(GLIB)" == "1"
UNICODE_IMPL = GLib
INC_FEATURES = $(INC_FEATURES) GLib
@@ -13,8 +16,7 @@ BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS)
!endif
!elseif "$(ICU)" == "1"
UNICODE_IMPL = ICU
-!else
-UNICODE_IMPL = ucdn
+!endif
!endif
!if "$(FREETYPE)" == "1"
@@ -79,18 +81,18 @@ help:
@echo.
@echo OPTION: Optional, may be any of the following, use OPTION=1 to enable;
@echo multiple OPTION's may be used. If no OPTION is specified, a default
- @echo HarfBuzz DLL is built with OpenType and fallback support
- @echo with a bundled Unicode implementation (UCDN).
+ @echo HarfBuzz DLL is built with OpenType and support with a bundled
+ @echo Unicode implementation (UCDN).
@echo ======
- @echo UNISCRIBE:
- @echo Enable Uniscribe support.
+ @echo.
+ @echo CAIRO_FT:
+ @echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
+ @echo Implies FreeType2 support and also requires Cairo built with FreeType2
+ @echo support; GLib2 support must also be enabled.
@echo.
@echo DIRECTWRITE:
@echo Enable DirectWrite support, requires a recent enough Windows SDK.
@echo.
- @echo GRAPHITE2:
- @echo Enable graphite2 support, requires the SIL Graphite2 library
- @echo.
@echo FREETYPE:
@echo Enable FreeType2 support, requires the FreeType2 library
@echo.
@@ -98,16 +100,19 @@ help:
@echo Enable GLib2 support, with GLib Unicode support, requires the GNOME GLib2
@echo library. Enables the build of utility programs.
@echo.
- @echo ICU:
- @echo Enable build with ICU Unicode functions, requires the International
- @echo Components for Unicode (ICU) libraries.
- @echo.
@echo GOBJECT:
@echo Enable the HarfBuzz-GObject library, also implies GLib2 support,
@echo requires the GNOME GLib2 libraries and tools, notably the glib-mkenums
@echo tool script, which will require a PERL interpreter (use
@echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH).
@echo.
+ @echo GRAPHITE2:
+ @echo Enable graphite2 support, requires the SIL Graphite2 library
+ @echo.
+ @echo ICU:
+ @echo Enable build with ICU Unicode functions, requires the International
+ @echo Components for Unicode (ICU) libraries.
+ @echo.
@echo INTROSPECTION:
@echo Enable the build of introspection files, also implies GObject/GLib2 support,
@echo requires the GNOME gobject-introspection libraries and tools. You will need
@@ -117,15 +122,17 @@ help:
@echo ^$(PATH_TO_PYTHON_INTERPRETOR) respectively, if python.exe is not already
@echo in your PATH.
@echo.
- @echo CAIRO_FT:
- @echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
- @echo Implies FreeType2 support and also requires Cairo built with FreeType2
- @echo support; GLib2 support must also be enabled.
- @echo.
@echo LIBTOOL_DLL_NAME:
@echo Use a libtool-style DLL name to mimic the DLL file naming generated by
@echo MinGW builds.
@echo.
+ @echo NO_UCDN:
+ @echo Do not use the bundled Unicode callback, which is the default. GLib or
+ @echo ICU-based unicode callback is therefore required.
+ @echo
+ @echo UNISCRIBE:
+ @echo Enable Uniscribe support.
+ @echo.
@echo Note that GLib2 support is required for all utility and test programs.
@echo ======
@echo A 'clean' target is supported to remove all generated files, intermediate
More information about the HarfBuzz
mailing list