2020-03-17  Kjell Ahlstedt  <[email protected]>

       2.64.0

2020-03-17  Kjell Ahlstedt  <[email protected]>

       Glib::Regex docs: Clarify the deprecation of match() and match_all()

       See MR !26

2020-03-16  Kjell Ahlstedt  <[email protected]>

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

       and update gio/src/gio_signals.defs.patch

2020-03-16  Kjell Ahlstedt  <[email protected]>

       Glib::Regex: Deprecate some uses of match() and match_all()

       Deprecate use of rvalue string references, such as temporary values.

       See issue #66 and MR !26

2020-03-16  Kjell Ahlstedt  <[email protected]>

       Add Glib::canonicalize_filename()

       Fixes #59

2020-03-16  Kjell Ahlstedt  <[email protected]>

       Add a templated Glib::build_filename() overload

       that uses Glib::StdStringView. It avoids some unnecessary string copies.

       Fixes #34

2020-03-16  Kjell Ahlstedt  <[email protected]>

       Add Glib::UStringView and Glib::StdStringView

       See issue #34

2020-03-15  Kjell Ahlstedt  <[email protected]>

       Glib::MainContext: Add push/pop/get_thread_default()

       See issue #56

2020-03-15  Kjell Ahlstedt  <[email protected]>

       Glib::get_host_name(): Return a Glib::ustring

       g_get_host_name() returns a UTF-8 string.

2020-03-15  scx  <[email protected]>

       Add Glib::get_host_name()

       Wraps g_get_host_name() from glib.
       Return a name for the machine.

       Closes GNOME/glibmm#58

2020-03-15  scx  <[email protected]>

       Add Glib::get_user_runtime_dir()

       Wraps g_get_user_runtime_dir() from glib.
       Returns a directory that is unique to the current user on the local system.

       Closes GNOME/glibmm#57

2020-03-14  Kjell Ahlstedt  <[email protected]>

       README: Describe building with Meson and Autotools

2020-03-12  Kjell Ahlstedt  <[email protected]>

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

       Fixes #68

2020-03-12  Kjell Ahlstedt  <[email protected]>

       glibmmconfig.h.in: Add GLIBMM_CAN_USE_THREAD_LOCAL for non-Windows builds

       Define GLIBMM_CAN_USE_THREAD_LOCAL, if its config test program succeeds.

2020-03-12  Chun-wei Fan  <[email protected]>

       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-12  Chun-wei Fan  <[email protected]>

       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-12  Chun-wei Fan  <[email protected]>

       Drop gendef

       We are now using __declspec(dllexport) to export symbols from the glibmm
       and giomm DLLs, so we no longer need to have gendef around.

2020-03-12  Chun-wei Fan  <[email protected]>

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

       Drop all the compatibility bits for Visual Studio 2013 as Visual Studio
       2013 does not have sufficient C++11 support to build glibmm.

       Make sure that we do enable GLIBMM_CAN_USE_THREAD_LOCAL as Visual Studio
       2015 or later has thread_local, but we must also ensure that we do not
       mark DispatcherNotifier for export as a result, since thread_local
       conflicts with __declspec(dllexport).

       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 2017 so that we do not get a linker error
       as GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS is not supported.

2020-03-12  Chun-wei Fan  <[email protected]>

       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-12  Chun-wei Fan  <[email protected]>

       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-12  Chun-wei Fan  <[email protected]>

       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-12  Chun-wei Fan  <[email protected]>

       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-09  Chun-wei Fan  <[email protected]>

       NMake Makefiles: Fix 'install' for Meson tarballs

       We need to look for headers from under untracked/

2020-03-09  Chun-wei Fan  <[email protected]>

       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-09  Chun-wei Fan  <[email protected]>

       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.

       Currently this only allows specifications that end with _API, and this also
       decorates the `friend wrap_init() method in the generated Glib::Error class

2020-03-09  Chun-wei Fan  <[email protected]>

       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-09  Chun-wei Fan  <[email protected]>

       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-07  Chun-wei Fan  <[email protected]>

       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-05  Chun-wei Fan  <[email protected]>

       Revert "meson: Don't use `objects:` in glibmm, giomm"

       This reverts commit b03c6d558d912ab66cafac37d5c9fdd63e46d61b.

       Apparently that commit caused the g++ linker to optimize most of the
       items out from the final library.

2020-03-05  Chun-wei Fan  <[email protected]>

       meson: Don't use `objects:` in glibmm, giomm

       Instead, use or extend `link_with:`

       Please see: https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/28#note_731510

2020-03-05  Chun-wei Fan  <[email protected]>

       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-05  Chun-wei Fan  <[email protected]>

       glib/glibmmconfig.h.in: Define GLIBMM_CAN_USE_THREAD_LOCAL on MSVC

       Visual Studio 2015 (the minimum Visual Studio compiler that we can use
       for glibmm) supports this, so turn this on.

2020-03-05  Chun-wei Fan  <[email protected]>

       meson.build: Ignore warning C4146

       Warning C4146 is often part-of-life when building items on Visual
       Studio, and since we are sure about the things we want to check for,
       we can ignore this too.

2020-03-04  Kjell Ahlstedt  <[email protected]>

       Add support for building glibmm with Meson

       glibmm can be built with either Autotools or Meson.

       These new files have been copied from the master branch, and some of them
       have been changed.

       The parts that concern Windows and MSVC have been created by Chun-wei Fan.

       See MR !28

2020-03-04  Chun-wei Fan  <[email protected]>

       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-04  Chun-wei Fan  <[email protected]>

       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-04  Chun-wei Fan  <[email protected]>

       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-04  Chun-wei Fan  <[email protected]>

       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-03  Kjell Ahlstedt  <[email protected]>

       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  <[email protected]>

       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  <[email protected]>

       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.

2020-02-26  Chun-wei Fan  <[email protected]>

       README.win32: Mention that XML::Parser is required for builds from GIT

       The gmmproc PERL script actually requires the XML::Parser PERL module to be
       installed for the PERL interpreter.

2020-02-25  Chun-wei Fan  <[email protected]>

       NMake Makefiles: "Install" gmmproc items

       ...so that one may be able to use these in the future for other -mm packages.

       Also update the header installation as they could have been generated during
       the build.  Update README.win32 to indicate building from a GIT checkout is
       better supported, and how one may carry this build out.

2020-02-25  Chun-wei Fan  <[email protected]>

       MSVC_NMake: Re-order build rules

       This way we can avoid re-compilation of wrap_init.cc sources in builds from a
       release tarball.

2020-02-25  Chun-wei Fan  <[email protected]>

       MSVC_NMake: Add rules to generate and build sources

       ...from a GIT checkout, from the various .ccg/.hg and the *.[cc|h].m4 sources,
       as well as the wrap_init.cc sources.  This will obviously require PERL, as well
       as a Cygwin or MSYS installation that has a working m4 executable for Windows
       for this to work.  Note that release tarballs continue to build on Visual
       Studio as they did before, without the need for PERL nor m4.

       Note that this does not yet support generating [glib|gio]mmconfig.h nor
       [glib|gio]mm.rc from their .in counterparts, as well as tools\gmmproc
       and tools\generate_wrap_init.pl, which will be done in a later commit.

2020-02-25  Chun-wei Fan  <[email protected]>

       MSVC_NMake: Avoid hard-coding versions

       Fix the update on building glibmm_generate_extra_defs-x.y.lib and just use
       macros instead, to ease maintenance.

2020-02-24  Chun-wei Fan  <[email protected]>

       NMake Makefiles: Use PDBVER instead of VSVER for toolset

       Since this is the C++-11 series of glibmm, and Visual Studio 2015~2019
       share the same CRTs, let them all use the PDB version (v14) as binaries
       in this case should be interchangeable.  For Visual Studio 2013, the PDB
       version is the same as VSVER (v12), so 2013 builds will remain separate.

2020-02-24  Chun-wei Fan  <[email protected]>

       NMake Makefiles: build glibmm_generate_extra_defs-2.4.lib

       Since this is entirely buildable by Visual Studio, build it as well and see
       whether we can use this to allow builds from GIT checkouts for other -mm
       libraries with MSVC builds.

       Copy this .lib and its header upon 'install'.

2020-02-07  Chun-wei Fan  <[email protected]>

       MSVC_NMake/config-msvc.mak: Correct libsigc++ libname

       libsigc++'s Meson build files have been corrected to output
       'sigc-2.0.lib', like the autotools builds, so correct the library name
       here.

2020-01-05  Daniel Boles  <[email protected]>

       Variant: Avoid . to not split an intro doc comment

       Doxygen interprets the first . to mean the end of the introductory
       blurb, so that resulted in this sentence suddenly ending after the "i."
       in "i.e." in the short version and having a line break there in the long

2019-12-27  Chun-wei Fan  <[email protected]>

       NMake: Split outdir by toolset version

       This reduces the likelihood of accidently mixing binaries linked against
       different CRTs in a single glibmm build tree.

2019-12-26  Chun-wei Fan  <[email protected]>

       NMake Makefiles: Use /utf-8 where available

       This avoids miscompilations under certain locales (Chinese, Japanese and
       Korean in particular) where Unicode sequences are not properly handled
       by the Visual Studio compiler.

2019-12-26  Chun-wei Fan  <[email protected]>

       NMake Makefiles: Add USE_MESON_LIBS

       This makes it easier for builds that use C++ dependencies that are built
       with Meson, where applicable.

2019-12-20  Kjell Ahlstedt  <[email protected]>

       Gio::AsyncResult: Improve the class description

       Fixes #27

2019-11-22  Kjell Ahlstedt  <[email protected]>

       Glib::Regex doc: Note that Glib::ustring must be used in match methods

       See issue #66 and MR !25

2019-11-18  Kjell Ahlstedt  <[email protected]>

       Avoid unnecessary conversions between std::string and Glib::ustring

       A few implicit conversions in tests/ have been kept. They are probably
       deliberate, to test implicit conversion. Inspired by issue #65

2019-11-16  Thomas Holder  <[email protected]>

       fix ustring::insert(iterator, In, In)

2019-11-15  Kjell Ahlstedt  <[email protected]>

       Glib::Binding: Explain why SlotTransform takes GValue*

       Fixes #61

2019-11-09  Daniel Boles  <[email protected]>

       Binding: no point to set target value if got false

       If we return false, GBinding ignores target GValue, so there’s no point
       setting it. Besides, if the transform function returned false, that says
       they couldn't calculate a target value, so they shouldn’t assign to `to`

       I default-construct primitive `T_to`s in case anyone *was* reading those
       for some daft reason, so they get a zero-initialised value instead of UB

2019-11-09  Daniel Boles  <[email protected]>

       tests/glibmm_binding: Add basic test inc transform

       A basic test is better than nothing, and I propose to change how the
       transform function works so want to be fully confident it still does.

2019-11-09  Daniel Boles  <[email protected]>

       Binding: Move SlotTypeTransform up and document it

       This is more maintainable than all the arguments to all the overloads of
       bind_property() manually repeating the signature in their documentation,
       plus more user-friendly as we document it, users can use the typedef, &c

2019-11-09  Daniel Boles  <[email protected]>

       Binding: Better explain purpose of SlotTransform,

       and use better formatting for it too.

2019-11-03  Kjell Ahlstedt  <[email protected]>

       Glib::ustring_Iterator: Explicitly declare copy assignment

       This disables a warning from g++ 9.2 (abbreviated here):

       In member function ‘bool Glib::ustring::validate(Glib::ustring::iterator&)’:
       error: implicitly-declared ..... is deprecated [-Werror=deprecated-copy]
       1206 |   first_invalid = iterator(string_.begin() + (valid_end - pdata));
       note: because ..... has user-provided .....
       1066 | inline ustring_Iterator<T>::ustring_Iterator(
       const ustring_Iterator<std::string::iterator>& other)

2019-10-24  Mike Fleetwood  <[email protected]>

       Correct spelling of spawn_async_with_pipes() in doc comment

2019-10-22  Kjell Ahlstedt  <[email protected]>

       Gio::DBus::Connection: Make the wrap() function thread-safe

       Add a std::mutex that guarantees that two threads don't create C++
       wrappers for the same GDBusConnection instance.

       Fixes #56

2019-10-09  Kjell Ahlstedt  <[email protected]>

       NEWS: Add a missing issue number