2021-01-27 Kjell Ahlstedt 2.46.0 2021-01-17 Kjell Ahlstedt Fix build-deprecated-api=false * pango/src/layout.ccg: The wrong get_iter() overload was deprecated. 2021-01-17 Kjell Ahlstedt Coverage: Deprecate create(bytes, n_bytes), max(), to_bytes() The corresponding C functions are deprecated in pango. 2021-01-17 Kjell Ahlstedt LayoutRun: Make most methods public They became private by mistake 12 years ago in commit d5781fecebf7eeb5bafbfb875027f6f1707a2bf1. Fixes #11 2021-01-17 Kjell Ahlstedt Layout: Add get_const_line() and get_const_lines() Fixes #10 2021-01-17 Kjell Ahlstedt 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 Add Layout::set/get_line_spacing() See #9 2021-01-16 Kjell Ahlstedt 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 LayoutRun: Fix a memory leak in split() 2021-01-16 Kjell Ahlstedt 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 Renderer: Document get_matrix() 2021-01-16 Kjell Ahlstedt Font, FontFace, FontFamily, FontMetrics: Add new methods 2021-01-15 Kjell Ahlstedt Attribute: Add Overline and ShowFlags enums and some create*() methods See #9 2021-01-15 Kjell Ahlstedt FontMap, FontFamily: Add TODO comments 2021-01-15 Kjell Ahlstedt FontMap: Remove obsolete _IGNORE() 2021-01-15 Kjell Ahlstedt docs/reference/Doxyfile.in: Remove obsolete entries 2021-01-15 Kjell Ahlstedt Regenerate docs.xml and .defs files Regenerated while the pango-1-46 branch was checked out from pango. 2020-12-13 Kjell Ahlstedt 2.42.2 2020-12-13 Kjell Ahlstedt pango/pangomm.h: Show how to use pangomm when building with Meson 2020-10-01 Kjell Ahlstedt Meson build: Fix versioning on macOS See libsigcplusplus, pull request 65 2020-08-31 Chun-wei Fan 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 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 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 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 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 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 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. 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 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 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: 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 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: 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 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-1.4.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-04-07 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-04-07 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. * untracked/README: Mention check-dllexport-usage.py. 2020-04-04 Chun-wei Fan 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 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 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 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 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 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 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 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 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 NMake Makefiles: Fix build instruction info display Make up the missing escape carats... 2020-03-21 Kjell Ahlstedt 2.42.1 2020-03-21 Kjell Ahlstedt README: Describe building with Meson and Autotools