2020-12-19 Kjell Ahlstedt 2.48.0 2020-12-18 Kjell Ahlstedt Regenerate docs.xml and .defs files 2020-12-11 Kjell Ahlstedt Change ABI to pangomm-2.48; Use glibmm-2.68 instead of glibmm-2.66 So we can use the 2.44-2.46 version numbers for stable releases in the pangomm-1.4 ABI series. We've done similar ABI name changes before. 2020-11-27 Kjell Ahlstedt Add Layout::set/get_line_spacing() See #9 2020-11-27 Kjell Ahlstedt configure.ac, meson.build: Require pangocairo >= 1.45.1 Overline support, such as pango_attr_overline_new(), was added in pango 1.45.1. The requirement should have been bumped when those functions were wrapped. 2020-11-16 Kjell Ahlstedt Wrap pango_shape_with_flags() * configure.ac: * meson.build: Require pangocairo >= 1.44.3 * pango/src/glyphstring.[ccg|hg]: Add constructor GlyphString(const Glib::ustring& item_text, const Glib::ustring& paragraph_text, const Analysis& analysis, ShapeFlags flags = ShapeFlags::NONE). * pango/src/item.[ccg|hg]: Add enum ShapeFlags and shape(const Glib::ustring& item_text, const Glib::ustring& paragraph_text, ShapeFlags flags = ShapeFlags::NONE). * tools/m4/convert_pango.m4: Add conversions for ShapeFlags. See #9 2020-10-07 Kjell Ahlstedt Bump version to 2.43.3 Even micro version in released versions, odd micro version in Git. See https://wiki.gnome.org/MaintainersCorner/Releasing (which says minor version in one sentence where it should say micro version) 2020-10-01 Kjell Ahlstedt Meson build: Fix versioning on macOS See libsigcplusplus, pull request 65 2020-07-23 Chun-wei Fan NMake Makefiles: Use Meson-style DLL and .lib naming if requested To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS' is specified in the NMake command line, build the DLLs and .lib's that are named like the Meson counterparts. Binaries built with Meson+Visual Studio and the ones that are built via NMake using 'USE_MESON_LIBS' are interchangeable, provided that they are built with the same Visual Studio version. 2020-07-23 Chun-wei Fan NMake Makefiles: Fix generating pangomm[config.h|.rc] The previous additions to generate those files accidentally made the build attempt to generate them, even if done from a release tarball that is done by the autotools builds. This will fix this situation, and improve the situation that if pangomm.rc or pangommconfig.h needs to be generated, these files will be generated automatically 2020-07-22 Kjell Ahlstedt LayoutIter: Fix get_run() and get_line() get_run() shall call pango_layout_iter_get_run_readonly() and take a copy of the returned PangoLayoutRun. Make proper const and non-const versions of get_line(). 2020-07-22 Kjell Ahlstedt LayoutRun: Rename to GlyphItem PangoLayoutRun was renamed to PangoGlyphItem in the year 2002. For backward compatibility PangoLayoutRun is a typedef of PangoGlyphItem. No such backward compatibility is needed in this version of pangomm. 2020-07-22 Kjell Ahlstedt Renderer: Add vfuncs See #9 2020-07-22 Kjell Ahlstedt Font, FontFace, FontFamily, FontMetrics: Add new methods 2020-07-22 Chun-wei Fan NMake Makefiles: Link with giomm ...since we are now using items from giomm since commit 17021092, and ensure that we do indeed refer to the glibmm (giomm) master headers as we are using items from 2020-07-20 Kjell Ahlstedt Attribute: Add Overline and ShowFlags enums and some create*() methods Fixes #9 2020-07-20 Kjell Ahlstedt Regenerate docs.xml and .defs files 2020-07-19 Andreas Persson Let FontMap and FontFamily implement ListModel Let the FontMap and FontFamily classes implement the Gio::ListModel interface, just as the C level pango classes do. For this, a dependency to giomm was added. Wrap CairoFontMap::get_default(). 2020-07-08 Chun-wei Fan NMake Makefiles: Fix headers search We ought to look in $(PREFIX)\include\harfbuzz and $(PREFIX)\include, as the HarfBuzz and Cairo headers can be found in these respective locations. 2020-07-08 Chun-wei Fan NMake Makefiles: Support ARM64 Windows builds This will make the NMake Makefiles capable of building ARM64 binaries of pangomm, which can be used on Windows 10 on ARM systems. 2020-06-30 Chun-wei Fan README.win32: Update Meson build info It is now possible to build Pango directly from a GIT checkout on Visual Studio builds for a while, so let people know about this. Also note that glibmm and cairomm should be built with Meson in order to use the Meson build files for pangomm, and that it is recommended to use the same compiler to build pangomm, glibmm and cairomm. 2020-06-30 Chun-wei Fan NMake Makefiles: Use the /utf-8 compiler flag This makes it easier to build pangomm on non-Western locales, without requiring to change the "Locale settings for non-Unicode programs" to English, which will require a restart, since warning (error) C4819 can be otherwise triggered, which can indicate broken builds due to Unicode handling issues in the compiler. 2020-06-30 Chun-wei Fan NMake Makefiles: Apply toolset version for Meson-built deps As the Meson build files for Visual Studio apply the toolset version in the .lib filenames by default, apply the toolset version in the Meson-built -mm .lib files that we link in, just as we did when we we link in the -mm .lib files that was built with NMake, by default. The option 'USE_COMPAT_LIBS' will also mean that we will use the former behavior when we link in the Meson-built -mm .lib's, just as we did when we link in the NMake-built -mm .lib's. Also fix the case also when the 'USE_COMPAT_LIBS' option is used and when 'USE_MESON_LIBS' is not used on Visual Studio 2017, where the toolset version was not correctly applied. 2020-06-29 Kjell Ahlstedt docs/reference/: Update for Doxygen >= 1.8.16 * docs/reference/meson.build: Doxygen 1.8.16 and later does not store tag file names in the html files. This requires changes in meson.build and in doc-install.pl (in mm-common). Otherwise references to other modules won't be updated in the html files when they are installed. * docs/reference/Doxyfile.in: Remove PERL_PATH and MSCGEN_PATH. Doxygen since version 1.8.0 does not use them. 2020-06-29 Chun-wei Fan Meson/Visual Studio builds: Include toolset version by default This makes the built DLL and .lib's contain the toolset version if the build is carried out using Visual Studio 2017 or later, unless the 'msvc14x-parallel-installable' option is set to be false during configuration. The reasoning behind this change is that there can be subtle problems when, for instance, one tries to link to a Visual Studio 2017-built pangomm when building items dependening on pangomm with Visual Studio 2019. This is unfortunate as Microsoft did try hard to make interoperating between binaries built with Visual Studio 2017 and 2019 as easy as possible in terms of ABI and API, but unfortunately this can hit the corner cases where this compatibility does not work. As the name suggests, this attempts to make Visual Studio 2017 and 2019 builds share a single set of underlying C DLLs easier, while avoiding breakages caused by such subtle differences. 2020-06-29 Chun-wei Fan meson.build: Check for /utf-8 on Visual Studio Enable this compiler flag on Visual Studio if it is supported, so that building under non-English (East Asian) locales is made easier, which helps to avoid the C4819 error under such situations, due to a Unicode handling issue in the compiler when running under such locales 2020-06-29 Chun-wei Fan Meson: Use pkg-config to find glibmm and cairomm for all builds Stop manually looking for glibmm and cairomm for better consistency, as: -Items that depended on glibmm which added Meson build support after glibmm, such as gtkmm and libxml++ also required glibmm to be found via pkg-config files, and they still had NMake Makefile support for Visual Studio builds. For items that use cairomm directly, this will be the case as well. -There could be corner cases on the glibmm and cairomm libraries that pangomm links to in terms of ABI compatibility between Visual Studio 2015, 2017 and 2019. 2020-06-16 Chun-wei Fan NMake Makefiles: Use toolset version in DLL/.lib naming Instead of using the Visual Studio version ('vc150' for Visual Studio 2017), use the toolset version ('vc141' for Visual Studio 2017 and 'vc142' for Visual Studio 2019, as defined by Microsoft) so that we are more in-line with what is now done in the pangomm-2-42 branch. If using the old naming convention is desired, an NMake command line option 'USE_COMPAT_LIBS' have been added-note that this will require glibmm, cairomm, and libsigc++ to be built with that option enabled. 2020-05-05 Chun-wei Fan meson: Clean up Visual Studio bits Streamline how we look for the dependencies manually, by using the 'has_headers:' attribute of cpp_compiler.find_library(), so that we can check for the presence of the headers at the same time as looking for the glibmm, cairomm and/or libsigc++ headers. 2020-05-05 Chun-wei Fan Meson/Visual Studio: Support cairomm lookup using pkg-config cairomm recently received Meson build support, which will generate the pkg-config files for us, so try to look for cairomm first using pkg-config, before looking for it manually. Since cairomm's pkg-config file also pulls in libsigc++, we can also skip looking for libsigc++ if we found cairomm via pkg-config. 2020-05-05 Chun-wei Fan NMake Makefiles: Support Meson-built cairomm Allow linking directly to Meson-built cairomm when using the USE_MESON_LIBS option when running NMake. 2020-04-28 Kjell Ahlstedt pango/meson.build: Minor fix of pangomm-2.44.pc libdir=${exec_prefix}/lib, as when it's generated with Autotools. 2020-04-11 Chun-wei Fan pango/src/fontdescription.hg: Mark operators with PANGOMM_API We are using a _WRAP_EQUAL here which generates operator== and operator!= overloads that actually need to be exported. So, pass in a function decorator to _WRAP_EQUAL 2020-04-07 Kjell Ahlstedt Meson build: If not maintainer-mode, check that generate-binding.py exists Trying to build with maintainer-mode=false from a tarball generated with Autotools will fail with a proper error message. Fixes #6 2020-03-31 Kjell Ahlstedt Meson build: Set default value of the 'warnings' option to 'min' And add 'dist-warnings' with default value 'fatal'. It's used when a tarball is tested by 'ninja dist' or 'meson dist'. https://mail.gnome.org/archives/gtkmm-list/2020-March/msg00025.html Add a better error message if mm-common-get is required but not found. 2020-03-31 Chun-wei Fan pango/src/*.hg: Mark _WRAP_ENUM with decl_prefix This way, we can use compiler directives to export the symbols for the _WRAP_ENUM-generated template<> classes. 2020-03-30 Chun-wei Fan NMake Makefiles: Fix build instruction info display Make up the missing escape carats... 2020-03-29 Kjell Ahlstedt Meson build: Avoid some recompilations, and other changes * MSVC_NMake/filelist.am: Remove pangomm/copy-pangommconfig-h.py. * MSVC_NMake/pangomm/copy-pangommconfig-h.py: Removed file. * MSVC_NMake/pangomm/meson.build: Copy pangommconfig.h with configure_file(). * Makefile.am: Distribute tools/dummy-header.py instead of tools/dist-cmd.py. * docs/reference/meson.build: Rename a variable. * meson.build: Rename some variables. Always set gmmproc_dir. In maintainer-mode, show its value in the summary. * pango/meson.build: Set pangommconfig_h. * pango/pangomm/meson.build: Create dummy_header.h, depending on all generated headers. It guarantees that all generated headers are built before pangomm_library is built, at the same time avoiding unnecessary recompilations. * tools/dist-cmd.py: Removed file. It's not necessary in add_dist_script() when the first parameter is python3.path(). * tools/dummy-header.py: New file.