| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
The Darwin linker doesn't want equal signs here.
Closes: #304
|
|
|
|
| |
We use hb_variation_t that was added in harfbuzz 1.4.2.
|
|
|
|
| |
I’m assuming the new API is thread-safe as claimed.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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!
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This changes meson.build to match what configure.ac already does. The
code doesn’t have separate conditions for whether fontconfig and
freetype are available: if freetype compilation is enabled, it assumes
that fontconfig is also available.
Previously, systems with freetype available, but no fontconfig, would
fail to compile Pango due to trying to link against non-existent
fontconfig symbols.
Signed-off-by: Philip Withnall <withnall@endlessm.com>
https://bugzilla.gnome.org/show_bug.cgi?id=792363
|
| |
|
|
|
|
|
| |
Keep the autotools and meson builds in sync, as far
as requirements are concerned.
|
|
|
|
| |
We've added new API for font variations.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Changes from 1.40.8:
- Build and dist fixes
- Fix build on Windows with MSVC (#783274)
|
|
|
|
|
|
|
|
| |
We can just force-include msvc_recommended_pragmas.h, which will
silence the unwanted noise and point out to us potential problems in the
code.
https://bugzilla.gnome.org/show_bug.cgi?id=783274
|
| |
|
|
|
|
|
|
|
|
|
|
| |
FreeBSD libc assumes defining _POSIX_C_SOURCE without specifying a
version means a pre-C89 environment with the oldest version of POSIX
standard, IEEE Std 1003.1-1988, causing several functions used by pango
to be undeclared. To resolve this problem, simply provide a version
number when defining _POSIX_C_SOURCE.
https://bugzilla.gnome.org/show_bug.cgi?id=783428
|
| |
|
|
|
|
|
| |
"soversion:" is for the version placed in the soname. The full library
revision goes into "version:". This affects the symlinks, too.
|
|
|
|
|
|
| |
The Pango pkg-config files are generated depending on the platform we
are building for, and backends we are using. Only the `pango.pc` file is
generated unconditionally.
|
| |
|
| |
|
| |
|
|
Meson is a meta build system that is:
- fast
- simpler to understand and use
- portable to multiple platforms through different backends
- well integrated with the GNOME platform
- well maintained
Using Meson allows us to build Pango much more quickly, and on all the
platforms we currently target, without any loss of functionality,
compared to Autotools.
Some timing comparisons with hot ccache for both build systems:
* autogen.sh: * meson
real 0m11.149s real 0m2.525s
user 0m8.153s user 0m1.609s
sys 0m2.363s sys 0m1.206s
* make -j$(($(nproc) + 2)) * ninja
real 0m9.186s real 0m3.387s
user 0m16.295s user 0m6.887s
sys 0m5.337s sys 0m1.318s
--------------------------------------------------------------
* autotools * meson + ninja
real 0m27.669s real 0m5.772s
user 0m45.622s user 0m8.465s
sys 0m10.698s sys 0m2.357s
System: Intel Core i7-7500U, SSD, 16GB of RAM
|