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

  2.74.0

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

  glib/glibmm.h: Update the link to the gtkmm tutorial

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

  Glib, Gio: Regenerate docs.xml files

  using gtk files from glib 2.74.0.

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

  Convert README to README.md

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

  CI: Return to using ubuntu:rolling (22.04)

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

  Gio::File docs: Add @throws

  and other minor documentation fixes.

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

  Gio::File: Add create_tmp()

  * gio/src/file.[ccg|hg]: Add create_tmp().
  Document create_for_parse_name().
  * tests/giomm_simple/main.cc: Test File::create_tmp().

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

  Gio::ListStore::find() docs: Small changes

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

  Gio::ListStore: Add find()

  * gio/src/liststore.[ccg|hg]: Add two ListStoreBase::find() and
  two ListStore::find().
  * tests/giomm_listmodel/main.cc: Test ListStore::find().

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

  CI: Skip building with Autotools if glib is too old

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

  2.73.2

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

  CI: Use ubuntu:devel (22.10)

  Test with only one gcc version.
  Don't use warning_level and werror. They are applied to subprojects.

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

  Gio: Add some methods for glibmm 2.74

  * configure.ac:
  * meson.build: Require glib-2.0 >= 2.73.2.
  * gio/src/appinfo.hg: Add get_default_for_type_async/finish(),
  get_default_for_uri_scheme_async/finish().
  * gio/src/file.hg: Add make_symbolic_link_async/finish().
  * gio/src/liststore.hg: Add property_n_items().
  * gio/src/resolver.hg: Add enum Resolver::NameLookupFlags,
  lookup_by_name_with_flags(), lookup_by_name_with_flags_async/finish().
  * gio/src/gio_docs_override.xml:
  * tools/m4/convert_gio.m4: Add conversions for Resolver::NameLookupFlags.

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

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

  using gtk files from glib 2.73.3.

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

  Doxyfile.in: Remove obsolete entry

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

  Add Glib::ustring::release()

  Fixes #101

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

  Gio::DBus::Proxy: Add some refreturn

  get_connection() and get_interface_info() must add a reference.
  The error in get_connection() was noticed by 우정모 (kr.woaini).
  Fixes #102

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

  gmmproc: Make h2def.py recognize G_DEFINE_AUTOPTR_CLEANUP_FUNC

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

  gmmproc, DocsParser.pm: Improve the handling of gi-docgen syntax, part 3

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

  Gio::ListStore: Don't derive a gtkmm__GListStore GType

  GListStore is declared G_DECLARE_FINAL_TYPE.

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

  gmmproc: Improved handling of final types

  Some GObject-derived classes shall not be derived from.
  
  * glib/glibmm/class.cc:
  * glib/glibmm/interface.cc: Don't derive or add interfaces to a class
  if G_TYPE_IS_FINAL(gtype) is true.
  * tools/m4/class_shared.m4: Fix gtype_ when _DO_NOT_DERIVE_GTYPE is used.
  Add _ABI_AS_WITH_DERIVED_GTYPE, making it possible to
  add _DO_NOT_DERIVE_GTYPE without breaking ABI.

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

  Gio::Action: Improve the documentation

  See issue #100

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

  Glib::RefPtr: Improve the documentation

  See issue gtkmm#119

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

  Update tools/test_scripts/testheaders.sh

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

  NMake Makefiles: Ensure g[lib|io]mm[config.h|.rc] are created

  ...before attempting the build.  This will ensure that they are available
  during the build and that we do not accidentally refer to an old copy that
  exists on the system.
  
  Should fix issue #99.

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

  NMake Makefiles: Remove rules on build directory creation

  Instead, create them using plain 'md' commands if they don't exist prior to
  compiling the sources, if applicable.
  
  Should speed up builds a bit.

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

  Meson/MSVC: Add more warnings to ignore

  We can actually silence more warnings here, since the issues that they cover
  can normally be fished out by the unit tests.

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

  Meson: Re-organize MSVC compiler warnings-related items

  Add a short description of each of the current compiler flags we are using for
  this purpose, and only apply '/wd4267' for 64-bit builds since that flag
  normally applies for 64-bit builds only.

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

  meson.build: Avoid configuration warnings

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

  2.72.1

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

  CI: Accept warnings from clang++

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

  Revert "ustring_Iterator: Declare the copy constructor =default"

  This reverts commit 7b811a0be824675f31a422d40a75bbb5d10e32ad.
  It broke ABI. See #98

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

  2.72.0

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

  Gio::TlsCertificate: Fix the create*() methods

  Don't call constructors that don't work because the g_tls_certificate_new_*()
  functions do more than just call g_object_new().

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

  CI: Don't test subprojects

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

  Glib, Gio: Add some methods for glibmm 2.72

  * configure.ac:
  * meson.build: Require glib-2.0 >= 2.71.2.
  * gio/src/dbusproxy.hg: signal_signal() accepts a signal name.
  * gio/src/file.[ccg|hg]: Add move_async() and move_finish().
  * gio/src/socketclient.hg: Deprecate set/get/property_tls_validation_flags().
  * gio/src/tlscertificate.hg: Add properties private_key, private_key_pem,
  pkcs11_uri, private_key_pkcs11_uri.
  * gio/src/tlsclientconnection.hg: Deprecate set/get/property_validation_flags().
  * glib/glibmm/main.[cc|h]: Add create(MainContextFlags flags).
  * glib/src/enums.hg: Add enum Glib::MainContextFlags.

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

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

  using gtk files from glib 2.72.0.
  And update gio/src/gio_signals.defs.patch.

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

  CI: Use artifacts to transfer data between stages

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

  CI: Don't build everything with warnings=fatal

  Build only glibmm with warnings=fatal.
  Select latest released version of libsigc++3.

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

  Add Gio::AppInfoMonitor

  Fixes #97

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

  ustring_Iterator: Declare the copy constructor =default

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

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

  Remove HACKING

2022-02-14  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: ...).

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

  Gio: Use _WRAP_METHOD(..., ignore_deprecations)

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

  gmmproc: Add "ignore_deprecations" argument in _WRAP_METHOD()

  Makes it easier to suppress deprecation warnings when a C method has been
  deprecated, but the corresponding C++ method shall not (yet) be deprecated.

2021-11-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::SocketClient, TlsClientConnection: Ignore some deprecations

  g_socket_client_[set,get]_tls_validation_flags() and
  g_tls_client_connection_[set,get]_validation_flags() are deprecated in
  glib 2.72. They can't be deprecated in glibmm 2.70. Ignore the deprecations,
  so it will still be possible to compile with warnings=fatal.

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

  Build: Support VS2022 builds

  Make these builds distinct from the Visual Studio 2019 builds.

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

  2.70.0

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

  Glib::Binding: Fix return type from dup_source() and dup_target()

  Change from Glib::RefPtr<Glib::Object> to Glib::RefPtr<Glib::ObjectBase>.

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

  Glib, Gio: Add some methods for glibmm 2.70

  * configure.ac:
  * meson.build: Require glib-2.0 >= 2.69.1.
  * glib/src/binding.[ccg|hg]: Add dup_source(), dup_target(),
  Deprecate get_source(), get_target().
  * glib/src/spawn.[ccg|hg]: Change parameter name, exit_status to wait_status.
  * glib/src/timezone.[ccg|hg]: Add operator bool(), create_identifier().
  Deprecate create().
  * gio/src/fileinfo.hg: Add get/set_access_date(), get/set_creation_date().
  * gio/src/notification.hg: Add set_category().
  * gio/src/tlscertificate.hg: Add property/get_not_valid_before(),
  property/get_not_valid_after(), property/get_subject_name(),
  property/get_issuer_name().
  * gio/src/tlsconnection.hg: Add enum Gio::TlsProtocolVersion,
  property/get_protocol_version(), property/get_ciphersuite_name().
  * tools/m4/convert_gio.m4: Add conversion for enum TlsProtocolVersion.

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

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

  using gtk files from glib 2.70.0.
  And update gio_docs_override.xml and glib_extra_objects.defs.

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

  CI: Build with g++-11 instead of g++-9

  g++-9 is not available in debian:testing any more.

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

  CI: Switching to debian:testing

  See pangomm#13 and pangomm!23.

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

  Glib::wrap_register_init(): Don't use g_quark_from_static_string()

  Replace it by g_quark_from_string().
  g_quark_from_static_string() shall not be used, if glibmm (but not glib)
  is loaded and unloaded several times.
  Fixes #96

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

  Declare some copy assignment operators deleted (=delete)

  Avoid warnings from the clang++ compiler.
  
  It's deprecated in C++ to implicitly declare a copy constructor, if there
  is a user-defined copy assignment operator. Instead of declaring copy
  assignment operators private without implementation, declare them deleted.

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

  CI: Don't rebuild libsigc++ if it can be pulled from the cache

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

  CI: Build libsigc++ only once

  and publish reference docs at gnome.pages.gitlab.gnome.org/glibmm.

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

  .gitlab-ci.yml: Add dependency g++-10

2021-08-17  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.

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

  Use GLib from the main branch in subproject

2021-07-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::AppInfo::get_all(): Use a local TypeTraits in ListHandler

  Instead of a specialization of Glib::Container_Helpers::TypeTraits
  for Glib::RefPtr<Gio::AppInfo>, add and use struct TypeTraits_AppInfo,
  local in gio/src/appinfo.ccg and appinfo.cc.
  Modifies the issue #94 fix.

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

  Gio::AppInfo::get_all(): Use Glib::wrap_auto_interface()

  Applies also to get_all_for_type().
  
  Make a complete specialization of Glib::Container_Helpers::TypeTraits for
  Glib::RefPtr<Gio::AppInfo>, calling Glib::wrap(GAppInfo*, bool) which uses
  Glib::wrap_auto_interface(). The partial specialization in
  containerhandle_shared.h calls Glib::wrap_auto(), which is not acceptable
  if the GAppInfo object does not already have a wrapper, and its class type
  has been wrapped in a C++ class (e.g. GWin32AppInfo or GOsxAppInfo).
  Fixes #94

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

  handle-built-files.py: Specify file encoding on generated files

  The default file encoding is platform dependent in Python.
  Better specify which encoding is preferred.

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

  Gio::ListModel::get_object(): Don't try to cast to Glib::Object

  Gio::ListModel::get_object() returns Glib::RefPtr<Glib::ObjectBase>.
  Don't try to dynamic_cast it to Glib::Object. It would fail if the object
  has been constructed as an interface, and e.g. has a Gio::File wrapper.
  Fixes #93

2021-07-10  talisein  <agpotter@gmail.com>

  fileenumerator.hg: Remove refreturn to avoid memory leak

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

  Update gio_docs_override.xml

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

  gmmproc, DocsParser.pm: 2nd improve the handling of gi-docgen syntax

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

  gmmproc, DocsParser.pm: Improve the handling of gi-docgen syntax

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

  Glib::ustring: Remove extraneous GLIBMM_API

  Deleted methods shall not be decorated with GLIBMM_API.
  Fixes #92

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

  gmmproc, DocsParser.pm: Handle gi-docgen syntax in documentation

  gtk4 has started using gi-docgen instead of gtk-doc. It has a different
  syntax for referring to methods, signals, properties and other stuff
  in the documentation.
  
  gmmproc does not handle the gi-docgen syntax perfectly when it converts
  to Doxygen syntax and C++ names. It has never handled gtk-doc syntax
  perfectly, either. Hopefully it's good enough in most cases.

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

  Add Glib::Environ and tests/glibmm_environ

  Fixes #89

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

  Glib::Timer: Add resume() and is_active()

  Fixes #87

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

  2.68.1

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

  Clean up Visual Studio build files

  Stop ignoring warnings C4251, C4273 and C4275 and add /EHsc in the compiler
  flags, so that we know if we are inadvertedly tying ourselves too closely to
  a Visual Studio compiler/STL version

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

  Don't mark the Glib::Source class with GLIBMM_API

  Instead, mark the individual members with GLIBMM_API so that we avoid having
  the code tied to a particular STL and compiler version.
  
  Update the classes that derive from Glib::Source accordingly as well

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

  error.h Avoid exporting class deriving frm std::exception

  This will avoid having the ABI tied to a particular STL and compiler version,
  and so will eliminate C4275 compiler warnings when building the code.
  
  Also update gerror.m4 so that it will generate code deriving from Glib::Error
  with the export macro markings with the member functions, so that things
  continue to build properly

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

  fileattributeinfo.hg: Avoid exporting classes with std::string members

  ...and templates that inherit std::string.  This will help us to also eliminate
  C4251 warnings from code that use thid class and related items, and avoid ABI
  compatibility issues when building code that link and run aginst glibmm on
  Visual Studio builds.

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

  variantdbusstring.h: Don't mark classes with GLIBMM_API

  It's actually not necessary here, and it will cause issues with the previous
  commit

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

  ustring.h: Avoid exporting classes with std::string members

  ...and templates that inherit std::string.  This will help us to also eliminate
  C4251 warnings from code that use the ustring class and related items, and avoid
  ABI compatibility issues when building code that link and run aginst glibmm on
  Visual Studio builds.

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

  Glib::PatternSpec: Ignore deprecation of g_pattern_match()

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

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

  * meson.build:
  * docs/reference/meson.build:
  * gio/giomm/meson.build:
  * glib/glibmm/meson.build:
  Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.
  * tools/build_scripts/handle-built-files.py:
  Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT.
  It exists if meson.version() >= 0.58.0.

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

  Meson build: Make quiet installations possible

  * tools/build_scripts/handle-built-files.py: Don't print names of
  installed files if environment variable MESON_INSTALL_QUIET is set.
  It is set by "meson install --quiet" in Meson 0.54.0 and newer.

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

  tests/glibmm_ustring_compare: Fix so it works for C++20

  Make 3 tests, where the 2 new tests check that the disallowed comparisons
  between std::string and Glib::ustring don't compile.
  The new tests are added only in Meson builds (ninja test).
  See MR !50

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

  Meson build: No implicit_include_directories

2021-04-06  Magne Oestlyngen  <magne@spacetec.no>

  Variant: Fix so it works with C++20

  C++20 changed some aspects of templates that broke variant.h on
  some compilers (GCC 11).
  
  Ref: https://wg21.cmeerw.net/cwg/issue2237
  
    template<class T>
    struct A {
      A<T>();  // ok pre-C++20, now incorrect
  //  A();     // correct for all versions
    };
  
  This commit removes the "simple-template-id" from both the default
  constructor (no args) and the explicit constructor (has args), even
  though only the default constructor currently gives error on GCC 11.
  Since both versions are wrong according to the issue referred to above
  it is expected that GCC (and possibly other compilers) will be updated
  to fail on both cases in the future.

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

  Meson build: No implicit_include_directories

  It shall not be possible to find a glibmm header file
  with #include <xxx.h> instead of #include <glibmm/xxx.h>.
  Not fully fixed until https://github.com/mesonbuild/meson/issues/8562
  has been fixed.

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

  Add tools/defs_gen/enumextract.py

  A Python script that can replace the Perl script tools/enum.pl.
  Why? Just because I've got fond of Python.

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

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

  glib and sigc++ can be subprojects of glibmm.

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

  Meson build: examples and tests: Add dependency('threads')

  Multithreaded examples and tests depend on 'threads'.
  I noticed this when I started experimenting with subprojects.
  Strange that it was not reported as a missing dependency long ago.

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

  g[io|lib]mmconfig.h.*: Don't dllimport on MinGW

  This will fix warnings when building items using glibmm and giomm with
  MinGW/GCC.
  
  Please see: https://gitlab.gnome.org/GNOME/gtkmm/-/issues/90

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

  tools/gen_scripts: Ignore gio/gwin32api-*.h

  Ignore some new glib header files when generating
  gio/src/gio_enums.defs and gio/src/gio_methods.defs.

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

  docs/reference/Doxyfile.in: Remove obsolete entries

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

  Meson build: Use relative paths to untracked/

  The paths to the source code in untracked/ shall be relative to the
  meson.build file, when library files are built from a tarball.
  With absolute paths Meson may generate too long file names.
  See gtkmm!61

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.

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

  2.65.3

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

  tests/glibmm_buildfilename: Add some tests

  See issue #71

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

  Meson build: Install generate_extra_defs.h

  Fixes #70

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

  README: Fix a misspelling

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

  2.65.2

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

  Glib, Gio: Add missing #includes

  Fixes #69

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

  NEWS: Remove an erroneous item

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

  2.65.1

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

  Change the ABI to glibmm-2.66

  So we can use the 2.64 version numbers for stable releases in the
  glibmm-2.4 ABI series.
  We don't need to release a stable ABI-parallel glibmm until we need
  to release gtkmm 4.0, and that won't happen until GTK 4.0.0 happens.
  
  We've done similar ABI name changes several times before.

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

  glib/glibmm-uninstalled.pc.in: Require sigc++-3.0

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

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

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

  README: Describe building with Meson and Autotools

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

  Gio::DBus::Message::get_unix_fd_list(): Add refreturn

  Fixes #68

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

  glibmm/objectbase.h: Mark _gobject_cppinstance_already_deleted()

  ...with GLIBMM_API.  This is needed for building gtkmm, with Visual
  Studio.

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

  NMake Makefiles: Fix builds from Meson tarball

  For the glib/src/*.[c|h].m4 sources, look also for the generated sources
  that are in untracked/glib/glibmm, so that we do not needlessly try to
  generate that file, meaning m4 will be required even in release tarballs.
  
  Somehow this did not make it into master but is in glibmm-2-62... :|

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

  glib/glibmmconfig.h.[in|meson]: Clean up MSVC bits

  From
  https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/29#note_734668,
  it was noted by Kjell that we will always have thread_local, so there is
  really no GLIBMM_CAN_USE_THREAD_LOCAL in the code, so we can drop that.
  
  Also drop the Visual Studio 2013 compatibility bits, since we need
  Visual Studio 2017 to build glibmm master (C++17 branch), so they won't
  be relevant.

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

  examples, tests: Disable deprecated API when building with Meson

  Deprecated GLIBMM and GIOMM API are disabled when example programs and test
  programs are built with Autotools. Do the same when building with Meson.

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

  NMake Makefiles: Fix 'install' for Meson tarballs

  We need to look for headers from untracked/ as well.

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

  m4: Apply function decoration more thoroughly

  Apparently more items in the generated code must be marked with the
  function decoration that is specified, otherwise the exported symbols
  will not be complete.

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

  meson: Do not allow static MSVC-style builds

  The Visual Studio build files never really supported static builds, so
  disallow that for now, until we can make sure that is tested better.

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

  glibmm: Update glibmmconfig.h.[in|meson] for MSVC

  Visual Studio 2015 or later has thread_local, so make sure that it is
  enabled.
  
  Also update for Visual Studio 2017+ as the compiler does allow static
  members to be initialized inline to std::string::npos
  (GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS), but use a work
  around for pre-Visual Studio 2015 so that we do not get a linker error
  as GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS is not supported.

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

  build: Drop gendef

  We are now building glibmm without the use of gendef for all builds, so
  we can now drop gendef from the glibmm sources.

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

  Visual Studio builds: build giomm without gendef

  Make sure that we are defining GIOMM_API as __declspec(dllexport) when
  building giomm and so stop the use of gendef.exe.  We are now ready to
  drop gendef from the glibmm sources.

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

  gio/giomm/*.h: Mark classes and functions with GIOMM_API

  This prepares the build to use compiler directives to export symbols, in
  our bid to drop gendef.exe.

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

  gio/src/*.hg: Mark classes and functions with GIOMM_API

  This prepares the build to export symbols using compiler directives, in
  our bid to drop gendef.exe.  We will also mark pre-declarations of usage
  of glibmm class items with GLIBMM_API as well.

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

  build: Do not use gendef.exe for glibmm

  Clean up the build files a bit and update the glibmmconfig.h.[in|meson] so that
  we use __declspec(dllexport) when GLIBMM_BUILD is defined (i.e. during the
  build of glibmm) on Visual Studio.
  
  Also, for the meson builds, disable warnings 4251 and 4275 as they all relate
  to building DLLs regarding symbol export, which is harmless as we know clearly
  that we are indeed building DLLs in our case, and we have already set
  GLIBMM_API appropriately

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

  glib/src: Decorate classes and methods with GLIBMM_API

  This prepares for us to export symbols using compiler directives, so that we
  can eventually retire gendef.exe.  This also makes the scripts place GLIBMM_API
  as appropriate for the generated Glib:Error classes and the wrap() method.

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

  tools: Allow generating Glib:Error class with decorations

  This allows one to export the generated Glib::Error class with decorations so
  that one may be able to use this to export it using compiler directives.
  
  This allows specifications that start with decl_prefix, and this also
  decorates the `friend wrap_init() method in the generated Glib::Error class

2020-03-05  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Initial setup for CI

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

  tools/m4: Allow one to decorate the generated wrap() prototype

  This allows the compiler to use the decoration macro to export those methods
  from the generated items

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

  glib/glibmm/*.h: Mark classes and methods with GLIBMM_API

  This prepares the code to use __declspec(dllexport) to export all symbols, so
  that we can eventually bid farewell to gendf.exe

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

  meson: Use /utf-8 for Visual Studio builds

  This way, we can avoid warning/error C4819 when building glibmm due to unicode
  handling issues in the compiler, which is likely to pop up on East Asian
  locales on Windows.
  
  We need to ignore warning C4828 when building gendef.exe though with this.

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

  Activate the glibmm_ustring_compose test

  It was (probably by mistake) disabled by commit
  729b1ae95d5d05b78741eeef1d635f95b19d790b

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

  gio/giomm/meson.build: Silence a warning from Meson

  static_library() can't take a version: argument.

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

  MSVC NMake: Allow builds from Meson-generated tarballs

  This adds rules to the NMake Makefiles so that they can find the sources under
  $(srcroot)/untracked, and thus will not need to re-generate the sources.
  
  However, for builds from such tarballs, it is necessary to do
  'nmake /f Makefile.vc CFG=$(CFG) prep-git-build' so that the resource scripts
  and config headers are generated, prior to performing the build.
  
  Please note that glibmm_generate_extra_defs-2.x is now built as a DLL with the
  NMake Makefiles as well.

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

  meson.build: Tidy up a bit

  The definitions of glibmm_build_dep, giomm_build_dep, glibmm_requires and
  giomm_requires can be simplified.

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

  Meson build: Add some dependencies when generating source files

  wrap_init.cc shall be rebuilt when generate_wrap_init.pl has been rebuilt.
  Generated .h and .cc files shall be rebuilt when gmmproc has been rebuilt.

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

  Makefile.am: Distribute files necessary for building with Meson

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

  tools: Fix 'meson dist'

  The former method of using gendef.exe to generate the import library for
  glibmm_generate_extra_defs somehow breaks 'meson dist' and builds from
  release tarballs, unless one builds giomm first.
  
  Fix this by using the __declspec(dll[ex|im]port) directives, since
  glibmm_generate_extra_defs is a simple utility library.

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

  meson: Build items in tools/extra_defs_gen on MSVC too

  Ensure we can generate the import lib for glibmm_generate_extra_defs on
  Visual Studio builds by using the same technique we used for glibmm and
  giomm, and build the two programs that is to be built along side with
  it.
  
  Also re-order the items in meson.build a bit so that we are able to use
  our gendef tool.

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

  examples/thread/dispatcher.cc: Make C++17 compliant

  std::mem_fun() and std::unary() have been removed from C++17, so port
  away from using these.

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

  glibmm_interface_move test: Avoid warnings in test_IFace_get_type()

  ...for Visual Studio builds, since we don't really get unused function
  warnings from the TEST_IFACE items.  Plus, we don't have glib autoptr
  support in Visual Studio builds, either.

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

  examples: Don't build child_watch and iochannel_stream on Windows

  These use *nix items in the code, so they won't build nor run for
  Windows unless they are ported.

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

  dbusconnection.ccg: Include giomm/unixfdlist.h on *NIX only

  In Meson builds, we don't even generate giomm/unixfdlist.h unless we are
  building for *nix, and we aren't using the items there on non-*nix
  builds.

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

  gio/giomm/meson.build: Use giomm-int rule for all builds

  Like the previous commit, let builds from release tarballs and GIT
  checkouts build the giomm-int static library, and link the final
  .so/.dll from the objects that form giomm-int static .lib.  By doing so
  we can build giomm with the import libraries for Visual Studio builds
  with gendef, as well as linking in the version resource for all Windows
  builds.

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

  glib/glibmm/meson.build: Use glibmm-int rule for all builds

  Let builds from release tarballs and GIT checkouts build the glibmm-int
  static library, and link the final .so/.dll from the objects that form
  glibmm-int static .lib.  By doing so we can build glibmm with the import
  libraries for Visual Studio builds with gendef, as well as linking in
  the version resource for all Windows builds.

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

  meson.build: Disable warning C4589 on Visual Studio

  This warning can be ignored as well.

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

  tools: Use POSIX-style path for m4 in gmmproc

  Otherwise the script gets confused as the slashes were not escaped

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

  meson.build: Allow Visual Studio builds in GIT checkouts

  It is now possible to build glibmm directly from GIT checkouts as long
  as there is a working m4 executable (such as fomr Cygwin or MSYS64), so
  we can allow builds directly from GIT checkouts.

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

  meson.build: Always look for libsigc++ via pkg-config

  We have Meson build support for libsigc++ before we got into this drive
  for Meson support for building glibmm, so let's just always look for
  libsigc++ with pkg-config.

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

  Add support for building glibmm with Meson

  glibmm can be built with either Autotools or Meson.
  
  See MR !27

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

  Prepare existing files for building with Meson

  * examples/network/resolver.cc: Don't include config.h. It's not used.
  * glib/glibmm/ustring.cc: Check if GLIBMM_SIZEOF_WCHAR_T is defined.
  * tools/generate_wrap_init.pl.in:
  * tools/gmmproc.in: Change '\@' to '\ @'. Meson's configure_file()
  removes a backslash immediately before an at-sign.

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

  NMake Makefiles: Fix headers installation

  Fix Copy-n-paste error...

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

  generate-msvc.mak: Correct path to find gmmproc PERL modules

  The GLIBMM_MODULE_NAME should be glibmm-2.x, not giomm-2.x

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

  NMake Makefiles: Add targets to ease build from GIT checkouts

  This will enable one to generate the following files:
  
  MSVC_NMake/glibmm/glibmmconfig.h
  MSVC_NMake/glibmm/glibmm.rc
  MSVC_NMake/giomm/giommconfig.h
  MSVC_NMake/giomm/giomm.rc
  
  when building from a GIT checkout.
  
  This will also enable one to generate the following files:
  tools/gmmproc
  tools/generate_wrap_init.pl
  
  from a GIT checkout or from a source tree unpacked from a release tarball so
  that one can use these to build directly from a GIT checkout using NMake,
  or to have gmmproc and generate_wrap_init.pl ready to use to build other
  -mm libraries.

