2021-01-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.46.0

2021-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build-deprecated-api=false

  * pango/src/layout.ccg: The wrong get_iter() overload was deprecated.

2021-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Coverage: Deprecate create(bytes, n_bytes), max(), to_bytes()

  The corresponding C functions are deprecated in pango.

2021-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  LayoutRun: Make most methods public

  They became private by mistake 12 years ago in
  commit d5781fecebf7eeb5bafbfb875027f6f1707a2bf1.
  
  Fixes #11

2021-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Layout: Add get_const_line() and get_const_lines()

  Fixes #10

2021-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Layout: Speed up get_log_attrs()

  Call pango_layout_get_log_attrs_readonly() instead of
  pango_layout_get_log_attrs(). The PangoLogAttr structs
  will then be copied once instead of twice.

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Layout::set/get_line_spacing()

  See #9

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Wrap pango_shape_with_flags()

  * pango/src/glyphstring.[ccg|hg]: Add constructor
  GlyphString(const Glib::ustring& item_text,
  const Glib::ustring& paragraph_text, const Analysis& analysis,
  ShapeFlags flags = SHAPE_NONE).
  * pango/src/item.[ccg|hg]: Add enum ShapeFlags and
  shape(const Glib::ustring& item_text, const Glib::ustring& paragraph_text,
  ShapeFlags flags = SHAPE_NONE).
  * tools/m4/convert_pango.m4: Add conversions for ShapeFlags.
  
  See #9

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  LayoutRun: Fix a memory leak in split()

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  LayoutIter: Fix get_run()

  get_run() shall call pango_layout_iter_get_run_readonly() and
  take a copy of the returned PangoLayoutRun.

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Renderer: Document get_matrix()

2021-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Font, FontFace, FontFamily, FontMetrics: Add new methods

2021-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Attribute: Add Overline and ShowFlags enums and some create*() methods

  See #9

2021-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  FontMap, FontFamily: Add TODO comments

2021-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  FontMap: Remove obsolete _IGNORE()

2021-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entries

2021-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Regenerate docs.xml and .defs files

  Regenerated while the pango-1-46 branch was checked out from pango.

2020-12-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.42.2

2020-12-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  pango/pangomm.h: Show how to use pangomm when building with Meson

2020-10-01  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Fix versioning on macOS

  See libsigcplusplus, pull request 65

2020-08-31  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix gendef invocation

  We ought to pass in the DLL filename with the '.dll' extension to gendef, not
  just the .lib filename.

2020-07-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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-22  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix previous commit

  We should also account for Visual Studio 2015 when we use 'USE_MESON_LIBS' with
  'USE_COMPAT_LIBS' as well...

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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 one should also use the same compiler to
  build pangomm, glibmm and cairomm.

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  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.

2020-06-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  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  <fanchunwei@src.gnome.org>

  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 2015 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 2015-built pangomm when building
  items dependening on pangomm with Visual Studio 2017 or 2019.  This is
  unfortunate as Microsoft did try hard to make interoperating between binaries
  built with Visual Studio 2015, 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 2015, 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  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019

  It was found that we cannot rely on the fact that Visual Studio
  2015~2019 tried very hard to be binary compatible, as there can be
  corner cases when linking against pangomm built with Visual Studio 2015
  with builds done by Visual Studio 2017 and 2019 where the code will fail to
  link and the DLLs are therefore not ABI-compatible.  Note that the
  libsigc++ DLLs, however, are ABI compatible between these 3 Visual
  Studio versions.
  
  As a result, for the DLL and LIB names, use 'vc140' for Visual Studio
  2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for
  Visual Studio 2019 builds, according to the toolset versions as defined
  by Microsoft.
  
  For people that may have previously built pangomm with Visual Studio 2017
  or 2019, which had 'vc140' in the built .lib and DLL, an NMake option
  'USE_COMPAT_LIBS' is added to make building such binaries with 'vc140'
  easier, if needed.

2020-05-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  Meson: Ignore warning C4275 on Visual Studio

  Since we are basically using __declspec(dllimport) from dependent
  -mm libraries that are on the same CRT, we could just disregard this
  warning.

2020-05-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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  <fanchunwei@src.gnome.org>

  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  <kjellahlstedt@gmail.com>

  pango/meson.build: Minor fix of pangomm-1.4.pc

  libdir=${exec_prefix}/lib, as when it's generated with Autotools.

2020-04-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  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  <kjellahlstedt@gmail.com>

  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-04-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  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-04-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  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.
  * untracked/README: Mention check-dllexport-usage.py.

2020-04-04  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Detect whether we can use __declspec(dllexport)

  The generated pangomm headers must be generated with a recent gmmproc so
  that we may ensure that all the needed classes, functions and methods
  are marked with PANGOMM_API, so that we can build pangomm without using
  gendef.exe.
  
  If the headers are generated with an older gmmproc, then we build
  pangomm using gendef.exe, as we did before.

2020-04-04  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Build pangomm as a shared lib if possible

  Make the build files directly build pangomm as a shared library on:
  -All non-Visual Studio builds, as we did initially.
  -Visual Studio builds that have the headers generated from their .hg
   counterparts with gmmproc 2.64.3 or later.  gmmproc 2.64.3 has the
   updates that are necessary to have the generated headers contain build
   macros that could be used to export symbols using compiler directives.
   If it is found that an older gmmproc is being used, fall back to use
   gendef.exe, as we did before, by defining PANGOMM_USE_GENDEF.

2020-04-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  pango/src/*.hg: Mark _WRAP_ENUM with decl_prefix

  This way, with the updated gmmproc, we can export the template<> classes
  using PANGOMM_API as well.

2020-04-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  pango/pangomm/*.h: Decorate APIs with PANGOMM_API

  This prepares for the export of symbols using compiler directives rather
  than using gendef.exe.

2020-04-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  pango/src/*.hg: Decorate classes and functions with PANGOMM_API

  This prepares for using compiler directives to export symbols rather
  than using gendef.exe.

2020-04-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  pango/pangommconfig.h.*: Add PANGOMM_API

  This prepares for decoration of the various APIs in pangomm so that we
  can export symbols at least on Visual Studio buids using compiler
  directives, without the need of gendef.exe, if the headers were
  generated from their respective *.hg counterparts with gmmproc 2.64.0 or
  later.

2020-03-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Use /utf-8 in Visual Studio builds

  ...if it is available.  Also disable warning C4828 as we will get that warning
  when building gendef.exe with /utf-8.

2020-03-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Silence warnings with latest glibmm stable

  The glibmm headers (and pangomm headers in the near future) use compiler
  directives to control symbol export, so we can safely ignore warnings
  C4251 and C4275 as we are certain that we are indeed using these
  compiler directives to import (and later, export) symbols in our builds.

2020-03-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Look also for headers in untracked/

  This way, we fix the NMake builds from Meson-generated dist tarballs.

2020-03-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix build instruction info display

  Make up the missing escape carats...

2020-03-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.42.1

2020-03-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README: Describe building with Meson and Autotools