summaryrefslogtreecommitdiff
path: root/pango/meson.build
Commit message (Collapse)AuthorAgeFilesLines
* build: Don't build HarfBuzz prematurelyhb-dont-fallback-too-earlyChun-wei Fan2021-02-251-2/+13
| | | | | | | | | | | | | | | | For Visual Studio builds, since HarfBuzz is built with CMake until HarfBuzz 2.6.x yet we only require HarfBuzz 2.0.0 or later, we aren't able to find pre-2.6.x HarfBuzz using Meson's dependency() method as the support for CMake config files is not done in Meson. As a result, we need to make sure that we first manually look for the HarfBuzz/HarfBuzz-GObject libraries before we attempt to use the fallback mechanism in Meson, so that we won't rebuild HarfBuzz unneccesarily. This rebuild will also cause issues for older compilers that don't have enough support for C++11 as building Harfbuzz with Meson support requires a C++11 compiler, which was mandated in HarfBuzz 2.5.0.
* Leave pango-version-macros.h out of the girgir-fixesMatthias Clasen2021-02-151-2/+3
| | | | | PANGO_VERSION_MIN_REQUIRED is a build utility, and is not useful as a constant in the gir. Leave it out.
* Include version macros in the girMatthias Clasen2021-02-151-2/+2
| | | | | PANGO_MAJOR/MINOR/MICRO_VERSION are useful to have in the gir.
* meson: add harfbuzz gobject dependencyStéphane Cerveau2021-01-131-1/+6
| | | | | | | | When harfbuzz is built as a subproject, the gobject dep should be used to generate the gir. The build was failing when the harfbuzz gir was not available system wide.
* Merge branch 'override-dependency' into 'master'Matthias Clasen2020-10-141-0/+5
|\ | | | | | | | | meson: Use meson.override_dependency() See merge request GNOME/pango!250
| * meson: Use meson.override_dependency()Xavier Claessens2020-09-301-0/+5
| | | | | | | | | | This allows projects that use pango as a subproject to not hardcode dependency variable names such as 'libpangocairo_dep'.
* | meson: Change introspection option to yielding featureXavier Claessens2020-09-301-1/+2
|/ | | | | | | Yielding option means that if pango is built as a subproject, it will take the value of that option from the parent project (e.g. gst-build). For that to work it must be of the same type, which is "feature" instead of "boolean" in all GStreamer modules.
* Revert "meson: Change introspection option to yielding feature"Matthias Clasen2020-09-301-2/+1
| | | | | | | This reverts commit 82cfabbabaade239beb26136cb28c98156552ea5. This change broke GTK ci, and it takes more work to fix it than I can invest atm. We can try again when GTK is ready for it.
* meson: Change introspection option to yielding featureXavier Claessens2020-09-291-1/+2
| | | | | | | Yielding option means that if pango is built as a subproject, it will take the value of that option from the parent project (e.g. gst-build). For that to work it must be of the same type, which is "feature" instead of "boolean" in all GStreamer modules.
* Add sysprof tracing supportMatthias Clasen2020-08-191-0/+1
| | | | | Add support for adding sysprof marks. Strongly inspired by equivalent GLib support.
* Include HarfBuzz when generating introspection dataEmmanuele Bassi2020-06-111-1/+1
| | | | | | | | | | The Pango API exposes harfbuzz types, and so we need to depend on HarfBuzz-0.0 when generating our introspection data. The introspection data on HarfBuzz was fixed upstream, even though the current introspected API is not stellar. Fixes: #458
* Use the appropriate namespace for Pango sub-librariesEmmanuele Bassi2020-06-101-5/+5
| | | | | | | | | | | | | | | | | | | | The Pango sub-libraries have symbols in the pango_<something> namespace, but the identifiers are in the Pango one, which makes consumers of the introspection data either get something like: PangoCairo.show_layout() with a bunch of warnings caused by the type macros not following the appropriate pattern, or: PangoCairo.cairo_show_layout() which breaks introspection ABI. We can use the __GI_SCANNER__ pre-processor symbol to trick the scanner into generating the appropriate representation of the API, while keeping the C consumers happy with the existing—albeit wildly inconsistent with best practices for GObject-based libraries—symbols.
* Use the correct identifier for Pango sub-librariesEmmanuele Bassi2020-06-101-5/+5
| | | | | | | | The Pango sub-libraries sadly hijack the Pango namespace for their symbols, but use a different namespace for the identifiers. This fixes an introspection ABI incompatible change that made its way in Pango 1.45.
* build: Generate pkg-config files for PangoOT and PangoFcEmmanuele Bassi2020-06-081-4/+20
| | | | | Since we have them as separate namespaces, we need separate pkg-config file in order to let Vala consume them.
* build: Remove unnecessary argumentsEmmanuele Bassi2020-06-081-8/+0
| | | | | The pkgconfig.generate() function has default values for the version and installation path argument, and we're already using them.
* build: Generate the correct introspection symbolsEmmanuele Bassi2020-06-081-12/+12
| | | | | | | | The prefix for the Pango sub-libraries is still Pango, so we need to ensure that the symbols and identifiers are correctly matched. This partially reverts !175, as Pango does not have separate pkg-config files for pango-ot and pango-fc.
* meson: Fix pkg-config file generation for HarfBuzzChun-wei Fan2020-06-051-1/+6
| | | | | HarfBuzz may be found manually instead of via pkg-config, so only add it to Pango's pkg-config file if it is really found via pkg-config.
* Use correct c:include and distinct package in PangoFc-1.0 and PangoOT-1.0Rico Tzschichholz2020-02-251-4/+4
| | | | Fixes: #456
* Revert "Include HarfBuzz when generating introspection data"Michael Catanzaro2020-02-111-1/+1
| | | This reverts commit 7cfef2b4604ceb64d9022e02a11e6963c7f1289d
* Include HarfBuzz when generating introspection dataEmmanuele Bassi2020-02-071-1/+1
| | | | | | | The Pango API exposes harfbuzz types, and so we need to depend on HarfBuzz-0.0 when generating our introspection data. Fixes: #458
* Install PangoFc and PangoOT GObject-IntrospectionSimon McVittie2019-08-101-0/+2
| | | | | | | | | | | | | If we don't install these, we can't load PangoXft and PangoFT2, which depend on them: $ GI_TYPELIB_PATH=${DESTDIR}/usr/lib/x86_64-linux-gnu/girepository-1.0 python3 ... >>> from gi.repository import PangoXft ... gi.RepositoryError: Typelib file for namespace 'PangoOT', version '1.0' not found Signed-off-by: Simon McVittie <smcv@debian.org>
* build: Install pango-ot headersEmmanuele Bassi2019-08-031-1/+1
| | | | | The refactoring of commit 1bdadfe1aae158fb406e10f81f3ae0533dea1602 missed out an installed header.
* Parse all pangoft sourcesEmmanuele Bassi2019-08-021-4/+3
| | | | | | The PangoFT2 sources have gtk-doc stanzas, so we need to parse them all to avoid warnings from the introspection scanner only having the headers to go by.
* Decouple PangoOT and PangoFc from PangoFT2Emmanuele Bassi2019-08-021-13/+58
| | | | | | | | | | | | | | | | | The PangoFT2 introspection namespace contains symbols from two other namespaces on top of its own PangoFT2 symbols: - PangoOT, the deprecated wrapper for FreeType's OpenType API - PangoFc, the wrapper for FontConfig's API We can only have one namespace per GIR/typelib, so we need to decouple the GIR and typelib introspection data from PangoFT2 into three separate namespaces. These are just new introspection namespaces mapping to their corresponding C symbols; there are no new shared libraries: if you're using PangoFc and PangOT API then you must be linking against libpangoft2 anyway.
* pkgconfig: Make harfbuzz a RequiresMatthias Clasen2019-07-281-1/+1
| | | | | It used to be Requires.private, but we expose harfbuzz types in public headers now.
* Merge branch 'cairo-detection-improvements' into 'master'Matthias Clasen2019-07-211-1/+9
|\ | | | | | | | | Improve build experience in regards to Cairo/PangoCairo See merge request GNOME/pango!93
| * pango/meson.build: Fix pangocairo.pc on MSVC buildsChun-wei Fan2019-07-191-1/+9
| | | | | | | | | | | | | | On MSVC builds, Cairo may be found either via pkg-config files or manually through finding headers and libs, so we need to ensure that we create pangocairo.pc correctly, otherwise items that depend on PangoCairo may not link correctly.
* | Remove now unused platform shaping codeKhaled Hosny2019-07-191-5/+0
|/
* Move _pango_fc_shape to libpangoMatthias Clasen2019-07-181-1/+1
| | | | | | | We temporarily export it since it is still used for the shape engine in libpangoft2. This will be undone when we drop the shape engine.
* Revert "Reduce overlinking"Matthias Clasen2019-07-121-3/+5
| | | | This reverts commit f972ba0562823a8d55ad02ff9609481a884c79f8.
* Revert "Move pangofc to libpango"Matthias Clasen2019-07-121-22/+8
| | | | This reverts commit 8b85815f1b122842d915e7fc29cc68d228a64dbb.
* Move pangofc to libpangoMatthias Clasen2019-07-091-8/+22
| | | | | Move the fontconfig+harfbuzz using parts to libpango, since we want to start using harfbuzz on all platforms.
* Reduce overlinkingMatthias Clasen2019-07-091-5/+3
| | | | | Only link libpangoxft and libpangocairo against xft and cairo.
* Header cleanupMatthias Clasen2019-07-041-4/+0
| | | | | | | Abolish the PANGO_ENABLE_BACKEND and PANGO_ENABLE_ENGINE defines. All backend-only apis are moved into private headers, all apis that were engine-only are marked as deprecated, since engines are.
* meson: Use 'standard' option namesMatthias Clasen2019-07-011-1/+1
| | | | | | | | Use 'gtk_doc' for documentation and 'introspection' for, well, introspection. This matches what the rest of the stack does. Fixes https://gitlab.gnome.org/GNOME/pango/issues/364
* pango.pc: Make gobject-2.0 a non-private requirementTom Schoonjans2018-12-191-0/+1
|
* Fix fallout from bidi deprecationMatthias Clasen2018-12-111-0/+1
| | | | | | | PangoDirection is still used in some public apis, so just keep it around. Closes: #339
* meson: Set the compatibility version correctly on macOSNirbheek Chauhan2018-10-121-0/+4
| | | | | | Requires the latest Meson. Closes https://gitlab.gnome.org/GNOME/pango/issues/320
* meson: Add subproject fallbacks for most dependenciesNirbheek Chauhan2018-10-121-2/+4
| | | | | | | | | | | | | | | | glib, fribidi, harfbuzz, fontconfig, freetype, cairo + small fixes when building as a subproject Only fribidi and glib have been added as wraps because the rest are not upstream yet and can be found at: https://github.com/centricular/harfbuzz https://github.com/centricular/fontconfig https://github.com/centricular/cairo https://github.com/centricular/freetype2 They need testing on non-Linux platforms.
* meson: fix build on osxIgnacio Casal Quinteiro2018-10-041-2/+1
| | | | Fixes https://gitlab.gnome.org/GNOME/pango/issues/324
* build: Generate pkg-config filesEmmanuele Bassi2018-08-301-0/+50
| | | | | | | | | Instead of using templates, ask Meson to generate the pkgconfig files for us. This ensures that the generated files are: - always valid - always up to date with the build - only built when needed without convoluted checks
* build: Add variable for the Pango versioned spaceEmmanuele Bassi2018-08-301-1/+1
| | | | | | | | We have the API version and we build the inclusion path from it, but we should have a variable with the versioned namespace ('pango' + API version) and build paths using join_paths() instead. We're also going to use the versioned namespace elsewhere soon.
* meson: Add not-found dependencies for conditional declared depswip/nirbheek/meson-declare-dependencyNirbheek Chauhan2018-07-071-0/+12
| | | | | | | Instead of not defining the variable, or defining it to [], define it to the not-found dependency instead, so that when other projects (such as gtk+) are using pango as a subproject, they get a valid dependency object which tells them that the dependency cannot be found.
* build: move usp10 before gdi32Christoph Reiter2018-04-091-1/+3
| | | | | | | | | | | | | | | Without this pango on mingw64 tries to lookup up the Script* functions in gdi32 and fails. It already fails at the build stage because the introspection dump crashes with a missing entry point error. Moving usp10 before gdi32 makes things work. This might be related to the warning in the uniscribe docs: "Important Starting with Windows 8: To maintain the ability to run on Windows 7, a module that uses Uniscribe must specify Usp10.lib before gdi32.lib in its library list." https://bugzilla.gnome.org/show_bug.cgi?id=795045
* meson: Check for HarfBuzz and FontConfig for PangoFT2Chun-wei Fan2018-03-301-1/+1
| | | | | | | | | | | | | | | | | | | | | It is possible that we can have the following situations, at least on Windows: -FreeType present, FontConfig missing -Cairo-FT present, with no FontConfig support. As gen-script-for-lang requires FontConfig, and PangoFT2 depends on HarfBuzz, FontConfig and Freetype, we need to check for them before we build PangoFT2, and so that we could include PangoFT2 support in PangoCairo. The tests and pango-view have an optional dependency on PangoFT2, so we need to also check whether we built PangoFT2 before we try to build things related to PangoFT2. For the tools, since gen-script-for-lang.c depends on FontConfig, check for it as well before we build it. https://bugzilla.gnome.org/show_bug.cgi?id=783274
* meson: Update rules for introspectionEmmanuele Bassi2018-02-121-143/+171
| | | | | | | | | | | | | | | Building introspection should not be gated on cross-compilation: it's perfectly acceptable to use an helper binary to run the introspection scanner when cross-compiling — in fact, it's what projects like Yocto do. Instead, we should have an option to disable the introspection generation explicitly. Additionally, when building introspection data for ancillary Pango libraries, like PangoCairo or PangoXft, we should depend on the GIR target, instead of adding an `--include-uninstalled` extra argument for the introspection scanner; this allows building Pango as a sub-project of another project, and lets Meson deal with the appropriate paths and arguments when invoking the scanner.
* Switch to using external FriBiDiKhaled Hosny2018-02-041-3/+1
|
* meson: Add required gir dependencies to fix broken buildRico Tzschichholz2017-09-251-6/+18
|
* meson: Rework gir/typelib generation and dependenciesNirbheek Chauhan2017-09-111-43/+34
| | | | | | | | | | Don't use --include-uninstalled, it's not needed with Meson because we take care of inter-gir target dependencies. Add girs and typelibs to the relevant libpango*_dep declared dependencies so that they can be used via subprojects. https://bugzilla.gnome.org/show_bug.cgi?id=787414
* meson: Build .rc files on WindowsChun-wei Fan2017-09-091-0/+39
| | | | | | | | Like the autotools builds, build the .rc files for the PangoCairo, PangoFT2, PangoWin32 and Pango DLLs so that people can see the version info more easily. https://bugzilla.gnome.org/show_bug.cgi?id=783274