| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
We set up the boilerplate that is necessary for using DirectWrite in our code.
Also add code to tear it down after we are done with it.
|
|
|
|
|
|
|
|
|
|
|
| |
...in Cairo, as well as their presence in the Windows SDKs (which should
always be there in the Windows SDKs). We want to use items in DirectWrite
to help us improve support on Windows regarding looking up for features
(description) of a font.
Since upstream Cairo gained DirectWrite support very recently, check for
it only via pkg-config, since Cairo had Meson build support quite a bit before
that happened.
|
|
|
|
|
| |
This is necessary to make GListModel show up
as implemented interface in the docs.
|
|
|
|
|
|
|
|
|
|
|
| |
Pango 1.50.x and later require a HarfBuzz version that is buildable via
Meson, so we can just use the standard dependency() call for HarfBuzz
for all builds.
This means that we can drop all the items where we search for HarfBuzz
manually.
Also remove the stray HarfBuzz items that are no longer used.
|
| |
|
|
|
|
| |
Put PangoFontsetSimple into its own files.
|
|
|
|
| |
Replace json-glib by a homegrown json parser/printer.
|
|
|
|
|
|
|
|
| |
Add api to serialize PangoLayout, for the benefit
of testing and debugging. Currently, this uses
json, but that is an implementation detail.
Some tests included.
|
|
|
|
|
| |
We use harfbuzz shaping on all platforms now, so
just merge the code into shape.c
|
|
|
|
|
| |
Split the itemization code into its own file,
and move things around a bit.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|