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

  2.68.0

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

  Glib, Gio: Regenerate docs.xml and .defs files

  and update gio/src/gio_docs_override.xml.
  
  Regenerated while the glib-2-66 branch was checked out from glib.

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

  Glib::Binding, TimeZone: Ignore deprecation of some glib functions

  g_binding_get_source(), g_binding_get_target() and g_time_zone_new()
  are deprecated in glib 2.68. We can't use the replacement functions,
  which are new in glib 2.68. We want to build with -Dwarnings=fatal
  and run with both glib 2.68 and older versions of glib.

2020-12-13  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Replacing old comments with correct ones

  The old comments were automatically added when initial version of the
  script was created. Here we repalce them with meaningful comments.

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

  Change the ABI to glibmm-2.68

  So we can use the 2.66 version numbers for stable releases in the
  glibmm-2.4 ABI series.
  
  We've done similar ABI name changes several times before.

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

  tests/glibmm_tls_client: Skip test, if socket can't be connected

  This test sometimes fails in CI runs, probably for a reason that's out
  of glibmm's control.

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

  tests/glibmm_tls_client: Catch exceptions from more function calls

  Gio::Socket::create() can throw an exception. Put it in a try block.
  See #84

2020-12-08  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Adding build and test job for clang compiler

  Release build and test was added for clang compiler.

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

  Glib::Binding: Avoid warning from gcc-10

  g++-10 with optimization level -O1 or higher warns about possible use of
  an uninitialized variable when tests/glibmm_binding/main.cc is compiled.
  I don't understand why.
  
  There is no warning if the private method Glib::Binding::TransformProp::
  operator()() is compiled without optimization. Add an attribute that turns
  off optimization for this method when it's compiled with with gcc-10 or
  higher. gcc-9 does not warn. gcc-10 does not warn in glibmm-2.4, where
  std::optional is not used.

2020-12-07  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Updating config file to reflect recent changes

  CI configuration file is updated to support meson and autotools builds
  for glibmm. libsigc++ version is updated up to 3.0.6 and it will be built
  using meson only.
  
  See #84 for details

2020-11-21  Tom Schoonjans  <Tom.Schoonjans@rfi.ac.uk>

  Meson build: fix is_os_cocoa detection

  The previous check didnt work as the compiler choked on the Objective-C code
  that was dragged in by the Cocoa headers.
  
  This patch simplifies things by simply asking what system the host is
  running on.

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

  Remove unnecessary TODO and README files

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

  generate_wrap_init.pl.in: Use g_type_ensure()

  Call g_type_ensure(SomeClass::get_type()).
  
  Redefining the G_GNUC_CONST preprocessor macro does not have the
  intended effect (SomeClass::get_type() actually being called) if
  the package is compiled and linked with the -flto option.
  LTO = link time optimization
  
  https://mail.gnome.org/archives/gtkmm-list/2020-November/msg00009.html

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

  Gio::File docs: Fix names of thrown exceptions

  and remove unnecessary TODO comments in several files.

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

  glib/glibmm.h: Describe how to use glibmm with meson

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

  Meson build: Fix versioning on macOS for libglibmm_generate_extra_defs

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

  Meson build: Fix versioning on macOS

  See https://github.com/libsigcplusplus/libsigcplusplus/pull/65

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

  Meson build: Add missing Glib::Value and Variant documentation

  The value_basictypes.h and variant_basictypes.h files, which are generated
  from .m4 files, were not included in the input to Doxygen.

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

  Remove Glib::BalancedTree

  Use std::map or std::unordered_map instead.

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

  class_interface.m4: Export the generated private class

  As in the case of class_shared.m4, we need to do the same for
  class_interface.m4 as well, in order to export the items in the private
  headers fully.

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

  gmmproc: Make h2def.py recognize more macros

  When parsing function declarations, remove G_DECLARE_DERIVABLE_TYPE
  and GDK_DECLARE_INTERNAL_TYPE.

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

  glib/glibmm/private/*.h: Decorate the classes with GLIBMM_API

  This is done for completeness' sake, as we are doing for the private headers that we
  generate.

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

  class_shared.m4: Decorate private class prototype

  ...when using _WRAP_GOBJECT with a function decoration.  This will help expose
  the class definition in the generated private/*_p.h in the built DLLs/LIBs that
  is built with Visual Studio or clang-cl.

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

  Rewrite Gio::Tls[Client,Server]ConnectionImpl

  TlsConnection_Class::wrap_new() can wrap a C object in a TlsConnection,
  TlsClientConnectionImpl or TlsServerConnectionImpl depending on which
  interface, if any, the C object implements.
  
  No need for special wrap*() functions in Tls[Client,Server]Connection
  or SocketClient::signal_event().
  
  This is similar to Gdk::DeviceWithPad.

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

  Gio::Tls[Client,Server]ConnectionImpl: Improve the wrap*() functions

  Make Glib::wrap_tls_[client,server]_connection_impl() do like other
  wrap() functions for ref-counted objects when they are given a nullptr:
  return an empty RefPtr.

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

  Gio::SocketClient::signal_event(): Fix wrapping of 'connection' param

  The GIOStream* parameter in the 'event' signal can point to either a
  GSocketConnection or to a subclass of GTlsConnection that implements
  the GTlsClientConnection interface. If it implements the
  GTlsClientConnection interface, wrap it in a Gio::TlsClientConnectionImpl.
  Then a signal handler can do:
    auto tls_client_connection =
      std::dynamic_pointer_cast<Gio::TlsClientConnection>(connection);
  
  Fixes #73

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

  Glib::IOChannel docs: Update names of some enum values

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

  Gio: Add Tls[Client,Server]ConnectionImpl

  Restructure Tls[Client,Server]Connection. They are interfaces. Now they
  derive only from Glib::Interface, like all interfaces shall do.
  
  Tls[Client,Server]ConnectionImpl don't correspond to C classes. They can
  wrap any C object that derives from GTlsConnection and implements
  GTls[Client,Server]Connection. Such C classes in GLib are not public.
  They can't be wrapped in the usual way.

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 [glib|gio]mm[config.h|.rc]

  This fixes the build process so that we won't need to generate them
  unnecessarily (i.e. when building from a release tarball built with autotools).
  
  Also streamline the build process that we no longer need to explicitly run
  the 'prep-git-build' target before building, where we generate
  [glib|gio]mm[config.h|.rc], and if needed, gmmproc and generate_wrap_init.pl,
  as part of the normal 'all' target if necessary

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

  Gio::MenuModel: Make MenuAttribute and MenuLink enum class

  Change enum Gio::MenuAttribute to Gio::MenuModel::Attribute and
  change enum Gio::MenuLink to Gio::MenuModel::Link.
  Add new enum values to Attribute.

2020-07-18  Andreas Persson  <andreasp56@outlook.com>

  Update documentation for ListStore too.

2020-07-18  Andreas Persson  <andreasp56@outlook.com>

  Make ListStore accept Interfaces.

  I noticed that I couldn't create a ListStore containing AppInfo objects,
  because an AppInfo is not an Object but an Interface. ListStore seems to
  work fine with Interfaces, so I just changed the static_assert.

2020-07-14  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 glibmm
  and giomm, which can be used on Windows 10 on ARM systems.

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

  gmmproc: _CLASS_BOXEDTYPE, _CLASS_OPAQUE_COPYABLE: Fix move assignment

  Add a std::move() to avoid copying.
  Fixes #76

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-18  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 2017 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 2017-built glibmm when building
  gtkmm and libxml++ with Visual Studio 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 2017 and 2019
  builds share a single set of underlying C DLLs easier, while avoiding breakages
  caused by such subtle differences.

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

  NMake Makefiles: Clean up building tests and examples

  Instead of hand-written rules, just make use of what we have to generate the
  rules on the fly for most of the tests and examples, since the rules are more
  or less the same for each of the test and example programs.  We only need to
  single-out the ones that aren't buildable under Windows and those that have
  multiple programs under each directory, as opposed to one example/test program
  per directory.
  
  Even for those directories that have multiple example programs, we can pretty
  easily generate the rules for them.
  
  Also remove repeated parts that were added by accident.
  
  This can shrink the NMake Makefiles by a bit.

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

  NMake Makefiles: Use Toolset version in DLL names by default

  This updates the build to use the toolset version in the final DLL
  and .lib filenames, similar to what is done in Boost, instead of
  the Visual Studio version.
  
  This means that by default, we will use 'vc141' instead of 'vc150'
  in Visual Studio 2017 builds, and 'vc142' instead of 'vc160' in
  Visual Studio 2019 builds.
  
  If using the former naming is desired, use 'USE_COMPAT_LIBS=1' in
  the NMake command line, albeit all such binaries will now be named
  with 'vc150' in the DLL and library bames

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

  glib/glibmm/ustring.h: Fix Visual Studio macro check

  Commit 8b8af81f accidentally changed the macro check from '_MSC_VER' to
  'MSC_VER', fix that.  It probably does not matter since Visual Studio 2017
  is required, where 'GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS' is enabled,
  but fix that for consistency's sake.

2020-06-03  Daniel Boles  <dboles@src.gnome.org>

  propertyproxy_base: Fix using notify w/o prop name

  GLib has now specified that if you want to connect to a signal without a
  detail argument, you omit the `::`. So, glibmm users previously
  connecting to `notify::` to listen for changes to all properties broke.
  Fix that by only passing `notify` i.e. no superfluous `::` in that case.
  
  Close https://gitlab.gnome.org/GNOME/glibmm/-/issues/74
  Close https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/35

2020-06-02  Daniel Boles  <dboles@src.gnome.org>

  ustring: Silence warning if MSC_VER is undefined/0

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

  tools/defs_gen/*.py: Specify that this is python3 code

  Specify #!/usr/bin/env python3, making it unnecessary to have a python
  command which is a link to python3.
  In h2def.py, use the built-in set() instead of Set() from the sets module.

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

  tools/m4/compare.m4: Allow decorating comparison operators

  This allows one to pass in deocrations for the comparison operators so
  that those decorations may be defined as compiler directives to export
  symbols in a more fine-grained manner.

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

  Meson build: Set default value of the 'warnings' option to 'min'

  * meson.build: Use dist-warnings when a tarball is tested by
  'ninja dist' or 'meson dist'. Check if generate-binding.py exists, if not
  maintainer-mode. Add a better error message if mm-common-get is required
  but not found.
  * meson_options.txt: Set default value of the 'warnings' to 'min'.
  Add 'dist-warnings' with default value 'fatal'.

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

  gio/src/*.hg: Mark all _WRAP_ENUM() with decl_prefix

  As per Kjell's suggestions, make things more future-proof by marking all
  _WRAP_ENUM()'s with 'decl_prefix GIOMM_API'.

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

  glib/src/*.hg: Mark all _WRAP_ENUM() with decl_prefix

  As per Kjell's suggestions, make things more future-proof by marking all
  _WRAP_ENUM()'s with 'decl_prefix GLIBMM_API'.

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

  gio/src/*.hg: Mark _WRAP_ENUM with decl_prefix GIOMM_API

  This way, we can mark the template<> classes with GIOMM_API so that we
  can export them as well using compiler directives.  Note that those
  marked with NO_GTYPE do not need to be marked with this, as no
  template<> classes are generated with these.

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

  glib/src/*.hg: Mark _WRAP_ENUM with decl_prefix GLIBMM_API

  This way we can mark the template<> classes that is generated via
  _WRAP_ENUM with GLIBMM_API, so that we can export those as well.
  
  Note that for this, the _WRAP_ENUM calls with NO_GTYPE specified do not
  need to be marked with decl_prefix GLIBMM_API as no template<> classes
  will be generated in this manner.

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

  tools/[gerror|enum].m4: Make template<> classes exportable

  Allow to apply the decl_prefix argument onto the template<> classes that
  we generate for the _WRAP_GERROR and _WRAP_ENUM directives in the
  various *.hg files, if specified.
  
  Please note that this is done in GNU m4 style for enum.m4 since we are
  using the 10th argument.