summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* README.win32: Update build instructionsdrop-autotoolsChun-wei Fan2018-07-301-24/+54
| | | | | Let people know that it is possible to build Pango using Meson on Windows, and let people know how it is done.
* build: Remove Visual Studio projectsChun-wei Fan2018-07-3044-4324/+0
| | | | | | | | 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.
* Drop autotoolsMatthias Clasen2018-07-1819-2573/+0
| | | | We will just use meson from now on.
* 1.42.21.42.2Matthias Clasen2018-07-183-2/+9
|
* Add pango-list to meson buildMatthias Clasen2018-07-181-0/+22
|
* [fc] Speed-up font face enumerationBehdad Esfahbod2018-07-161-56/+38
| | | | | | | | 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.
* [pango-list] Don't print sizesBehdad Esfahbod2018-07-161-1/+1
| | | | | They are not used in font chooser, so don't call them. My goal for pango-list was to measure font chooser performance...
* [fc] Remove ancient #ifdef FC_* conditionalsBehdad Esfahbod2018-07-161-32/+1
|
* Merge branch 'wip/nirbheek/meson-declare-dependency' into 'master'Matthias Clasen2018-07-161-0/+12
|\ | | | | | | | | meson: Add not-found dependencies for conditional declared deps See merge request GNOME/pango!6
| * 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.
* | Merge branch 'requires-private-fribidi' into 'master'Matthias Clasen2018-07-160-0/+0
|\ \ | | | | | | | | | | | | | | | | | | pango.pc.in: Add fribidi to Requires.private Closes #301 See merge request GNOME/pango!5
| * | pango.pc.in: Add fribidi to Requires.privateSimon McVittie2018-07-011-0/+1
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Requires.private fribidiBehdad Esfahbod2018-07-111-0/+1
| | | | | | | | | | Fixes https://gitlab.gnome.org/GNOME/pango/issues/301 Fixes https://gitlab.gnome.org/GNOME/pango/issues/305
* | [fc] List all bitmap sizes of FcPatternBehdad Esfahbod2018-07-081-2/+4
| | | | | | | | | | Apple Color Emoji for example has multiple strikes... We were only listing first.
* | [pango-list] Minor fixupBehdad Esfahbod2018-07-081-2/+2
| |
* | [pango-list] Improve output formatBehdad Esfahbod2018-07-081-12/+30
| | | | | | | | | | | | 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...
* | [utils] Add pango-list commandline toolBehdad Esfahbod2018-07-082-0/+91
| | | | | | | | | | My main interest is performance of font listing API. Figured I can just make a tool out of it. Output format to be improved.
* | [pango-view] Remove unused include stdio.hBehdad Esfahbod2018-07-081-1/+0
| |
* | Rename pango-view/ dir to utils/Behdad Esfahbod2018-07-0841-4/+4
| |
* | Minor; use default hb_buffer_t Unicode funcsBehdad Esfahbod2018-07-081-1/+0
| |
* | Make pango_bidi_type_for_unichar() not crash with new FriBidiBehdad Esfahbod2018-07-071-1/+3
| | | | | | | | | | This function has not been updated for latest FriBidi. Should add new types and / or deprecate this function.
* | Short-circuit FriBidi call if paragraph is unidirectionalBehdad Esfahbod2018-07-071-5/+64
|/ | | | | | | | | | | | | | | 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.
* Merge branch 'ci' into 'master'Khaled Hosny2018-05-261-0/+25
|\ | | | | | | | | | | | | Initial CI config Closes #310 See merge request GNOME/pango!2
| * Initial CI configKhaled Hosny2018-05-271-0/+25
|/ | | | Fixes https://gitlab.gnome.org/GNOME/pango/issues/310
* Merge branch '304-fix-linker-options-on-darwin' into 'master'Khaled Hosny2018-05-261-1/+1
|\ | | | | | | | | | | | | Resolve "Fix linker options on Darwin" Closes #304 See merge request GNOME/pango!1
| * build: Correct Darwin linker optionsPhilip Chimento2018-05-221-1/+1
|/ | | | | | The Darwin linker doesn't want equal signs here. Closes: #304
* Restore scaling of CoreText fonts.John Ralls2018-05-086-19/+33
| | | | Fixes bug 787867.
* build: Bump required harfbuzz versionKalev Lember2018-05-072-2/+2
| | | | We use hb_variation_t that was added in harfbuzz 1.4.2.
* Revert "Add fribidi dependency to pango.pc"Khaled Hosny2018-04-251-1/+1
| | | | This reverts commit 68cc13d04ed9d89609727f4448e5d2e08dd6626c.
* Use non-deprecated libthai API when availableKhaled Hosny2018-04-113-5/+19
| | | | I’m assuming the new API is thread-safe as claimed.
* pangowin32: fix script cache hash key for 64bit buildsChristoph Reiter2018-04-091-5/+25
| | | | | | | | | | | | | | 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
* meson: skip pangoxft headers for the Windows gtk-doc buildChristoph Reiter2018-04-091-0/+5
| | | | | | | 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
* build: move usp10 before gdi32Christoph Reiter2018-04-093-3/+5
| | | | | | | | | | | | | | | 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
* Remove stray letters in NEWSKhaled Hosny2018-04-081-2/+2
| | | | Introduced in 46f8583c87c45b304ac98d06005c49df67d53b07
* 1.42.11.42.1Matthias Clasen2018-04-073-4/+9
|
* meson: don't use quotes in help2man options to work around a MinGW Python bugChristoph Reiter2018-04-051-2/+2
| | | | | | | | | | 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
* win32: remove redundant function declarationsChristoph Reiter2018-04-052-7/+0
| | | | | | The meson build uses -Werror=redundant-decls and fails. https://bugzilla.gnome.org/show_bug.cgi?id=795012
* pangowin32-fontmap.c: Add an Emoji font familyChun-wei Fan2018-03-311-1/+2
| | | | | | | | | | | | | | | | | | | 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
* tests/markup-parse.c: Fix build on Visual StudioChun-wei Fan2018-03-301-1/+7
| | | | | Visual Studio does not ship with a unistd.h, so include the proper header on Windows when unistd.h is not found on Windows.
* build: Add fallbacks for finding non-GNOME deps on MSVCChun-wei Fan2018-03-304-12/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* meson: Check for HarfBuzz and FontConfig for PangoFT2Chun-wei Fan2018-03-306-14/+27
| | | | | | | | | | | | | | | | | | | | | 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
* Update version number in meson.build as wellKhaled Hosny2018-03-271-1/+1
| | | | | Follow up of commit d4f3370336a40907f528a41e75a55fe4f50c1a11. Maintaining two build systems is tricky!
* Add fribidi dependency to pango.pcKhaled Hosny2018-03-261-1/+1
| | | | Fixes https://bugzilla.gnome.org/show_bug.cgi?id=794570
* Fix view-cairo on WindowsPatrick Griffis2018-03-171-6/+4
|
* Drop mention of long gone filesKhaled Hosny2018-03-142-3/+0
|
* Modules are long goneKhaled Hosny2018-03-144-9/+0
|
* 1.42.01.42.0Matthias Clasen2018-03-122-2/+6
|
* Update README a bitKhaled Hosny2018-02-171-34/+4
| | | | Fix FontConfig casing, remove a dead link and outdated sections.
* 1.41.11.41.1Matthias Clasen2018-02-133-2/+9
|
* Disable -Werror=undefMichael Catanzaro2018-02-121-1/+1
|