2026-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.11

2026-02-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build with build-deprecated-api=false

  * gdk/src/window.hg: get_frame_extents() const: Remove constversion.
  * gtk/src/messagedialog.hg: get_image() const: Add missing 'deprecated'.
  
  Add _CONFIGINCLUDE(gdkmmconfig.h) or _CONFIGINCLUDE(gtkmmconfig.h)
  in deprecated header files. These files are processed by Doxygen,
  but deprecated API shall not be included in the generated documentation
  when deprecated API is not built.
  
  Add #ifndef GDKMM_DISABLE_DEPRECATED or #ifndef GTKMM_DISABLE_DEPRECATED
  around inclusion of deprecated header files. Deprecated header files are
  generated by gmmproc, but they are not installed.

2026-02-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::GestureMultiPress: Improve the class description

  Note that Gesture::signal_cancel() is sometimes useful.
  
  Fixes #168

2026-01-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Don't require the 'dot' command

  Make it possible to build documentation without the dot command.
  Set the HAVE_DOT option in Doxyfile during configuration.
  In Autotools builds it's still unconditionally YES.
  The inheritance diagrams don't look as nice without the dot
  command from the GraphViz package.

2026-01-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  Visual Studio builds: Update build info

  Update the build information so that the updates to the NMake Makefiles are
  reflected, and people know better how options can be used in the NMake
  Makefiles.

2026-01-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Make build process more robust

  When we build the code, we generate object and target listings into temporary
  Makefile snippets that is to be included later in the build, but this poses an
  issue when another build is attempted using the NMake Makefiles when a build is
  in progress.
  
  To improve on this, make the snippets contain the toolset, target platform and
  configuration in their filenames, so that this situation can be improved
  without impacting things much.

2026-01-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Consolidate items and add flexibility

  This makes the items in the NMake Makefiles more consolidated so that it makes
  things easier to maintain, as well as adding more flexibility in finding the
  headers, .lib's, tools and scripts that are needed to build gtkmm.
  
  With this, one can specify directories as needed to locate dependencies'
  headers, lib's and scripts individually and/or as a whole, and this will also
  enable one to not have to add the 'bin' directory of a Cygwin or MSYS2/MSYS64
  installation in one's %PATH%.
  
  Copy the .m4 files for gtkmm like what is done everywhere else, i.e.
  in $(PREFIX)\lib\gtkmm-3.0\proc\m4.
  
  Also standardize on the '/GL' compiler flag and the '/LTCG' linker flag,
  for better code optimization, unless:
  -'gendef' is being used, since it will not work with code compiled with '/GL'
   and '/LTCG' expects code to be compiled with '/GL'
  -32-bit builds of gtkmm3-demo.exe with Visual Studio 2017 or earlier, due to
  compiler issues, when using '/GL'

2026-01-13  Chun-wei Fan  <fanc999@yahoo.com.tw>

  gendef.cc: Filter out Avx2WmemEnabledWeakValue

  Later Windows SDKs have this symbol defined as __declspec(selectany) to
  implementing C++20 modules, which will cause gendef to be confused.
  
  We don't actually need this symbol in our gtkmm .lib when we are building with
  gendef, so just filter this symbol out.

2026-01-13  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Mention Visual Studio 2026

  Also drop the info on Visual Studio 2013 builds and mention 2015 or later is
  required.

2026-01-13  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Distinguish Visual Studio 2026 builds

  ...from Visual Studio 2022 builds, by appending the appropriate toolset version
  ('vc145').
  
  Also drop some cruft as we really need Visual Studio 2015 or later

2026-01-13  Chun-wei Fan  <fanc999@yahoo.com.tw>

  meson.build: Distinguish Visual Studio 2026 builds

  ...from Visual Studio 2022 builds, by appending the appropriate toolset version
  ('vc145').

2025-12-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::GestureSingle: Update class description

2025-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Use SPDX expression for license

  This is the recommended format.
  See https://gitlab.freedesktop.org/cairo/cairomm/-/merge_requests/33

2025-09-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Ignore deprecation of GdkPixbufAnimation and GdkPixbufAnimationIter

  GdkPixbufAnimation and GdkPixbufAnimationIter are deprecated
  since gdk-pixbuf 2.44.
  
  * gdk/gdkmm/wrap_init.h: Ignore deprecation of gdk_*_get_type()
  in Gdk::wrap_init.cc.
  * gdk/src/pixbufanimation.ccg:
  * gdk/src/pixbufanimationiter.ccg: Ignore deprecation.
  * gdk/src/pixbufloader.[ccg|hg]: Ignore deprecation of
  gdk_pixbuf_loader_get_animation().

2025-06-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gdk::Pixbuf: Ignore deprecation of gdk_pixbuf_new_from_xpm_data()

2025-05-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove obsolete FSF (Free Software Foundation) address

2025-03-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.10

2025-03-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Use the Python installation that Meson uses

  See glibmm!67

2025-03-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove ChangeLog.pre-3-8-1

2025-02-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  doc: Update aboutdialog1.png

  * docs/reference/images/widgets/aboutdialog1.png: Update to gtkmm3 look.
  The old image showed the obsolete web address gtkmm.org.
  * docs/reference/images/widgets/comboboxentry1.png:
  * docs/reference/images/widgets/toolbar1.png:
  * docs/reference/images/widgets/toolbutton1.png: Removed. They are not used.

2025-02-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Add install_tag keyword argument, require meson >= 0.60

2025-01-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Add .gitlab-ci.yml

  Necessary when making a release.
  See https://handbook.gnome.org/maintainers/making-a-release.html

2025-01-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson: Require meson version >= 0.58

  This is possible when meson version >= 0.58:
  * Remove the can_add_dist_script variable.
  * dependency().get_variable(pkgconfig: 'varname', internal: 'varname') ->
    dependency().get_variable('varname').
  
  Fixes not requiring meson version >= 0.58:
  * If GTKMM_NO_DIST_TESTS is defined, 'meson dist' does not run test programs.
    Useful when doing it in a CI job.
  * Don't distribute gtkmm.doap.

2024-12-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Replace gtkmm.org by gtkmm.gnome.org

2024-12-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove unsupported entries

2024-07-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Don't link to removed parts of gnome.org

  Don't link to library.gnome.org or removed parts of developer.gnome.org.
  Require python3 >= 3.7. That's what Meson requires.

2024-06-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README.md: Remove reference to developer-old.gnome.org

2024-06-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entries

2024-06-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtkmm.h: Don't link to library.gnome.org/devel

  The gtkmm3 tutorial is not available there since developer-old.gnome.org
  was removed.

2024-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.9

2023-12-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::ScrolledWindow: Update the class description

  Make it similar to the description of GtkScrolledWindow.

2023-12-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Don't fail if warning_level=everything

  See !87

2023-08-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tests/gdk_rgba: Avoid some comparisons for exact equality

  See !77

2023-08-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk_docs.xml: Update documentation of GtkClipboard

  * gtk/src/gtk_docs.xml: Update the documentation of GtkClipboard
  signal and functions.
  * tools/gen_scripts/gtk_generate_docs.sh: Exclude gtkclipboard-quartz.c.
  It can hide better descriptions in gtkclipboard.c.

2023-08-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.8

2023-07-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove AUTHORS, HACKING, README.SUN; add info to README.md

  Fixes #140

2023-07-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update gtkmm.doap

2023-06-28  Chun-wei Fan  <fanchunwei@src.gnome.org>

  README.win32: Convert to MarkDown

  Make it easier on the eye in terms of formatting.  Also update some info there
  in particular with Visual Studio builds so that the current situation is better
  reflected

2023-06-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/m4/class_shared.m4: Add a comment

2023-05-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gtk/gtkmm/base.h: Fix GTK_VERSION_GT_MICRO

  GTK_MICRO_VERSION>minor -> GTK_MICRO_VERSION>micro
  Fixes #135

2023-05-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Doxyfile.in: Remove obsolete entries

2023-05-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README.md: meson -> meson setup

2023-01-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Simplify test if file exists

2023-01-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Simplify lookup of python command

  See libsigcplusplus PR#83

2023-01-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Don't copy files with configure_file()

  It's deprecated from Meson 0.64. The replacement, fs.copyfile(),
  is not useful here. It only copies from the source directory to
  the build directory.

2023-01-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Fix the evaluation of is_git_build on Windows

  Fixes #131

2022-09-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Compress the Python code for is_git_build

2022-09-26  William Roy  <wroy@proton.me>

  Fix meson.build .git check

  Co-authored-by: Kjell Ahlstedt <kjellahlstedt@gmail.com>

2022-09-26  William Roy  <wroy@proton.me>

  Detect if we build from a git subtree

2022-09-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Convert README to README.md

2022-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.7

2022-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::TextView::get_tabs(): Plug a memory leak

  gtk_text_view_get_tabs() returns a copy (transfer full).

2022-08-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Dialog demo: Add a non-modal dialog

  Fixes #123

2022-08-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Menu: Fix build with -Dbuild-deprecated-api=false

  Fixes #126

2022-07-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Doxyfile.in: Allow more graph nodes

  Required for Gtk::Widget's inheritance diagram.

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

  Gtk::Widget: Improve the class documentation

2022-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::FileChooserNative: Don't derive a gtkmm__GtkFileChooserNative

  GtkFileChooserNative is declared G_DECLARE_FINAL_TYPE.

2022-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Improved handling of final types

  * tools/m4/class_shared.m4: New file. It's a copy of the corresponding
  file in glibmm. The copy in gtkmm makes it possible to
  use _DO_NOT_DERIVE_GTYPE and _ABI_AS_WITH_DERIVED_GTYPE even if you build
  against a version of glibmm where class_shared.m4 has not been updated.
  * tools/extra_defs_gen/meson.build:
  * tools/m4/filelist.am: Add class_shared.m4.

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

  Meson: Simplify compiler flag checking

  As Kjell suggested, don't use a for loop as get_supported_arguments() works on
  a list and returns a list.

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

  meson/MSVC: Apply /wd4828 when building gendef.exe only

  This warning only applies when compiling gendef.cc, when '/utf-8' is also being
  used, so only apply that compiler flag there.  Move the '/utf-8' to be with the
  other warning-related compiler flags for consistency's sake.
  
  Also, only build gendef.exe if it is really needed, i.e., glibmm's gmmproc is
  not able to produce headers that can export gtkmm's symbols via compiler
  directives.

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

  meson.build/MSVC: Disable more warnings

  These warnings are not ones that we do need to be worried about when building
  gtkmm, and we should extend applying them for the (generated) C sources as well

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

  meson.build/MSVC: Re-order warnings-related c[xx]flags a bit

  Don't (needlessly) repeat checking for the '/utf-8' compiler flag, and
  use the `/wd4267` compiler flag only when building a 64-bit build, since
  warning C4267 only applies for 64-bit builds.
  
  Also, add a short description for the warning-related compiler flags for
  Visual Studio.

2022-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Avoid configuration warnings

2022-05-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.6

2022-04-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Object::_release_c_instance(): Unref orphan managed widgets

  g_object_run_dispose() unrefs a widget only if it has a parent.
  Use g_object_unref() on all widgets without a parent.
  Fixes #115

2022-02-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Check if Perl is required for building documentation

  New versions of mm-common use the Python scripts doc_postprocess.py
  and doc_install.py instead of the Perl scripts doc-postprocess.pl and
  doc-install.pl when documentation is built.

2022-02-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Specify 'check' option in run_command()

  The default value will be changed in future Meson releases.
  
  Don't use deprecated python3.path() and execute(..., gui_app: ...).
  Let import('python').find_installation() always find the python
  installation used to run Meson.
  Fixes #111

2022-02-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  treeiter.hg: Declare TreeValueProxy copy constructor =default

  Avoid warnings from the clang++ compiler.
  
  It's deprecated to implicitly declare a copy constructor, if there
  is a user-deleted (=delete) copy assignment operator.

2021-11-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  build: Support Visual Studio 2022

  Make these builds distinct frmo the Visual Studio 2019 builds.

2021-09-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entry

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

  SizeGroup demo: Derive from Gtk::Window instead of Dialog

  and set active items in the combo boxes, so something is shown.

2021-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.5

2021-05-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Documentation: Let links point to gtkmm-3.0 versions

2021-05-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add dependencies to Doxygen tag files in subprojects

  Doxygen in a main project shall not be called before tag files have been
  created or updated in subprojects.

2021-05-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build as subproject without building documentation

  * meson.build: If mm-common-get is not found in maintainer-mode
  with 'required: false', try with 'required: true'.
  Don't try to use tag_file, if documentation is not built.
  * docs/reference/meson.build: Don't use variables from modules
  that don't define doxytagfile. These are subprojects that don't build
  their documentation.

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

  meson.build: Clean up MSVC build flags

  Like the last NMake Makefiles commit, drop the ignores for warnings C4251,
  C4273 and C4275 as the code is now free of items that trigger those warnings.

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

  NMake Makefiles: Some cleanups and improvements

  Drop the ignores for warnings C4251, C4273 and C4275 from the warnings that we
  want to ignore, as the code is now free of items that trigger those warnings.
  
  Also, reorganize the compiler flags for gtkmm-demo as it is actually the /GL
  flag that triggered the internal compiler error when it is used with /EHsc on
  32-bit Visual Studio 2015 and 2017 builds.  Likewise, disable the /LTCG linker
  option when building Visual Studio 2015 and 2017 32-bit builds.

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

  treemodelcolumn.h: Export class selectively

  This class contains a std::vector<GType> member, so don't export this class as
  a whole but export its methods individually.
  
  This will eliminate warning C4251 and avoid having the built code depend on a
  specific STL and compiler version

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

  textiter.hg: Correct _WRAP_EQUAL_AND_COMPARE() call

  The decoration macro should be GTKMM_API, not GDKMM_API

2021-05-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0

  Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.

2021-04-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: No implicit_include_directories

2021-04-06  Daniel Boles  <dboles.src@gmail.com>

  treeiter—Delete TreeValueProxy copy-assign/warning

  The user-provided, unimplemented operator=(TreeValueProxy const&)
  existed to prevent the class being copied, but since a long time C++
  provides a better way to do that: declaring the operator as deleted.
  
  Doing this also avoids warnings about the implicitly declared default
  copy constructor, which is deprecated due to the previously user-given
  operator=, and since the latter is now deleted the warnings are avoided.
  
  https://gitlab.gnome.org/GNOME/gtkmm/-/issues/94

2021-03-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Make it possible to use gtkmm as a subproject

  gtk, gdk-pixbuf, epoxy, atkmm, cairomm, pangomm and glibmm can be
  subprojects of gtkmm.
  It's not guaranteed that gtk3 can be a subproject. See gtk#3775

2021-03-09  Chun-wei Fan  <fanchunwei@src.gnome.org>

  g[d|t]kmmconfig.h.*: Don't dllimport on MinGW

  This will fix warnings when building items using gdkmm and gtkmm with
  MinGW/GCC.
  
  Fixes: https://gitlab.gnome.org/GNOME/gtkmm/-/issues/90
  
  
  (cherry picked from commit 86685b604692b5d93f51a1d886786352c921dc51)
2021-02-24  Mingli Yu  <mingli.yu@windriver.com>

  meson.build: use relative path

  Fixes:
  Fatal error: can't create
  gdk/gdkmm/libgdkmm-3.0.so.1.1.0.p/_buildarea1_master-wr_build_Userspace_auto-usrmerge_standalone_usrmerge_next_210222_lxbuilds_Har12345_platform_up_intel-x86-64-standard-glibc-std_wrlinux_build_tmp-glibc_work_corei7-64-wrs-linux_gtkmm3_3.24.3-r0_gtkmm-3.24.3_untracked_gdk_gdkmm_timecoord.cc.o: File name too long
  
  Signed-off-by: Mingli Yu <mingli.yu@windriver.com>

2021-02-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.24.4

2021-02-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entries

2021-02-12  Chun-wei Fan  <fanchunwei@src.gnome.org>

  treepath.hg: Export comparison operators

  The 'GTKMM_API' decoration was missed from the '_WRAP_COMPARE' item,
  making the code fail to link for Inkscape on Windows.  Add the needed
  decoration to fix this.
  
  Fixes issue #88.

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

  3.24.3

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

  NMake Makefiles: "Install" the codegen .m4 files

  This way, we can make gtkmm's codegen m4 scripts available to other packages
  that uses them to generate sources

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

  gtk/gtkmm.h: Fix a typo

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

  gtk/gtkmm.h: Describe how to use gtkmm with meson

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

  Documentation: Explain key values

  and add links to gdk/gdkkeysyms.h. Fixes #6

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

  gtk/gtkmm.h: Update the link to libsigc++'s home page

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

  Meson build: Fix versioning on macOS

  See libsigcplusplus, pull request 65

2020-09-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove an obsolete file

  * docs/reference/README: Removed
  * meson.build: Exclude some git-tracked files from generated
  tarballs. Works as intended only with a new enough dist-build-scripts.py
  file from mm-common-get.

2020-08-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gtk::Actionable::get_action_target_value(): Fix ref count

  gtk_actionable_get_action_target_value() does not give the caller a ref.
  get_action_target_value_vfunc_callback() shall store a copy of the
  returned value. It shall not give the caller a ref.

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

  NMake Makefiles: Fix gendef invocation

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

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

  gtk/gtkmm/private/object_p.h: Decorate Gtk::Object_Class with GTKMM_API

  This way, we can fix gtksourceviewmm builds on Visual Studio as well, when
  gtkmm was not built with gendef.exe

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

  NMake Makefiles: Fix build from release tarballs

  Make sure that we do not needlessly re-generate [gdk|gtk]mm[config.h|.rc], and
  ensure when they are generated, they will always contain the needed version
  info in them.
  
  Also streamline the process so that it is no longer necessary to run the
  'prep-git-build' target; instead, this file generating process is carried out
  when necessary when running the 'all' target.

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

  NMake Makefiles: Fix header search paths

  We should also look in $(PREFIX)\include\harfbuzz and $(PREFIX)\include for
  HarfBuzz (which the Pango headers may include) and Cairo (and libepoxy)
  respectively, since these are likely locations where the headers are
  located.

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 gdkmm
  and gtkmm, which can be used on Windows 10 on ARM systems.

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

  gdk/meson.build: Set MSVC_TOOLSET_VER in conf data

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>

  MSVC_NMake/README: Update build info

  Note that it is possible to build with Visual Studio with Meson, on the
  condition that the -mm dependencies are built with Meson as well, since we need
  their pkg-config files.
  
  Also note that the same compiler version should be used to build gtkmm and the
  -mm dependencies, even for Visual Studio 2015, 2017 and 2019.

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-30  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 are subtle problems when, for
  instance, one tries to link to a Visual Studio 2015-built glibmm when building
  gtkmm and libxml++ 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 hits 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-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson: Remove gmmproc-dir option

  It was not used, anyways, since we look for the -mm dependencies only via
  pkg-config, which will give us the info we need

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

  docs/reference/meson.build: Improve the update for Doxygen >= 1.8.16

  Move some code from meson.build to doc-install.pl (in mm-common),
  where regular expressions can be used.

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

  NMake Makefiles: Clean up building demo and test programs

  We can group some items together and "generate" the build rules for the test
  programs instead of hand-writing them one-by-one, since the compiler and linker
  flags for them are largly the same.

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

  NMake Makefiles: Fix 32-bit Visual Studio 2017 builds

  We need to disable /EHsc in the compiler flags when building gtkmm-demo,
  because it turns out that the linking will fail with an internal compiler error
  like on Visual Studio 2015 32-bit builds.
  
  The x64 builds on Visual Studio 2015 and later and 32-bit builds on Visual
  Studio 2019 build and run as expected.

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

  NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019

  It was found that we cannot completely rely on the fact that Visual
  Studio 2015~2019 tried very hard to be binary compatible, as there
  are corner cases when linking against glibmm 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 gtkmm (and glibmm) 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-06-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove PERL_PATH

  Doxygen since version 1.8.0 does not use PERL_PATH and MSCGEN_PATH.

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

  docs/reference/meson.build: Update for Doxygen >= 1.8.16

  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.

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

  README: Update with instructions for building gtkmm

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

  NMake Makefiles: Remove pkg-ver.mak

  That file is generated and was added to the repository by accident.

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

  Meson: Fix building when gendef.exe is used

  When gendef.exe is used, the gtkmm library must link to the gdkmm library, as
  we do when gendef.exe is not used.  Also, make sure that we do apply
  '-DGDKMM_USE_GENDEF' and '-DGTKMM_USE_GENDEF' as necessary

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

  NMake Makefiles: Support building from Meson-generated tarballs

  Make the build files look for the sources in untracked/ when needed.  One may
  need to run 'nmake /f Makefile.vc CFG=<CFG> prep-git-build' prior to building.

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

  Meson: Use '-utf-8' for the the MSVC C compiler

  We are also generating a GResource C file that will be compiled, so also use
  the -utf-8 compiler flag for the C compiler too

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

  Meson: Fix linking demos and tests on Visual Studio

  GTK (and therefore gtkmm) applications require a linker flag
  '-entry:mainCRTStartup' if building with 'gui_app' is set to be true (which
  means, we are using /subsystem:windows in the linker flags on Visual Studio)
  unless a WinMain() is defined in the individual application's sources.
  
  This fixes the build of such programs by adding this linker flag where it is
  needed.

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

  Meson: Ignore more warnings on Visual Studio

  We can safely ignore warnings C4251, C4273 and C4275 as we are sure that we
  want to use __declspec(dllimport) on the libraries that we depend upon, and
  even with the C++11 versions, we are basically tied to the same CRT as Visual
  Studio 2015 or later is required to build the C++11 branches of the the -mm
  dependencies fully.
  
  We can also ignore warning C4805 since a 'gboolean' is defined to mimic a
  'bool'.

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

  [gdk|gtk]mmconfig.h.meson: Define [GDK|GTK]MM_API appropriately

  Like in the [gdk|gtk]mmconfig.h.in files, we want to put the definitions of
  [GDK|GTK]MM_API in there appropriately, so that we may be able to build without
  gendef.exe

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

  Meson: Clean-up and fix dependency search

  Since we have Meson build files for the C++ dependencies, just use the normal
  dependency search via pkg-config for all the -mm dependencies.  This also
  includes looking for atkmm, unless we request not to.
  
  We do, however, want to look for gtk+-unix-print-3.0 only if we are not
  building on Windows (at least), becuase there is no way that it will be there
  on Windows.
  
  Also clean up the parts where we decide whether to build gdkmm/gtkmm as a
  shared library directly without using gendef.exe.

2020-05-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add support for building gtkmm with Meson

  gtkmm-3.0 can be built with either Autotools or Meson.
  New files have been copied from glibmm-2.4 and atkmm-1.6 and modified.
  
  See MR !24

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

  NMake Makefiles: Ignore warning C4273

  We are likely using the dll-interface for our builds here, which we know pretty
  well, so we can just ignore this warning here too, as our builds here are tied
  to the CRT version

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

  NMake Makefiles: Export symbols without gendef if possible

  We check to see whether we have a new-enough gmmproc that is capable of
  generating the headers from the .hg templates with function decorations
  at places where they need to be.  If it is, we skip building gendef and
  use __declspec(dllexport) to export the needed symbols.
  
  Otherwise, we continue to use gendef.exe to export symbols, as we did
  before.

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

  gtk/gtkmm/*.h: Mark functions with GTKMM_API

  If gmmproc is new enough to generate the full sources from the .hg files
  with GTKMM_API applied to all applicable places, we can use this to
  export symbols without the need to use gendef.exe.
  
  The build-time check to check if gmmproc is new enough will be in an
  upcoming commit.

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

  gtk/src/*.hg: Mark classes and functions with GTKMM_API

  Mark all the classes and methods/functions (if applicable) with
  GTKMM_API so that we can use it to export symbols, if gmmproc is new
  enough to apply GTKMM_API to the _WRAP_ENUM, _WRAP_GERROR, _WRAP_EQUAL*
  and _CLASS_* items.
  
  The check on whether gmmproc is new enough will be in an upcoming
  commit.

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

  tools/m4/class_gtkobject.m4: Allow applying decorations

  This updates the _CLASS_GTKOBJECT m4 macro so that we can decorate the
  declarations of classes and wrap functions with decorations so that we
  can use them to export symbols via defining those decorations with
  compiler directives.

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

  gdk/gdkmm/*.h: Mark functions with GDKMM_API

  If gmmproc is new enough to generate the full sources from the .hg files
  with GDKMM_API applied to all applicable places, we can use this to
  export symbols without the need to use gendef.exe.
  
  The build-time check to check if gmmproc is new enough will be in an
  upcoming commit.
