meson.build


Log

Author Commit Date CI Message
Khaled Hosny 22cbd038 2021-09-14T12:34:25 [meson] Add ragel subproject If ragel 6.10 is not found, build it from source. Seems to work, except that ragel uses exceptions and we configure HarfBuzz build to not use exceptions, and I can’t find away to enable exceptions only for the ragel subproject. I had to remove cpp_eh=none from default options and try to disable exceptions in MSVC manually (other compilers are already handled).
Khaled Hosny 7e9ac8fe 2021-09-14T07:07:00 [meson] Require ragel 6.10 Ragel 7 is also not stable from upstream's point of view. This uses “version” argument find_program(), which was introduced in meson 0.52.0, so I raised the minimum required meson version accordingly.
Khaled Hosny 505df5ab 2021-09-07T13:46:08 2.9.1
Khaled Hosny 9aa6f8a9 2021-08-18T09:32:04 2.9.0
Khaled Hosny 63e15eac 2021-07-08T22:46:33 2.8.2
Khaled Hosny b37f03f1 2021-05-04T02:07:06 2.8.1
Hans Petter Jansson 8298c2f9 2021-04-23T18:37:58 [hb-view] Use Chafa for terminal graphics if available This produces high-quality terminal graphics using symbols or sixels according to the detected terminal capabilities. Fixes #2430.
Khaled Hosny 743baf35 2021-03-22T15:51:17 [build] Don’t look for FontConfig We don’t currently use it anywhere. It was used briefly for the hb-fc-list tool, but this tool have not been built since 2015: commit cd042fc8c4a3984c3647cd22a27c34f00636f6e8 Author: Behdad Esfahbod <behdad@behdad.org> Date: Thu Jun 18 10:55:13 2015 -0700 [util] Disable hb-fc-list for now Until I figure out what to do about the API, and finalize the tool.
Khaled Hosny 03538e87 2021-03-16T19:28:35 2.8.0
Behdad Esfahbod c2fc2aa4 2020-06-29T01:49:28 [atomic] Remove Solaris intrinsics
Behdad Esfahbod 7099a6dc 2020-06-29T01:47:37 [atomic] Remove old Intel primitives implementation
Behdad Esfahbod 711c241f 2020-06-29T01:40:30 m[mutex] Remove busyloop mutex implemenation Don't know why I ever added this. :)
Khaled Hosny 68d2e1b2 2021-01-21T14:39:19 [meson] Disable benchmark feature by default It downloads a dependency from the internet, and in the same time not used anywhere (one needs to explicitly call ninja benchmark), not even on the CI (not sure if it that would make much sense since it does not seem to ever fail).
Khaled Hosny b6f47af5 2021-01-21T14:34:01 [meson] Report more options in the summary
Khaled Hosny 7236c7e2 2020-12-27T01:59:00 2.7.4
Khaled Hosny 71a3b54f 2020-12-23T15:33:15 2.7.3
Xavier Claessens e2ba0e00 2020-10-03T21:34:24 meson: Fix check for cairo and cairo-ft dependencies When cairo comes from a subproject fallback it should still take cairo-ft dependency, otherwise it miss freetype2 cflags. Also update wrap file to use upstream repository now that meson support has been merged. This requires Meson >= 0.54.0 because cairo itself requires that version and we use the new `fallback: 'cairo'` syntax without specifying a variable name because cairo does not provide a variable name for cairo-ft.
Khaled Hosny 9c98b2b9 2020-08-29T00:39:42 2.7.2
Ebrahim Byagowi 05ef75c5 2020-08-13T20:52:03 2.7.1
Ebrahim Byagowi 0a02f1e7 2020-08-13T15:33:39 [meson] Abort if GDI/Uniscribe headers couldn't be found
Ebrahim Byagowi 24b42002 2020-08-13T09:06:39 [meson] Avoid using has_headers as that has added in 0.50.0
Ebrahim Byagowi 6e32145d 2020-08-13T00:13:06 [meson] Make compatbile with 0.47.0
Ebrahim Byagowi 58209c86 2020-08-12T23:04:26 [meson] Make compatbile with 0.49.0 Contains a just put together summary feature polyfill and workaround to broken ternary operator.
Ebrahim Byagowi ef2e3803 2020-08-12T00:50:33 Revert "Remove cmake-config support of HarfBuzz" This reverts commit 75efa893433b6f352c28bda9d0a92683244900aa.
Ebrahim Byagowi 34a05320 2020-08-04T15:14:59 [meson] minor note
Ebrahim Byagowi 75efa893 2020-07-30T01:17:42 Remove cmake-config support of HarfBuzz Reverts d38f37b2 as discussed in #2316
Ebrahim Byagowi 97079a7c 2020-08-02T12:34:21 [meson] Pass cpp_eh=none and cpp_rtti=false as default options If we want to support a build with exception handling and RTTI We should reflect that on library(..., link_language: 'c') also so for now it is ok to just set it here to get MSVC support also and we can remove hard coded flags later upon request. One other concern over just relying on it is on when harfbuzz is used as a subproject and the parent project hasn't provided the same options, that should be resolved first I think. Closes #2584
Ebrahim Byagowi 749e2754 2020-08-02T12:21:51 [meson] remove useless note about -fvisibility-inlines-hidden It was put there as current situation of autotools but msys2 is ok with the flag, if something like is needed for other it can handled as a local patch.
Ebrahim Byagowi a01c7a38 2020-07-25T12:27:31 2.7.0
Ebrahim Byagowi f9ac6ddb 2020-07-22T17:53:04 [meson] Rename 'gtk_doc' option to 'docs'
Ebrahim Byagowi 8cbdb6fa 2020-07-15T13:32:57 [meson] Don't enable benchmark under the conditions ever As we don't want to make headache for packagers as we don't want to enable it when --auto-features=enabled is used.
Ebrahim Byagowi dc981fe9 2020-07-15T13:15:27 [meson] Merge gdi and uniscribe They are the same thing obviously
Ebrahim Byagowi f62f4e38 2020-07-08T00:26:40 [meson] minor on gdi, dwrite and icu
Ebrahim Byagowi 69a1e07a 2020-07-08T03:12:09 [meson] don't enable benchmark if is in nodownload wrap mode Fixes #2551
Ebrahim Byagowi 747f65f9 2020-07-07T11:37:16 [meson] Remove HAVE_OT and HAVE_FALLBACK No need as 1e8fdd2 and 23768a9
Ebrahim Byagowi e1c35ca5 2020-07-06T22:29:11 [meson] rename the section As Behdad's comment
Ebrahim Byagowi ddb103ea 2020-07-06T22:27:39 [meson] minor
Khaled Hosny dc684103 2020-07-06T14:48:37 [meson] Set the default wrap mode to nofallback This, I believe, will prevent any automatic use of subprojects be default and will only look for dependencies on the system. https://mesonbuild.com/Subprojects.html#commandline-options
Ebrahim Byagowi 52199349 2020-07-06T16:30:59 [meson] mark meson as tested tested in a CI bot that in a `-Dcoretext=enabled` build, `build/util/hb-shape --shaper=ot` works fine.
Ebrahim Byagowi a08ba46d 2020-07-06T00:31:42 [meson] move meson version so can be referenced easier
Ebrahim Byagowi 6d3d0ebb 2020-07-06T00:26:07 Remove .tarball-revision generation from meson dist Toward making release tarball identical to git checkout now that we are moving to meson.
Ebrahim Byagowi 38fa9249 2020-07-03T11:44:44 [meson] revert 020b182 as meson fails when there is cyclic dependency
Ebrahim Byagowi 42d039cc 2020-07-03T04:32:32 [meson] minor
Ebrahim Byagowi f2a80ab2 2020-07-03T04:28:08 [meson] use null_dep idiom
Ebrahim Byagowi 05ab073d 2020-07-02T23:54:09 [meson] Improve the way cairo-ft availability is checked
Ebrahim Byagowi aadcd3ed 2020-07-01T14:31:33 [meson] use dependency's has_headers to make pulled cairo has ft support
Ebrahim Byagowi 020b182c 2020-07-01T14:22:46 [meson] try freetype without harfbuzz just as a last resort
Xavier Claessens 01fa55e8 2020-06-24T15:56:09 meson: Allow freetype and cairo subprojects to fail If their respective option is set to 'auto' configuration of the fallback subproject should be allowed to fail for any reason.
Xavier Claessens 00c652ad 2020-06-24T14:11:32 meson: Fallback to cairo subproject when option is 'auto'
Xavier Claessens 571365df 2020-06-24T14:11:07 meson: Simplify check for cairo library and headers
Xavier Claessens c4bbe89b 2020-06-24T13:40:55 meson: Fallback to freetype2 subproject when option is 'auto' But disable harfbuzz support when configuring freetype2 subproject to avoid dependency cycle.
Xavier Claessens 33252ce5 2020-06-24T13:40:32 meson: Simplify check for freetype2 library and headers
Ebrahim Byagowi f3f9205f 2020-07-01T03:01:25 [meson] Assume cairo_ft always available when cairo isn't from pkgconfig
Ebrahim Byagowi 702847aa 2020-06-29T00:39:43 [meson] Turn benchmark to a feature
Ebrahim Byagowi 1536271f 2020-06-28T13:35:13 Don't check roundf availability in cmake and meson
Ebrahim Byagowi 95b1081b 2020-06-09T17:37:36 Add performance benchmark for shaping, get extents and draw
Ebrahim Byagowi 53b0a183 2020-06-22T18:04:01 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.
Ebrahim Byagowi e4203c14 2020-06-22T05:03:27 2.6.8
Ebrahim Byagowi 8c84fee2 2020-06-22T04:04:40 Update build systems status messages
Ebrahim Byagowi a6bcc577 2020-06-20T14:19:12 [meson] don't `add_dist_script` when we are subproject Happens when harfbuzz is used as a meson subproject, `ERROR: add_dist_script may not be used in a subproject.`
Ebrahim Byagowi 03bd3efa 2020-06-19T10:32:46 [meson] Write git revision to .tarball-revision on dist tarball
Ebrahim Byagowi 62de2f74 2020-06-11T19:09:24 [meson] Remove spaces before named parameter colons meson documentations sometimes adds the space and sometimes don't and we aren't adding it most of the times unconsciously so let's the cases and be consistent.
Ebrahim Byagowi b8454c3d 2020-06-11T18:32:13 [meson] use if blocks to separate different dependencies
Ebrahim Byagowi ebab4b86 2020-06-10T16:52:32 [meson] Implement disabled state for cairo/freetype/icu 'disabled' wasn't implemented for some of the features so they were getting found even with explicit -Dfeature=disabled, this implements it. Run the following command to test this change and check whether 'disabled' was actually effective, meson build -Dglib=disabled -Dgobject=disabled -Dcairo=disabled -Dfontconfig=disabled -Dicu=disabled -Dfreetype=disabled -Dintrospection=disabled -Dgtk_doc=disabled This is useful when one wants to integrate harfbuzz into another project via meson's subproject mechanism.
Ebrahim Byagowi 22048d55 2020-06-05T04:09:07 [meson] Add -Bsymbolic-functions
Ebrahim Byagowi 65462c4b 2020-06-05T01:08:08 minor, improve the need for graphite comment
Christoph Reiter 03bd6ead 2020-06-03T23:52:10 [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
Ebrahim Byagowi fb46a32e 2020-06-03T12:54:26 2.6.7
Ebrahim Byagowi 6058ede3 2020-06-01T12:58:31 Build win32 artifacts using meson As a part of meson migration, this builds hb-shape dependencies using meson subprojects and removes different unrelated mingw files we've put on source root about things that aren't really our concern. This also simplifies all the instructions we've put in README.mingw.md and makes it easy to build the project on distros that no mingw libraries (such i686-win32-{freetype,glib,...} are packaged. The known catch is however lack of hb-view as its need for build of cairo which apparently isn't that straightforward.
Ebrahim Byagowi 887aa021 2020-05-21T20:02:47 [meson] Use find_program for locating python script Apparently that is the simplest and supported way of finding python scripts.
Ebrahim Byagowi cc53fd15 2020-05-21T19:33:18 [meson] Normalize options names As https://github.com/harfbuzz/harfbuzz/pull/2412#discussion_r426275027
Ebrahim Byagowi a9e8328a 2020-05-21T16:28:24 [meson] Add build configuration summary just like autotools
Ebrahim Byagowi f7562672 2020-05-21T17:01:04 [meson] Use / instead join_paths We need some of the very recent features of meson, let's use the new features also
Tim-Philipp Müller 3dd7b210 2020-05-17T00:12:08 meson: build documentation with gtk-doc Fixes https://github.com/harfbuzz/harfbuzz/issues/2409
Ebrahim Byagowi 42025680 2020-05-12T00:14:33 2.6.6
Ebrahim Byagowi 44fe1c8f 2020-03-25T16:36:48 Remove xlocale use now that isn't available in most distros Our CI bots don't detect it in Alpine, ArchLinux, Ubuntu and Fedora so let's get rid of it use the fallback we are using anyway for a long time.
Ebrahim Byagowi 750bb73e 2020-04-21T01:13:13 [meson] Add an experimental-api option
Ebrahim Byagowi c6b3f73b 2020-04-19T00:54:24 [meson] Make harfbuzz-icu separate module optout-able
Christoph Reiter 8ae06c94 2020-04-18T20:22:45 meson: build a separate library for harfbuzz-icu This adds a seperate library like with autotools. This also fixes the ico feature option which was just set to required:false when disabled instead of really disabling it. Disabling is still broken with msvc because it then tries to find the library another way, but that's broken for all other deps as well so I left it as is. For tests only test-unicode.c is using icu specific functions so split it out into its own category which depends on harfbuzz-icu. Fixes #2338
Ebrahim Byagowi f9bc3733 2020-04-17T22:37:48 2.6.5
Ebrahim Byagowi 466dbaa2 2020-03-24T19:52:43 [meson] Add a note on meson stability status
Ebrahim Byagowi e8808c1c 2020-03-24T19:15:09 [meson] Minor, replace tabs with spaces
Tim-Philipp Müller a3892be7 2020-03-14T01:08:15 [meson] fix spurious warning when building test/api C sources Fixes compiler warning test-unicode.c:589:1: warning: ‘test_unicode_properties_lenient’ defined but not used which didn't happen with autotools. Reason it does with meson is that the setup for C was slightly wrong. We would only add -DHAVE_CONFIG_H to cpp_args which is only valid when compiling C++ code, but not plain C code, and many of these tests were plain C. Instead pass -DHAVE_CONFIG_H via add_project_arguments() and make sure to set both c_args and cpp_args when building test executables. Fixes https://github.com/harfbuzz/harfbuzz/issues/2257
Tim-Philipp Müller bb8aaa31 2020-03-14T01:05:38 [meson] use add_project_arguments() instead of add_global_arguments() .. and simplify, can pass two languages in one go. add_global_arguments() won't work if harfbuzz is used as a meson subproject.
Chun-wei Fan 838346c5 2020-03-13T18:01:17 meson: Support GDI integration ...and supersede the configuration option uniscribe with gdi, as Uniscribe is tightly tied to GDI. This means that enabling GDI would also mean enabling Uniscribe.
Chun-wei Fan 9d0e6aef 2020-03-13T16:56:55 Meson: Look harder for Cairo on Visual Studio Since Cairo's build system for Visual Studio does not generate pkg-config files for us, look for cairo.h and cairo.lib manually if the pkg-config files cannot be found. Also look for cairo-ft more carefully: ensure that we have cairo-ft.h, and one of its symbols can be found in the same cairo.lib that we previously found.
Chun-wei Fan 5efce600 2020-03-13T16:40:20 Meson: Try harder to look for ICU on Visual Studio ICU's Visual Studio build files do not generate pkg-config files for us, unless it is built with Cygwin instead of the project files. If pkg-config files for ICU cannot be found, look for its headers and .lib manually.
Chun-wei Fan 7baa8e0d 2020-03-13T16:21:25 meson: Updates to Uniscribe and DirectWrite build support Update the DirectWrite support to look for dwrite_1.h, and give the green light for both the DirectWrite and Uniscribe build options.
Chun-wei Fan 733414b2 2020-03-13T16:15:21 meson: Try harder to find FreeType on Visual Studio If we can't find FreeType via pkg-config or CMake, try looking for it manually, before we attempt to build it as a fallback.
Chun-wei Fan 3341d534 2020-03-13T12:07:06 meson: Don't apply -DHB_DLL_EXPORT to all targets Only have it apply to the libraries when they are not built statically on Visual Studio
Ebrahim Byagowi 31218b41 2020-03-11T22:27:32 [meson] Explicit state C++11 for older compilers Needed as https://circleci.com/gh/harfbuzz/harfbuzz/132417
Ebrahim Byagowi 365d2d3c 2020-03-11T20:16:36 [meson] Add needed compiler flags
Ebrahim Byagowi 1c3f80ba 2020-03-11T19:29:47 [meson] Minor updates
Tim-Philipp Müller 535186fd 2018-12-03T20:51:06 meson: provide a harfbuzz-config for use from CMake See #822 and #1437.
Tim-Philipp Müller 6afa7e1c 2018-12-02T01:28:23 meson: update harfbuzz version
Tim-Philipp Müller 0fcf0982 2018-12-01T18:22:46 meson: fix linking on MSVC
Tim-Philipp Müller 4a47f1aa 2018-12-01T11:05:27 meson: suppress some spurious compiler warnings with MSVC
Tim-Philipp Müller 618584e9 2018-11-14T20:19:36 meson: rename incbase to incconfig Makes it clearer what it's for: config.h. See #4.
Tim-Philipp Müller 6147df33 2018-11-14T10:12:40 meson: add option to disable tests
Tim-Philipp Müller 4840c823 2018-11-12T16:56:56 meson: add option and build system plumbing for CoreText on macOS/iOS Untested though.