| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
PANGO_VERSION_MIN_REQUIRED is a build utility, and
is not useful as a constant in the gir. Leave it out.
|
|
|
|
|
| |
PANGO_MAJOR/MINOR/MICRO_VERSION are useful to have
in the gir.
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
meson: Use meson.override_dependency()
See merge request GNOME/pango!250
|
| |
| |
| |
| |
| | |
This allows projects that use pango as a subproject to not hardcode
dependency variable names such as 'libpangocairo_dep'.
|
|/
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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 support for adding sysprof marks.
Strongly inspired by equivalent GLib support.
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Since we have them as separate namespaces, we need separate pkg-config
file in order to let Vala consume them.
|
|
|
|
|
| |
The pkgconfig.generate() function has default values for the version and
installation path argument, and we're already using them.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes: #456
|
|
|
| |
This reverts commit 7cfef2b4604ceb64d9022e02a11e6963c7f1289d
|
|
|
|
|
|
|
| |
The Pango API exposes harfbuzz types, and so we need to depend on
HarfBuzz-0.0 when generating our introspection data.
Fixes: #458
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
The refactoring of commit 1bdadfe1aae158fb406e10f81f3ae0533dea1602
missed out an installed header.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It used to be Requires.private, but we expose
harfbuzz types in public headers now.
|
|\
| |
| |
| |
| | |
Improve build experience in regards to Cairo/PangoCairo
See merge request GNOME/pango!93
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This reverts commit f972ba0562823a8d55ad02ff9609481a884c79f8.
|
|
|
|
| |
This reverts commit 8b85815f1b122842d915e7fc29cc68d228a64dbb.
|
|
|
|
|
| |
Move the fontconfig+harfbuzz using parts to libpango,
since we want to start using harfbuzz on all platforms.
|
|
|
|
|
| |
Only link libpangoxft and libpangocairo
against xft and cairo.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
PangoDirection is still used in some public apis,
so just keep it around.
Closes: #339
|
|
|
|
|
|
| |
Requires the latest Meson.
Closes https://gitlab.gnome.org/GNOME/pango/issues/320
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Fixes https://gitlab.gnome.org/GNOME/pango/issues/324
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|