| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Let people know that it is possible to build Pango using Meson on
Windows, and let people know how it is done.
|
|
|
|
|
|
|
|
| |
We have been able to build Pango with Visual Studio using Meson for some
time now, so drop the Visual Studio projects as well. This should also
make builds more flexible as the Visual Studio projects focused more on
the cases where we do not build PangoFT2, especially in regards to
building the introspection files.
|
|
|
|
| |
We will just use meson from now on.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Instead of a O(n^2.log(n)), we now do O(n) by avoiding calling
FcFontList for each PangoFontFace, and FcFontMatch in
pango_fc_face_describe().
Makes pango-list over 100 times faster for me.
|
|
|
|
|
| |
They are not used in font chooser, so don't call them. My goal
for pango-list was to measure font chooser performance...
|
| |
|
|\
| |
| |
| |
| | |
meson: Add not-found dependencies for conditional declared deps
See merge request GNOME/pango!6
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
pango.pc.in: Add fribidi to Requires.private
Closes #301
See merge request GNOME/pango!5
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In current versions of pkg-config, the most appropriate place for most
library dependencies is Requires.private. When compared with Requires,
this avoids "overlinking" when an executable is linked to the pango
shared library: in modern OSs, a shared library's library dependencies are
automatically loaded by the dynamic linker along with that shared library.
It would not be correct to omit fribidi from the .pc file either,
because that would break static linking: when linking statically,
it is necessary to list all dependencies explicitly, because static
libraries (unlike shared libraries) do not carry their own dependency
metadata.
Using Requires.private also has the effect of adding fribidi's
CFLAGS to the output of `pkg-config --cflags pango`. That is in fact
unnecessary here, because fribidi is only used internally, so
https://bugs.freedesktop.org/show_bug.cgi?id=105572 proposes a new
dependency type "Requires.internal" which would additionally omit
fribidi from `pkg-config --cflags pango`. However, this is not yet
supported in pkg-config, so it cannot be used yet.
For more details on Requires.private please see this article by the
current Debian pkg-config maintainer and former upstream
pkg-config maintainer:
https://err.no/personal/blog/tech/2008-03-25-18-07_pkg-config,_sonames_and_Requires.private/
and this description of the various dependency types that can exist:
https://bugs.freedesktop.org/show_bug.cgi?id=105572#c1
Fixes: #301
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895235
Signed-off-by: Simon McVittie <smcv@debian.org>
|
| |
| |
| |
| |
| | |
Fixes https://gitlab.gnome.org/GNOME/pango/issues/301
Fixes https://gitlab.gnome.org/GNOME/pango/issues/305
|
| |
| |
| |
| |
| | |
Apple Color Emoji for example has multiple strikes... We were
only listing first.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Also write out description of each face. This is really broken for
free-style style names (as we knew), and very slow, as is O(N^3.log(N))
in the number of fonts...
|
| |
| |
| |
| |
| | |
My main interest is performance of font listing API. Figured I can
just make a tool out of it. Output format to be improved.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
This function has not been updated for latest FriBidi.
Should add new types and / or deprecate this function.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was included in Pango's mini-fribidi but removed when we moved to
external FriBidi.
Most apps create PangoLayout twice to show text, one to measure, one to
render. Each PangoLayout shaping apparently calls FriBidi twice (TODO:
figure out why and fix); FriBidi creates two runs per work. So that's
eight malloc calls per word to show text. That's a lot. With this
optimization that completely disappears for most text.
We should make an API in FriBidi out of this.
Reported by Christian Hergert.
|
|\
| |
| |
| |
| |
| |
| | |
Initial CI config
Closes #310
See merge request GNOME/pango!2
|
|/
|
|
| |
Fixes https://gitlab.gnome.org/GNOME/pango/issues/310
|
|\
| |
| |
| |
| |
| |
| | |
Resolve "Fix linker options on Darwin"
Closes #304
See merge request GNOME/pango!1
|
|/
|
|
|
|
| |
The Darwin linker doesn't want equal signs here.
Closes: #304
|
|
|
|
| |
Fixes bug 787867.
|
|
|
|
| |
We use hb_variation_t that was added in harfbuzz 1.4.2.
|
|
|
|
| |
This reverts commit 68cc13d04ed9d89609727f4448e5d2e08dd6626c.
|
|
|
|
| |
I’m assuming the new API is thread-safe as claimed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It joins the HFONT and script key to a gint64 and uses this as a
hash key, but HFONT is a pointer type and on 64bit Windows it
doesn't fit in 32bit and the value gets truncated.
This breaks the build with meson where -Werror=pointer-to-int-cast
is enabled by default.
Instead of using the gint64 hash functions add our own key type and implement
matching hash and equality functions for it.
https://bugzilla.gnome.org/show_bug.cgi?id=795045
|
|
|
|
|
|
|
| |
The API isn't available on Windows and gtk-doc fails with a
linker error otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=795045
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Introduced in 46f8583c87c45b304ac98d06005c49df67d53b07
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For some reason MinGW Python (the one running meson) mangles arguments
for this case (even adding a space makes it work). Since quotes
are not needed here just drop them.
Python issue filed upstream: https://github.com/Alexpux/MINGW-packages/issues/3548
https://bugzilla.gnome.org/show_bug.cgi?id=795012
|
|
|
|
|
|
| |
The meson build uses -Werror=redundant-decls and fails.
https://bugzilla.gnome.org/show_bug.cgi?id=795012
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add an Emoji font family that maps to the following fonts in this order
(by fallback):
Segoe UI Emoji
Segoe UI Symbol
Segoe UI
This will enable Emoji to be displayed correctly in GTK+ apps (without
the use of FontConfig) on Windows Vista and later, providing that one
of the aforementioned fonts are installed.
Note that this only enables Emoji display (*not* colored ones) as
achieving colored Emoji requires PangoWin32 and Cairo to be ported to
Direct2D and DirectWrite from Uniscribe and GDI, as Uniscribe and GDI
does not support colored Emoji.
https://bugzilla.gnome.org/show_bug.cgi?id=794705
|
|
|
|
|
| |
Visual Studio does not ship with a unistd.h, so include the proper
header on Windows when unistd.h is not found on Windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many of Pango's dependencies do not support a build system for Visual
Studio that would generate the pkg-config files for them, so we need to
try to look for them using cc.has_header() and cc.find_library() for
them, namely for Cairo, FreeType, FontConfig and HarfBuzz as fallbacks.
For Cairo, things are more complicated as there are multiple build
options and configurations for it, so we need to check for those that we
need after we find the Cairo headers and libraries by:
-Including the respective headers (for cairo-win32.h, cairo-ps.h,
cairo-pdf.h, cairo-quartz.h and cairo-xlib.h, since these features
must have been enabled when Cairo is built and installed in order for
those headers to be succesfully included)
-For pangocairo with FreeType support, we need to check whether the
FontConfig support is built into Cairo as well, as FontConfig support
is actually required in Cairo for this.
-For Cairo/PNG output surface support, check whether Cairo is built with
PNG output surface support.
We also need to update how pangocairo.pc and pangoft2 are generated:
-On builds where pkg-config files can be found for cairo, freetype,
fontconfig and/or harfbuzz:
Generate it with "Requires: pango <depedencies>" as before, otherwise
for MSVC builds where we find these libraries manually, we don't put
these packages under "Requires:..." or "Requires.private:...", but
instead put them under "Libs:", linking to each dep as -l<.lib file
name>
This is so that pangocairo.pc and pangooft2.pc can be correctly used by
items that need to make use of it, such as g-ir-scanner.
https://bugzilla.gnome.org/show_bug.cgi?id=783274
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
Follow up of commit d4f3370336a40907f528a41e75a55fe4f50c1a11.
Maintaining two build systems is tricky!
|
|
|
|
| |
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=794570
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Fix FontConfig casing, remove a dead link and outdated sections.
|
| |
|
| |
|