<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch 1524
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/cf94d330327bcd64488082e65b48708bb88dae0d">https://github.com/macports/macports-ports/commit/cf94d330327bcd64488082e65b48708bb88dae0d</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit cf94d330327bcd64488082e65b48708bb88dae0d
</span>Author: Sean Farley <sean@macports.org>
AuthorDate: Mon Apr 2 22:31:25 2018 -0700
<span style='display:block; white-space:pre;color:#404040;'> harfbuzz: Build with CoreText
</span>---
graphics/harfbuzz/Portfile | 13 +++++--
graphics/harfbuzz/files/coretext.patch | 62 ++++++++++++++++++++++++++++++++++
2 files changed, 73 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/harfbuzz/Portfile b/graphics/harfbuzz/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 828089d..9c779fa 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/graphics/harfbuzz/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/harfbuzz/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,7 +24,8 @@ checksums rmd160 bfd237407c3b8eea5a59f1c6bbab4a467549c767 \
</span>
depends_build port:pkgconfig
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append 32bit.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append 32bit.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ coretext.patch
</span>
# Remove this on an update to >1.7.6 as https://github.com/harfbuzz/harfbuzz/commit/2a2360
compiler.blacklist *llvm-gcc-4.2
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,7 +36,7 @@ configure.args --disable-silent-rules \
</span> ac_cv_prog_AWK=/usr/bin/awk
if {${name} eq ${subport}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ revision 1
</span>
depends_lib-append \
path:lib/pkgconfig/cairo.pc:cairo \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,6 +68,14 @@ if {${name} eq ${subport}} {
</span> ${destroot}${docdir}
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {${os.platform} eq "darwin" && ${os.major} >= 9} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --with-coretext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --without-coretext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${os.platform} eq "darwin" && ${os.major} < 10} {
depends_test-append \
port:python27
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/graphics/harfbuzz/files/coretext.patch b/graphics/harfbuzz/files/coretext.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d257ef8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/graphics/harfbuzz/files/coretext.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,62 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix build with CoreText on OS X 10.7 and earlier.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/harfbuzz/harfbuzz/pull/952
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/hb-coretext.cc.orig 2018-02-18 13:36:12.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/hb-coretext.cc 2018-04-04 02:57:53.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -168,6 +168,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSText")) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFStringHasPrefix (cg_postscript_name, CFSTR (".SFNSDisplay")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1080
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define kCTFontUIFontSystem kCTFontSystemFontType
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# define kCTFontUIFontEmphasizedSystem kCTFontEmphasizedSystemFontType
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CTFontUIFontType font_type = kCTFontUIFontSystem;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (CFStringHasSuffix (cg_postscript_name, CFSTR ("-Bold")))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ font_type = kCTFontUIFontEmphasizedSystem;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -206,7 +210,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return ct_font;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFURLRef original_url = (CFURLRef)CTFontCopyAttribute(ct_font, kCTFontURLAttribute);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CFURLRef original_url = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ATSFontRef atsFont;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ FSRef fsref;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ OSStatus status;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ atsFont = CTFontGetPlatformFont (ct_font, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ status = ATSFontGetFileReference (atsFont, &fsref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (status == noErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ original_url = CFURLCreateFromFSRef (NULL, &fsref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ original_url = (CFURLRef) CTFontCopyAttribute (ct_font, kCTFontURLAttribute);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Create font copy with cascade list that has LastResort first; this speeds up CoreText
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * font fallback which we don't need anyway. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -225,7 +240,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * system locations that we cannot access from the sandboxed renderer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * process in Blink. This can be detected by the new file URL location
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ * that the newly found font points to. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- CFURLRef new_url = (CFURLRef) CTFontCopyAttribute (new_ct_font, kCTFontURLAttribute);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ CFURLRef new_url = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ atsFont = CTFontGetPlatformFont (new_ct_font, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ status = ATSFontGetFileReference (atsFont, &fsref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (status == noErr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ new_url = CFURLCreateFromFSRef (NULL, &fsref);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ new_url = (CFURLRef) CTFontCopyAttribute (new_ct_font, kCTFontURLAttribute);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // Keep reconfigured font if URL cannot be retrieved (seems to be the case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // on Mac OS 10.12 Sierra), speculative fix for crbug.com/625606
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (!original_url || !new_url || CFEqual (original_url, new_url)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -944,6 +967,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int level = HB_DIRECTION_IS_FORWARD (buffer->props.direction) ? 0 : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFNumberRef level_number = CFNumberCreate (kCFAllocatorDefault, kCFNumberIntType, &level);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1060
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ extern const CFStringRef kCTTypesetterOptionForcedEmbeddingLevel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CFDictionaryRef options = CFDictionaryCreate (kCFAllocatorDefault,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (const void **) &kCTTypesetterOptionForcedEmbeddingLevel,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (const void **) &level_number,
</span></pre><pre style='margin:0'>
</pre>