[HB] Remove glib dependency
authorBehdad Esfahbod <behdad@behdad.org>
Sun, 2 Aug 2009 01:06:11 +0000 (21:06 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 2 Nov 2009 19:40:25 +0000 (14:40 -0500)
src/Makefile.am
src/hb-buffer.c
src/hb-private.h
src/main.cc

index f941046..5998fcd 100644 (file)
@@ -2,10 +2,6 @@
 
 NULL =
 
-INCLUDES =                                     \
-       -I $(srcdir)                            \
-       $(FREETYPE_CFLAGS)                      \
-       $(GLIB_CFLAGS)
 CXX = gcc -g -O2 -fno-rtti -fno-exceptions -Wabi -Wpadded -Wcast-align
 
 noinst_LTLIBRARIES = libharfbuzz-1.la
@@ -37,11 +33,12 @@ HBHEADERS = \
        $(NULL)
 
 libharfbuzz_1_la_SOURCES = $(HBSOURCES) $(HBHEADERS)
-libharfbuzz_1_la_LIBADD = $(FREETYPE_LIBS)
+libharfbuzz_1_la_LIBADD =
 
 noinst_PROGRAMS = main
 
 main_SOURCES = main.cc
+main_CXXFLAGS = $(GLIB_CFLAGS)
 main_LDADD = $(GLIB_LIBS)
 
 EXTRA_DIST = README COPYING
index f596c09..89887fc 100644 (file)
@@ -269,7 +269,7 @@ _hb_buffer_add_output_glyphs (hb_buffer_t *buffer,
   for (i = 0; i < num_out; i++)
   {
     hb_glyph_info_t *info = &buffer->out_string[buffer->out_pos + i];
-    info->gindex = hb_be_uint16_t (glyph_data_be[i]);
+    info->gindex = hb_be_uint16 (glyph_data_be[i]);
     info->properties = properties;
     info->cluster = cluster;
     info->component = component;
index 2190b78..e04930b 100644 (file)
 
 #include "hb-common.h"
 
-#include <glib.h>
-
-/* Macros to convert to/from BigEndian */
-#define hb_be_uint8
-#define hb_be_int8
-#define hb_be_uint16   GUINT16_TO_BE
-#define hb_be_int16    GINT16_TO_BE
-#define hb_be_uint32   GUINT32_TO_BE
-#define hb_be_int32    GINT32_TO_BE
-#define hb_be_uint64   GUINT64_TO_BE
-#define hb_be_int64    GINT64_TO_BE
-
 /* Basics */
 
 #undef MIN
@@ -150,6 +138,24 @@ _hb_popcount32 (uint32_t mask)
 #endif
 }
 
+static HB_GNUC_UNUSED inline uint16_t
+_hb_be_uint16 (uint16_t v)
+{
+  return (v>>8) + (v<<8);
+}
+static HB_GNUC_UNUSED inline uint32_t
+_hb_be_uint32 (uint32_t v)
+{
+  return _hb_be_uint16 (v>>16) + (_hb_be_uint16 (v) <<16);
+}
+
+/* Macros to convert to/from BigEndian */
+#define hb_be_uint8
+#define hb_be_int8
+#define hb_be_uint16(v)        _hb_be_uint16 (v)
+#define hb_be_int16(v) ((int16_t) hb_be_uint16 (v))
+#define hb_be_uint32(v)        _hb_be_uint32 (v)
+#define hb_be_int32(v) ((int32_t) hb_be_uint32 (v))
 
 
 #include "hb-object-private.h"
index 1347cdf..775251f 100644 (file)
@@ -29,6 +29,7 @@
 #include "hb-ot-layout-gdef-private.h"
 #include "hb-ot-layout-gsub-private.h"
 
+#include <glib.h>
 #include <stdlib.h>
 #include <stdio.h>