Commit Graph

296 Commits

Author SHA1 Message Date
Behdad Esfahbod f730b5d1e2 0.9.20 2013-08-29 16:17:07 -04:00
Behdad Esfahbod 79d754efee Fix build 2013-08-28 13:43:35 -04:00
Behdad Esfahbod 71ef22b04d Turn hb-gobject, and introspection off by default
Also enable bootstrapping without them.
2013-08-28 12:52:55 -04:00
Behdad Esfahbod 71439a8c7a [gobject] Flesh out hb-gobject
Move it to new harfbuzz-gobject library.  Implement enums and
boxed types for object-types.  Still have to do boxed types for
value types.
2013-08-28 12:38:37 -04:00
Behdad Esfahbod 23027f7611 [introspection] Enable gobject-introspection again 2013-08-28 12:38:37 -04:00
Anthony Carrico f7c72b42ef [gtk-doc] Initial setup
Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
harfbuzz/docs/reference/html/index.html.
2013-08-26 17:32:30 -04:00
Behdad Esfahbod 8ac2e88def [uniscribe] Use unique font name
When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used.  Which is problematic for us.  As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.

Patch from Jonathan Kew.
2013-07-21 17:17:44 -04:00
Behdad Esfahbod 2b78d67e9f 0.9.19 2013-07-16 16:06:27 -04:00
Behdad Esfahbod 570bcccd3f Fix PKG_CHECK_MODULES usage
Oops.

Bug 65246 - Fix build without graphite2
2013-06-10 13:57:25 -04:00
Behdad Esfahbod 270cfd7a9c Fix PKG_CHECK_MODULES usage
Bug 65246 - Fix build without graphite2

If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't
find the libraries.  We handle that ourselves so we don't want the
macro to abort.
2013-06-06 18:57:15 -04:00
Behdad Esfahbod 4014aa4e53 0.9.18 2013-05-28 17:28:59 -04:00
Behdad Esfahbod 22ce096174 Generate harfbuzz-icu.pc
Currently it only works with ICU that has .pc files.  I'll
wait till someone complains before fixing it for icu-config
systems.
2013-05-28 17:18:30 -04:00
Behdad Esfahbod 2a17f9568d Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
Fallback to older API if OpenType variants are not available.
2013-05-28 13:13:46 -04:00
Behdad Esfahbod f8087ffbad Add --with-cairo 2013-05-27 19:44:26 -04:00
Behdad Esfahbod 82eddfe5d6 Add --with-freetype
Defaults to auto.
2013-05-27 19:33:36 -04:00
Behdad Esfahbod 5e25eb77a4 Default glib to auto again 2013-05-27 19:30:48 -04:00
Behdad Esfahbod eb63e786f3 Add --with-coretext
Defaults to no.
2013-05-27 19:29:09 -04:00
Behdad Esfahbod ab2af17bc6 Add --with-uniscribe
Defaults to no.
2013-05-27 19:27:43 -04:00
Behdad Esfahbod 58db2c2542 Disable UCDN if glib is available
We only want UCDN if we don't have any other Unicode provider.
I'm going to remove ICU from the list of default Unicode providers
as part of moving hb-icu into its own library.  As such, the only
providers will be UCDN and glib.
2013-05-27 19:10:33 -04:00
Behdad Esfahbod ca65326cbd Minor 2013-05-27 19:09:50 -04:00
Behdad Esfahbod 7ae14973ec Disable icu_le shaper
Will add a way to enable it later.
2013-05-27 19:06:50 -04:00
Behdad Esfahbod 7e6ebf7623 Remove icu-config fallback for icu_le shaper
Bug 64878 - compile error with ICU but not ICU
2013-05-27 19:06:03 -04:00
Behdad Esfahbod 932b747147 Bug 65053 - Add configure option to enable/disable ICU support 2013-05-27 19:04:40 -04:00
Behdad Esfahbod cf2c1c7eb8 Disable hb-old shaper
Will add proper way to enable it later.
2013-05-27 18:56:05 -04:00
Behdad Esfahbod 5a78d23f25 Bug 65054 - Add configure option to enable/disable Graphite2
Add --with-graphite2.  Defaults to off.
2013-05-27 18:56:02 -04:00
Behdad Esfahbod f1b02f4f3c 0.9.17 2013-05-20 09:23:58 -04:00
Behdad Esfahbod 00b93f6610 Fix icu linking by requesting the library searchpath from icu-config
This is not ideal as we don't like -L/usr/lib in our linker line.
But this is only relevant to environments that don't have pkgconfig
files for ICU...

https://github.com/behdad/harfbuzz/pull/2
2013-04-29 13:48:49 -04:00
Behdad Esfahbod 03adf38b22 Make both old autoconf and new automake happy
Sigh..

Bug 64039 - undefined macro AM_PROG_AR
2013-04-29 13:46:19 -04:00
Behdad Esfahbod a408d2375a 0.9.16 2013-04-19 16:32:06 -04:00
Behdad Esfahbod 22e4745615 0.9.15 2013-04-05 18:02:43 -04:00
Behdad Esfahbod 0a2b2a505b Remove gthread leftovers
We don't use gthread anymore, remove leftovers.
2013-03-21 16:26:39 -04:00
Behdad Esfahbod b93de1ea08 Minor 2013-03-21 16:25:20 -04:00
Behdad Esfahbod f872a17462 0.9.14 2013-03-21 13:38:06 -04:00
Behdad Esfahbod 8226fb56f1 Allow disabling ICU by using a fake icu-config script 2013-03-19 05:22:27 -04:00
Behdad Esfahbod 14cfab52da Add build system fallback to icu-config
Ubuntu doesn't (or didn't until recently?) ship icu pkg-config
files.  That's quite unfortunate.  Work around it.

Bug 57608 - ICU Detection fallback for non-pkgconfig systems
2013-03-11 19:53:44 -04:00
Behdad Esfahbod a8ac1d33c7 [build] Add AM_PROG_AR
Newer automake / libtools warns otherwise.
2013-03-06 20:07:01 -05:00
Behdad Esfahbod 05686b5f69 0.9.13 2013-02-25 18:19:20 -05:00
Behdad Esfahbod e2aab4b5db Improve checks for setmode()
As reported by Jonathan, OS X has setmode() that is something other
than what setmode() is on Win32.  So, limit invocation to Windows
platforms only.
2013-02-12 15:35:32 -05:00
Behdad Esfahbod 52d66c26a2 Add color-tests automake option 2013-02-04 23:31:24 -05:00
Behdad Esfahbod bc76449f51 Use setmode() instead of _setmode()
Looks like Cygwin / MSVC declare it that way, and it still works on
MinGW32 cross.
2013-01-31 18:18:05 -05:00
Behdad Esfahbod 09b5393874 0.9.12 2013-01-18 17:10:47 -06:00
Behdad Esfahbod e78463211e Fix linking with non-gcc compilers 2013-01-14 00:27:21 -06:00
Behdad Esfahbod cf81fb3624 0.9.11 2013-01-10 09:06:34 -06:00
Behdad Esfahbod 2dcb333f52 Add atomic ops for Solaris
Based on fontconfig patch from Raimund Steger.
2013-01-10 01:18:10 -06:00
Behdad Esfahbod e5dbf39900 Bug 58638 - Building fails with ICU due to not passing required flags 2013-01-07 17:34:24 -06:00
Behdad Esfahbod 34e6c3e3e4 0.9.10 2013-01-03 00:14:24 -06:00
Behdad Esfahbod d16ddbcbbe Add build confirmation notice to configure 2012-12-20 01:02:36 -05:00
Behdad Esfahbod 5e7e52ddf2 [uniscribe] Enable Uniscribe backend only if it has ScriptShapeOpenType()
Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
2012-12-10 17:44:22 -05:00
John Ralls c48a04e5ea [coretext] Better test for CoreText
Instead of checking for ApplicationServices.h, which is present in all
versions of MacOSX, check for CTFontRef, a CoreText basic type.
2012-12-10 16:24:24 -05:00
Behdad Esfahbod c6408a1009 0.9.9 2012-12-05 17:36:52 -05:00
Behdad Esfahbod a52f51b216 0.9.8 2012-12-04 15:43:38 -05:00
Behdad Esfahbod 4c89635765 0.9.7 2012-11-21 01:20:56 -05:00
Behdad Esfahbod da43a92b04 0.9.6 2012-11-13 13:48:26 -08:00
Behdad Esfahbod 13c0584729 0.9.5 2012-10-14 18:37:09 -05:00
Behdad Esfahbod 3f33f0d1f2 Import UCDN into source tree
https://github.com/grigorig/ucdn
2012-10-02 16:23:29 -04:00
Behdad Esfahbod 0e292eb2a2 Remove Glib thread-safety support
Now that we have pthread detection in configure, we don't need Glib
anymore.  Glib will only be a Unicode data provider.
2012-10-02 15:09:38 -04:00
Behdad Esfahbod 66efe89648 Check for pthreads 2012-10-02 14:55:32 -04:00
Behdad Esfahbod c7afac0aa6 Add AC_CONFIG_MACRODIR 2012-10-02 14:44:47 -04:00
Behdad Esfahbod f7e81ce0b8 0.9.4 2012-09-04 15:32:37 -04:00
Behdad Esfahbod ae4d4e1de6 Bug 53815 - CoreText backend doesn't link 2012-08-26 14:27:44 -04:00
Behdad Esfahbod 2f7586c622 [icu-le] Implement icu layout engine shaper 2012-08-24 00:00:33 -04:00
Behdad Esfahbod 7d242364ea [icu-le] Start adding a icu-layout-engine backend
Import PortableFontInstance and add shaper stub.
2012-08-24 00:00:29 -04:00
Behdad Esfahbod 7fe00d15da Release 0.9.3 2012-08-18 13:59:46 -04:00
Behdad Esfahbod b161bfc4f6 [configure] Cleanup check for ICU
Check for upstream-provided 'icu-uc' pkgconfig package.
2012-08-16 08:09:44 -04:00
Behdad Esfahbod b7a4d37d0b minor 2012-08-11 21:32:23 -04:00
Behdad Esfahbod e297ee4acd Bump version to 0.9.2
A *real* release this time, with NEWS, ChangeLog, etc.
2012-08-10 14:50:05 -04:00
Behdad Esfahbod 6efe1200b9 Bump version to 0.9.1 2012-08-10 13:49:32 -04:00
Behdad Esfahbod 560d68af81 Use a export-file for Windows builds
Apparently even that doesn't make check-internal-symbols.sh happy with
mingw32.  Going to disable that for DLLs again, but hopefully the
export-file is doing *something*.
2012-08-08 17:16:01 -04:00
Behdad Esfahbod e3320ecc1b Fix compiler warnings 2012-08-06 11:44:42 -07:00
Behdad Esfahbod 8fe4c7405b [hb-old] Add HarfBuzz.old shaper
Choose using shaper name "old".
2012-07-25 11:11:22 -04:00
Behdad Esfahbod 1512a73575 [hb-old] Start adding HarfBuzz-old as a new backend 2012-07-25 11:11:16 -04:00
Jonathan Kew aa6d849838 [CoreText] Add basic Core Text backend for comparison with our native shaping
Does not attempt to handle clusters in a Uniscribe- or HarfBuzz-compatible way;
just returns the original string indexes that CT maintains. These may even be
out-of-order in the case of reordrant glyphs.
2012-07-24 15:52:32 -04:00
Behdad Esfahbod 11c4ad439e Add -Wcast-align 2012-07-13 11:29:31 -04:00
Behdad Esfahbod ec5f5f0f8a Don't export inline methods 2012-07-13 10:00:42 -04:00
Behdad Esfahbod 12f5c0a222 Fix check for Intel atomic ops 2012-06-26 11:16:13 -04:00
Behdad Esfahbod 8c0ea7bcb4 Disable introspection again
Until I figure out the build issues.  Sigh...
2012-06-24 13:20:56 -04:00
Behdad Esfahbod 8c5f5e6f5e Minor 2012-06-17 14:58:59 -04:00
Behdad Esfahbod 84d781e54c Flesh out gobject-introspection stuff a bit 2012-06-16 15:21:41 -04:00
Behdad Esfahbod 4282d2f377 Enabled ICU again 2012-06-06 03:42:36 -04:00
Behdad Esfahbod a00a63b5ef Add macros to check that types are POD 2012-06-06 03:07:01 -04:00
Behdad Esfahbod 04bc1eebe7 Add configure tests for Intel atomic intrinsics 2012-06-05 20:16:56 -04:00
Behdad Esfahbod 68c75b4697 Shuffle 2012-06-05 20:15:30 -04:00
Behdad Esfahbod cdafe3a7d8 Add gcc intrinsics implementations for atomic and mutex 2012-06-05 16:40:23 -04:00
Behdad Esfahbod 7037291aac Check for atexit() 2012-06-05 14:06:04 -04:00
Behdad Esfahbod c87b317f0e [util] Add hb-ot-shape-closure tool
Computes all the glyphs that may be generated given a font and
set of Unicode characters.

The order of the Unicode characters is irrelevant.

Sample output:

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i

behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina

behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136
2012-05-15 23:53:18 -04:00
Behdad Esfahbod 50f630c17c Remove ioctl checks
Ended up not using terminal size after all.
2012-05-13 13:03:44 +02:00
Behdad Esfahbod 52e7b1424a [util] Make hb-view print out Unicode art if stdout is a terminal 2012-05-13 07:55:00 +02:00
Behdad Esfahbod f7e8dcfd4f [Indic] Unbreak Devanagari
And this, concludes the HarfBuzz Massala Hackfest.

I like to specially thank Jonathan Kew for doing all the decription and
letting me get commit points.
2012-05-11 22:01:33 +02:00
Behdad Esfahbod 6bd9b479b8 Hide backend-specific shape functions
Also remove shaper_options argument to hb_shape_full().  That was
unused and for "future".  Let it go.

More shaper API coming in preparation for plan/planned API.
2012-04-12 14:53:53 -04:00
Behdad Esfahbod c62e41b6aa Minor 2012-01-27 02:20:58 -05:00
Behdad Esfahbod d4de562adf Start adding new shaping test suite together 2012-01-19 15:21:04 -05:00
Behdad Esfahbod 4d6dafd47f Rename test/ to test/api/ 2012-01-19 14:52:02 -05:00
Behdad Esfahbod 3d0ddd1280 Require glib >= 2.16 for the gobject option 2012-01-15 15:55:52 -05:00
Behdad Esfahbod 95ab82a992 Disable gtk-doc macro
We don't have any docs yet.
2012-01-15 14:56:56 -05:00
Behdad Esfahbod 880c1f0e4e Rewrite ICU detection code with in-house macros
At least works for cross-compiling now...
2011-09-19 23:10:22 -04:00
Behdad Esfahbod 8b8b19056d [util] Add hb-shape utility
Like hb-view, but prints out buffer contents.

The output format is kinda cryptic.  Suggestions welcome.
2011-09-19 16:41:17 -04:00
Behdad Esfahbod 0fe2960197 Fix Linux build when io.h is available
Bug 40953 - fail compile git: make[2]: *** [hb_view-options.o] Error 1
2011-09-17 09:59:58 -04:00
Behdad Esfahbod 4451168e5d Fix binary stdin/stdout io in Windows
Make --font-file accept "-" to mean stdin, and have it work
in Windows too!
2011-09-16 00:41:08 -04:00
Behdad Esfahbod b9b10ad78b [util] Refactor hb-view completely
Now we can use the same code to do other utils...
2011-09-15 00:30:41 -04:00
Behdad Esfahbod 46377396ac [configure] Fix graphite bits 2011-08-24 02:12:05 +02:00
Behdad Esfahbod 1f49cf32c9 Add graphite2 integration from Martin Hosken
To be modified, a lot.
2011-08-24 01:32:41 +02:00
Behdad Esfahbod d75333f166 Add gobject enum support, but disabled for now
need to figure out the naming.  The generated code doesn't have the
right name.
2011-08-19 19:59:24 +02:00
Behdad Esfahbod 0b7e4d9f20 [ft] FT_Get_Advance() for advance-width callbacks
Using graphite2's comparerenderer suggests that this makes hb-ft 15
times faster.  No caching layer needed anymore.
2011-08-15 20:41:59 +02:00
Behdad Esfahbod c214cff55c Start adding gobject-introspection support 2011-08-14 15:17:51 +02:00
Behdad Esfahbod 511a136f0c Move hb-view into util/ 2011-08-09 15:03:00 +02:00
Behdad Esfahbod 02aeca985b [API] Changes to main shape API
hb_shape() now accepts a shaper_options and a shaper_list argument.
Both can be set to NULL to emulate previous API.  And in most situations
they are expected to be set to NULL.

hb_shape() also returns a boolean for now.  If shaper_list is NULL, the
return value can be ignored.

shaper_options is ignored for now, but otherwise it should be a
NULL-terminated list of strings.

shaper_list is a NULL-terminated list of strings.  Currently recognized
strings are "ot" for native OpenType Layout implementation, "uniscribe"
for the Uniscribe backend, and "fallback" for the non-complex backend
(that will be implemented shortly).  The fallback backend never fails.

The env var HB_SHAPER_LIST is also parsed and honored.  It's a
colon-separated list of shaper names.  The fallback shaper is invoked if
none of the env-listed shapers succeed.

New API hb_buffer_guess_properties() added.
2011-08-04 22:38:09 -04:00
Behdad Esfahbod ecd3b6e4ad More build fixes 2011-08-04 01:57:40 -04:00
Behdad Esfahbod ddbf4edc5d Minor 2011-08-04 01:38:37 -04:00
Behdad Esfahbod 0fbb2dc831 Add draft experimental Uniscribe backend
Not complete yet, font selection doesn't work.  But hey it shapes!

This is not supposed to be a production backend, more like a testing
backend.
2011-08-03 19:55:04 -04:00
Behdad Esfahbod 0d7d4824b2 Minor 2011-08-03 17:39:24 -04:00
Behdad Esfahbod e9c2341b13 Don't use icu-config when cross-compiling 2011-08-02 11:40:44 -04:00
Behdad Esfahbod 390dab49b6 Unbreak icu-config results a bit 2011-08-02 11:29:55 -04:00
Behdad Esfahbod b301478a69 Bug 39763 - autogen.sh should check pkg-config availability
(and revert change have_icu change I mistakenly pushed out)
2011-08-02 11:25:13 -04:00
Behdad Esfahbod f60271c0c2 Add mingw32 support
With these changes, on Ubuntu I can do:

./configure --host=i586-mingw32msvc  && make
2011-08-02 10:00:55 -04:00
Behdad Esfahbod 595dc63eee Bump version to 0.7.0 to open up for development 2011-05-27 04:14:42 -04:00
Behdad Esfahbod f245576042 Release 0.6.0. First official tarball release!
There are no API guarantees just yet, but I *expect* that no
incompatible API changes to happen before 1.0.0.

Update NEWS.
2011-05-27 03:48:27 -04:00
Behdad Esfahbod 329c15714b Add libtool versioning
The versioning is automatic.  For now, soname-major is 0.  With
the 1.0.0 release it will jump to 1 and stay there forever.
2011-05-25 16:07:07 -04:00
Behdad Esfahbod 5b21eff8c4 Update README, etc 2011-05-25 15:40:49 -04:00
Behdad Esfahbod 5be7d047f6 Check for mmap()
Apparently there exist systems with mprotect(), but not mmap()?
2011-05-17 15:56:31 -04:00
Behdad Esfahbod 0c2ec1d78b [test] Always initialize gthread such that our mutex() stuff is tested
Now the test/object test deadlocks as expected.  Fix coming.
2011-05-10 19:11:52 -04:00
Behdad Esfahbod 71cef14ac3 Add -Bsymbolic-functions to linker flags 2011-05-06 19:30:59 -04:00
Behdad Esfahbod c78f448558 [API] Add version macros and functions
Step version up to 0.5.0.

Also, fix to pass "make distcheck"
2011-05-05 21:31:04 -04:00
Behdad Esfahbod 9ff819f657 Add disable-static libtool flag
No one who builds harfbuzz static uses the autotools build system to do it.
2011-05-05 19:47:59 -04:00
Behdad Esfahbod 7ca7571ef9 Remove win32-dll libtool flag
Since we're not win32-dll clean the way libtool docs define it.
2011-05-05 19:47:12 -04:00
Behdad Esfahbod 174e3fe89b Add AC_CANONICAL_HOST 2011-05-05 19:37:53 -04:00
Behdad Esfahbod e6a5b88c01 Fix build with older glib 2011-05-05 16:24:42 -04:00
Behdad Esfahbod 5b7f38979f GNOME Bug 612402 - (hb-arm) HarfBuzz compilation fix for arm
With gcc on arm, request 8-bit structure alignment.
2011-04-27 15:10:12 -04:00
Behdad Esfahbod bbdeff5964 Add test directory 2011-04-07 16:05:07 -04:00
Behdad Esfahbod 5353bf439c Add initial hb-view tool
Currently doesn't handle script or direction.
2011-02-22 18:06:19 -05:00
Behdad Esfahbod a07874300a Don't use the m4/ dir
We just require people to have libtool, pkg-config, etc installed
when running autogen.sh
2011-01-10 02:27:49 -05:00
Javier Jardón 2abe1264a5 Bug 31174 - Update autotools configuration 2011-01-09 22:18:53 -05:00
Behdad Esfahbod 76691f0240 Fix ICU detection 2011-01-06 14:16:59 -05:00
Behdad Esfahbod 756f794a1f Remove Graphite backend
It was unmaintained and the code has to be replaced to use the new
grphite-ng code base.
2010-12-26 20:52:40 -05:00
Behdad Esfahbod d1f1707adc Bug 31965 - some GNU/Linux distributions lack icu.pc but have icu-config
Patch from suzuki toshiya.
2010-11-30 00:57:15 -05:00
Behdad Esfahbod 502f4cba3e Divide get_metrics into get_advance and get_extents
Graphite module not updated.
Bump version to 0.3.
2010-10-27 01:13:56 -04:00
Behdad Esfahbod 3703f88b74 Step the version up to 0.2 now that Arabic shaper is in 2010-10-12 18:34:20 -04:00
Behdad Esfahbod 0109816b50 Update build system 2010-10-05 18:36:45 -04:00
Behdad Esfahbod 305ba86715 Import Graphite shaping backend by Martin Hosken 2010-05-21 14:15:39 +01:00
Behdad Esfahbod 690b919461 Remove use of flexible arrays
Also remove wrong ASSERT_SIZE that would trigger only when not using
flexible arrays (which was the case on win32, but not with gcc).
2010-04-25 22:52:22 -04:00
Behdad Esfahbod cd11a98fa1 Fix compile with older FreeType 2009-12-20 23:05:02 +01:00
Behdad Esfahbod c65b26acf2 Use autoconf FLEXIBLE_ARRAY_MEMBER when available 2009-11-18 11:27:33 -05:00
Behdad Esfahbod d94647e2cd Add ICU glue 2009-11-03 16:35:10 -05:00
Behdad Esfahbod eb4ebda2d1 [configure] Fix check for FreeType 2009-11-03 14:09:32 -05:00
Behdad Esfahbod f94cf6b969 Another try at build without glib 2009-11-02 18:55:19 -05:00
Behdad Esfahbod a6451aa626 We don't really use gthread directly 2009-11-02 18:35:12 -05:00
Behdad Esfahbod 29aa400183 Add build system 2009-11-02 16:34:59 -05:00