[HarfBuzz] harfbuzz: Branch 'master' - 7 commits
Behdad Esfahbod
behdad at kemper.freedesktop.org
Tue Jul 10 10:59:36 UTC 2018
CMakeLists.txt | 3 +--
src/Makefile.am | 8 ++++----
src/gen-def.py | 12 +++++++++---
src/hb-private.hh | 18 ++++++++++++++++++
src/hb-set-private.hh | 1 +
5 files changed, 33 insertions(+), 9 deletions(-)
New commits:
commit bca83618cda7ee4f683b4685d10db9e1bef4983c
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue Jul 10 12:58:13 2018 +0200
Add fallback implementation for constexpr and alignof
diff --git a/src/hb-private.hh b/src/hb-private.hh
index 5cec8e0b..6893bfd3 100644
--- a/src/hb-private.hh
+++ b/src/hb-private.hh
@@ -84,6 +84,10 @@ extern "C" void hb_free_impl(void *ptr);
#define nullptr NULL
#endif
+#ifndef constexpr
+#define constexpr const
+#endif
+
// Static assertions
#ifndef static_assert
#define static_assert(e, msg) \
@@ -98,6 +102,20 @@ extern "C" void hb_free_impl(void *ptr);
#define thread_local
#endif
+#ifndef alignof
+#define alignof(x) _hb_alignof<x>::value;
+template <typename T>
+struct _hb_alignof
+{
+ struct s
+ {
+ char c;
+ T t;
+ };
+ static constexpr unsigned int value = offsetof (s, t);
+};
+#endif // alignof
+
#endif // __cplusplus < 201103L
#if (defined(__GNUC__) || defined(__clang__)) && defined(__OPTIMIZE__)
commit 7cb47d0f3f202843ebc7fb8801bf388bb90ba3aa
Author: Behdad Esfahbod <behdad at behdad.org>
Date: Tue Jul 10 12:51:29 2018 +0200
Minor
diff --git a/src/hb-set-private.hh b/src/hb-set-private.hh
index ccd4d8df..6841189e 100644
--- a/src/hb-set-private.hh
+++ b/src/hb-set-private.hh
@@ -405,6 +405,7 @@ struct hb_set_t
if (get_population () > larger_set->get_population ())
return false;
+ /* TODO Optimize to use pages. */
hb_codepoint_t c = INVALID;
while (next (&c))
if (!larger_set->has (c))
commit bf9e9676dda686f5b76826b4e3148f4a0b512e3c
Merge: 46d8f0d5 53f73409
Author: Cosimo Lupo <cosimo at anthrotype.com>
Date: Mon Jul 9 20:24:22 2018 +0200
Merge pull request #1091 from anthrotype/fix-gen-def-py
gen-def.py: pass headers as arguments so that msys2 can convert posix paths
commit 53f73409a91241765ae6a0cadf7600676988b6af
Author: Cosimo Lupo <cosimo at anthrotype.com>
Date: Mon Jul 9 18:54:23 2018 +0100
CMakeLists.txt: don't pass header args as single space-separated string
let python's parse command-line args as usual
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e0a4b881..e881dbd1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -834,9 +834,8 @@ set_target_properties(hb-ot-tag PROPERTIES COMPILE_FLAGS "-DMAIN")
if (UNIX OR MINGW)
if (BUILD_SHARED_LIBS)
# generate harfbuzz.def after build completion
- string(REPLACE ";" " " space_separated_headers "${project_headers}")
add_custom_command(TARGET harfbuzz POST_BUILD
- COMMAND "${PYTHON_EXECUTABLE}" ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def ${space_separated_headers}
+ COMMAND "${PYTHON_EXECUTABLE}" ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def ${project_headers}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
add_test(NAME check-static-inits.sh
commit 83d2233a5c47cf1feadcdece5bd4a6b498c6ee7a
Author: Cosimo Lupo <cosimo at anthrotype.com>
Date: Mon Jul 9 18:48:20 2018 +0100
CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ed7e56e..e0a4b881 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -836,7 +836,7 @@ if (UNIX OR MINGW)
# generate harfbuzz.def after build completion
string(REPLACE ";" " " space_separated_headers "${project_headers}")
add_custom_command(TARGET harfbuzz POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E env "headers=${space_separated_headers}" python ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def
+ COMMAND "${PYTHON_EXECUTABLE}" ${PROJECT_SOURCE_DIR}/src/gen-def.py ${PROJECT_BINARY_DIR}/harfbuzz.def ${space_separated_headers}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
add_test(NAME check-static-inits.sh
commit ccdd15655480fe35226c0b757e28d3527fe2e6af
Author: Cosimo Lupo <cosimo at anthrotype.com>
Date: Mon Jul 9 18:26:44 2018 +0100
src/Makefile.am: pass headers to gen-def.py as arguments, not env vars
diff --git a/src/Makefile.am b/src/Makefile.am
index 9d5662e4..6dfec3bf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -277,13 +277,13 @@ endif
check: $(DEF_FILES) # For check-symbols.sh
CLEANFILES += $(DEF_FILES)
harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
- $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py "$@"
+ $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
harfbuzz-subset.def: $(HB_SUBSET_headers)
- $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py "$@"
+ $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
harfbuzz-icu.def: $(HB_ICU_headers)
- $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py "$@"
+ $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
harfbuzz-gobject.def: $(HB_GOBJECT_headers)
- $(AM_V_GEN) headers="$^" $(srcdir)/gen-def.py "$@"
+ $(AM_V_GEN) $(srcdir)/gen-def.py "$@" $^
GENERATORS = \
commit e3a931ef0b86419b5e4ba17de51535393471ed9d
Author: Cosimo Lupo <cosimo at anthrotype.com>
Date: Mon Jul 9 18:11:29 2018 +0100
gen-def.py: pass headers as arguments so that msys2 can convert posix paths
When one is not using the msys2 python, the header files that are passed in as environment
variable cannot be found.
https://ci.appveyor.com/project/fonttools/ttfautohint-py/build/1.0.65/job/rkremny4jjid9nl2#L803
This is because msys2 shell and make use POSIX paths (e.g. /c/Users/clupo/...)
whereas non-msys2 python.exe uses native Windows paths (e.g. C:\Users\clupo\...).
Msys2 will automatically convert command line arguments (but not environment variables) from
POSIX to Windows paths when calling a native win32 executable, so we pass the header paths
as arguments instead of environment variables.
This way the gen-def.py script can support both mingw python running in an MSYS2 shell, and
native win32 python.
diff --git a/src/gen-def.py b/src/gen-def.py
index 9a997d65..ba39eaae 100755
--- a/src/gen-def.py
+++ b/src/gen-def.py
@@ -4,8 +4,14 @@ from __future__ import print_function, division, absolute_import
import io, os, re, sys
+if len (sys.argv) < 3:
+ sys.exit("usage: gen-def.py harfbuzz.def hb.h [hb-blob.h hb-buffer.h ...]")
+
+output_file = sys.argv[1]
+header_paths = sys.argv[2:]
+
headers_content = []
-for h in os.environ["headers"].split (' '):
+for h in header_paths:
if h.endswith (".h"):
with io.open (h, encoding='utf-8') as f: headers_content.append (f.read ())
@@ -13,7 +19,7 @@ result = """EXPORTS
%s
LIBRARY lib%s-0.dll""" % (
"\n".join (sorted (re.findall (r"^hb_\w+(?= \()", "\n".join (headers_content), re.M))),
- sys.argv[1].replace ('.def', '')
+ output_file.replace ('.def', '')
)
-with open (sys.argv[1], "w") as f: f.write (result)
+with open (output_file, "w") as f: f.write (result)
More information about the HarfBuzz
mailing list