Commit Graph

83 Commits

Author SHA1 Message Date
David Corbett
7bffb5d7ba Generate has_arabic_joining 2020-08-12 11:34:49 +04:30
Ebrahim Byagowi
ef2e380342 Revert "Remove cmake-config support of HarfBuzz"
This reverts commit 75efa89343.
2020-08-12 01:00:33 +04:30
Ebrahim Byagowi
75efa89343 Remove cmake-config support of HarfBuzz
Reverts d38f37b2 as discussed in #2316
2020-08-03 16:45:17 +04:30
Ebrahim Byagowi
11bb8aa83e
[meson] limit check-libstdc++ check to 0.55
library(..., link_language: 'c') is introduced in 0.55 but we were relying on this anyway
assuming b_asneeded being true on meson.

#2614
2020-08-02 00:47:21 +04:30
Ebrahim Byagowi
9d3fbe0588 [meson] Add darwin versions to library()
We now have,

$ otool -L src/libharfbuzz.dylib
src/libharfbuzz.dylib:
	@rpath/libharfbuzz.0.dylib (compatibility version 0.0.0, current version 0.0.0)

And with the change should we get

$ otool -L src/libharfbuzz.dylib
src/libharfbuzz.dylib:
	@rpath/libharfbuzz.0.dylib (compatibility version 20700.0.0, current version 20700.0.0)
2020-08-02 00:34:29 +04:30
Ebrahim Byagowi
c33e8006fd [fuzz] Implement failing allocator 2020-07-29 07:35:34 +04:30
Ebrahim Byagowi
60959b08e5
[meson] execute find_program('gen-ragel-artifacts.py') only once
should rename the script also
2020-07-14 20:28:06 +04:30
Ebrahim Byagowi
5c8e1bd237 [meson] Don't allow introspection on static library 2020-07-14 18:02:40 +04:30
Ebrahim Byagowi
122a2897e4 [aat] Remove lcar support
Very low use, only two distinct font files, Apple Chancery.ttf and Hoefler Text.ttc
have it so it really doesn't worth the size addition and so, but one may argue that
whole ligature caret is low use but guess we better to encourage GDEF one anyway.
2020-07-06 00:05:36 +04:30
Ebrahim Byagowi
a3b9b94b63
[style] Remove fdsc support (#2541)
It isn't exposed yet and low use between Apple fonts,
32 fdsc table vs 767 OS/2 tables, even Apple doesn't
support it anymore per Ned.
2020-07-06 00:05:21 +04:30
Jan Alexander Steffens (heftig)
4444482297 meson: Pin harfbuzz in .pc files to the built version
This ensures that we link -subset, -icu and -gobject with a matching
version of the main library.
2020-07-04 23:16:09 +04:30
Jan Alexander Steffens (heftig)
3adcf398a0 meson: Make Requires in .pc files match autotools
Libreoffice tries to use only harfbuzz-icu.pc and assumes this includes
-lharfbuzz.
2020-07-04 23:16:09 +04:30
Ebrahim Byagowi
359dbc97ae [meson] Use the recommended way to generate harfbuzz.cc
As https://github.com/harfbuzz/harfbuzz/pull/2532
2020-07-04 13:55:48 +04:30
Ebrahim Byagowi
a7e82e4ffd [meson] use the recommended way to generate hb-version.h
As https://github.com/harfbuzz/harfbuzz/pull/2532
2020-07-04 13:55:48 +04:30
Ebrahim Byagowi
404ecc252c [meson] use basename in check scripts now that meson passes dir also 2020-07-04 13:55:48 +04:30
Ebrahim Byagowi
785a9a8f8a [meson] use the recommended way to generate ragel headers
As described in https://github.com/mesonbuild/meson/issues/7156#issuecomment-629622827
2020-07-04 13:55:48 +04:30
Ebrahim Byagowi
42d039cc99 [meson] minor 2020-07-03 04:49:12 +04:30
Ebrahim Byagowi
f2a80ab2c2 [meson] use null_dep idiom 2020-07-03 04:49:12 +04:30
Ebrahim Byagowi
53b0a183c7 Remove concept of stable/unstable from build tools
We never practiced the concept of stable and unstable releases, let's
remove the code and always use the stable scheme.
2020-06-23 14:46:47 +04:30
Ebrahim Byagowi
47a0fbec31 [meson] Mark longer tests with slow
So one can skip them easily by `meson test -Cbuild --no-suite slow`
2020-06-21 08:47:10 +04:30
Ebrahim Byagowi
4e7cb7e2c4 minor, fix lists sorting 2020-06-12 01:38:16 +04:30
Nirbheek Chauhan
b88f1096ad meson: Export symbols for a DLL when not building statically
`default_library` might be 'both', in which case we will fail to link
when building with MSVC.
2020-06-09 20:22:28 +04:30
Ebrahim Byagowi
0151da23d6 [meson] Remove with_libstdcxx build option
This was done in #770 but no indication of anyone is using it,
let's remove it from our meson port and we can just don't care about
it in autotools port after the migration to meson.
2020-06-06 03:43:29 +04:30
Christoph Reiter
03bd6ead44 [meson] Only pass required dependencies to everything
Instead of passing dependencies as required we used one giant shared
dependency list containing all dependencies for every library/executable.
While this kinda works, the specified deps are also used for generating
the pkg-config files and this leads to lots of Requires.private and Libs.private
entries which aren't really needed.

This removes the "deps" array and replaces it with a few smaller ones and
makes sure the public libraries only get passed the dependencies actually
needed.

Fixes #2441
2020-06-04 23:28:57 +04:30
Ebrahim Byagowi
d54de56870 [style] Adopt with meson 2020-06-04 20:33:39 +04:30
Ebrahim Byagowi
d67553d12f
[meson] fix with_libstdcxx effect
oops
2020-06-04 12:31:57 +04:30
Ebrahim Byagowi
029ecf326e [meson] Fix gen-hb-version.py run
It gets complicated apparently when executed in the dist process, let's use raw
names now that we are operating in the script folder anyway.
2020-06-04 03:35:28 +04:30
Ebrahim Byagowi
870304df76 [meson] Remove amalgam build option
Fixes #2444
2020-06-04 03:26:19 +04:30
Ebrahim Byagowi
b8320340ce
[meson] fix gen script input
matters more when harfbuzz is a subproject
2020-06-03 23:40:57 +04:30
Ebrahim Byagowi
a9d13463b5 [meson] Categorize tests using suite: [...]
So one can run a category of interested tests like

  meson test -Cbuild --suite aots --suite src --print-errorlogs

Intead issuing particular tests which also is possible like

  meson test -Cbuild test-shape --print-errorlogs
2020-05-30 16:58:46 +04:30
Ebrahim Byagowi
7250adee26 [tests] Port check scripts to python 2020-05-30 13:55:47 +04:30
Ebrahim Byagowi
e3af529e51 [meson] update generated headers only when the result is different
This way it won't ruin incremental builds.

We need a better way to declare source altering tasks
https://github.com/mesonbuild/meson/issues/7156
yet this is good enough despite being not idiomatic.

It is however not that smooth yet as the change may is detected on the
next meson run. One of course can issue ./gen-ragel-artifacts.py
manually for better experience before running meson.
2020-05-23 22:35:43 +04:30
Ebrahim Byagowi
887aa0214f [meson] Use find_program for locating python script
Apparently that is the simplest and supported way of finding python scripts.
2020-05-21 20:03:11 +04:30
Ebrahim Byagowi
d9177a594b [meson] Use a c linker for on Windows also
Using a C linker was limited to non-Windows as 20a840c7, let's
revisit this while transition to meson.

Packagers easily override that via the option and use a C++ linker
if needed.
2020-05-21 19:37:57 +04:30
Ebrahim Byagowi
cc53fd158c
[meson] Normalize options names
As https://github.com/harfbuzz/harfbuzz/pull/2412#discussion_r426275027
2020-05-21 19:33:18 +04:30
Ebrahim Byagowi
a9e8328ae2 [meson] Add build configuration summary just like autotools 2020-05-21 19:29:32 +04:30
Ebrahim Byagowi
f7562672f9 [meson] Use / instead join_paths
We need some of the very recent features of meson, let's use the new features also
2020-05-21 18:52:31 +04:30
Ebrahim Byagowi
4fc6189a32 [meson] Generate harfbuzz.cc, hb-version.h and ragel artifacts 2020-05-18 13:54:42 +04:30
Christoph Reiter
b19f927f96 meson: error out if introspection is enabled but gobject isn't
In case a user passed -Dintrospection=enabled the build would just ignore
it by default because gobject defaults to disabled and the introspection build
gets skipped.

Instead, if introspection is explicitly enabled but gobject is for some reason
missing error out.

Fixes #2404
2020-05-17 11:10:08 +04:30
Ebrahim Byagowi
bb095e1bdd [meson] make -subset target dependent to deps to get libm dependency 2020-05-10 22:00:05 +04:30
Ebrahim Byagowi
eea99d7b72 [meson] Let name_prefix of exported libraries the default
meson complains about this and it is the default per #2256

Fixes #2256
2020-05-10 14:46:19 +04:30
Ebrahim Byagowi
2ac4222022 [meson] specify preferred linker to avoid stdc++ linking 2020-05-10 14:35:20 +04:30
Ebrahim Byagowi
15083c24ee [meson] Reenable make check-symbols compatible with gcov 2020-05-10 14:35:20 +04:30
Ebrahim Byagowi
6890554256
[ci/meson] temporarily disable check-symbols
will enable again
2020-04-28 14:56:47 +04:30
Hugo Beauzée-Luyssen
6881939f77 src: meson: Reindent after last changes 2020-04-23 13:27:12 +04:30
Hugo Beauzée-Luyssen
e18858c685 src: Don't build tests when they are disabled 2020-04-23 13:27:12 +04:30
Ebrahim Byagowi
750bb73e32 [meson] Add an experimental-api option 2020-04-21 01:26:08 +04:30
Christoph Reiter
fb3acdbcb6 meson: only install gobject/icu headers if the features are enabled 2020-04-19 18:49:43 +04:30
Christoph Reiter
ad5dcda0b5 meson: install hb-icu.h header 2020-04-19 18:49:43 +04:30
Ebrahim Byagowi
c6b3f73b09 [meson] Make harfbuzz-icu separate module optout-able 2020-04-19 02:06:01 +04:30