2020-03-17 Kjell Ahlstedt <
[email protected]>
2.65.1
2020-03-17 Kjell Ahlstedt <
[email protected]>
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 <
[email protected]>
glib/glibmm-uninstalled.pc.in: Require sigc++-3.0
2020-03-17 Kjell Ahlstedt <
[email protected]>
Glib, Gio: Regenerate docs.xml and .defs files
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 Chun-wei Fan <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
NMake Makefiles: Fix 'install' for Meson tarballs
We need to look for headers from untracked/ as well.
2020-03-09 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-09 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-09 Chun-wei Fan <
[email protected]>
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 <
[email protected]>
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 <
[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-07 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-07 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-07 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-07 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-07 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.
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 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-05 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-05 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-04 Kjell Ahlstedt <
[email protected]>
Activate the glibmm_ustring_compose test
It was (probably by mistake) disabled by commit
729b1ae95d5d05b78741eeef1d635f95b19d790b
2020-03-03 Kjell Ahlstedt <
[email protected]>
gio/giomm/meson.build: Silence a warning from Meson
static_library() can't take a version: argument.
2020-03-03 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-02 Kjell Ahlstedt <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
Makefile.am: Distribute files necessary for building with Meson
2020-03-02 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-02 Chun-wei Fan <
[email protected]>
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 <
[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-02 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-02 Chun-wei Fan <
[email protected]>
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 <
[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-02 Chun-wei Fan <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
meson.build: Disable warning C4589 on Visual Studio
This warning can be ignored as well.
2020-03-02 Chun-wei Fan <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
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 <
[email protected]>
Add support for building glibmm with Meson
glibmm can be built with either Autotools or Meson.
See MR !27
2020-03-01 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]>
NMake Makefiles: Fix headers installation
Fix Copy-n-paste error...
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]>
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-26 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-26 Chun-wei Fan <
[email protected]>
NMake Makefiles: build glibmm_generate_extra_defs-2.xx.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 produce
sigc-3.0.lib like the autotools builds, so make sure we link to the
correct .lib file.
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 Makefiles: Split outdir by toolset version
This reduces the likelihood of accidently mixing binaries linked to
different CRT versions within a single build tree.
Also, fix up building the tests as new tests were added along the way.
2019-12-26 Chun-wei Fan <
[email protected]>
NMake Makefiles: Use /utf-8 where available
This avoids miscompilations and errors when building under certain
locales (Chinese, Korean and Japanese in particular) as the compiler
could not handle Unicode sequences properly without this flag.
2019-12-26 Chun-wei Fan <
[email protected]>
NMake MAkefiles: Add USE_MESON_LIBS
This allows one to use C++ dependencies built using Meson in an easier
way, as applicable.
2019-12-20 Kjell Ahlstedt <
[email protected]>
Gio::AsyncResult: Improve the class description
Fixes #27
2019-12-15 Kjell Ahlstedt <
[email protected]>
Glib::Binding: Keep a binding alive even without a RefPtr
A binding between properties can remain even after all RefPtr<Binding>s
are gone. This is similar to how Gtk::Widget::set_controller() works
in gtkmm4.
Fixes #62, see !21
2019-12-14 Kjell Ahlstedt <
[email protected]>
Derive Glib::Error from std::exception, remove Glib::Exception
Glib::Error::what() returns const char* (was Glib::ustring). It overrides
std::exception::what() that returns const char* and is noexcept.
Fixes #23
2019-11-30 Thomas Holder <
[email protected]>
Use Glib::UStringView with Glib::ustring::compare()
and with the comparison operators, operator==(), etc.
Add the glibmm_ustring_compare test case.
https://gitlab.gnome.org/GNOME/glibmm/issues/64
https://gitlab.gnome.org/GNOME/glibmm/issues/65
2019-11-24 Kjell Ahlstedt <
[email protected]>
SettingsSchemaSource: Wrap new_from_directory()
https://bugzilla.gnome.org/show_bug.cgi?id=783216
Fix
https://gitlab.gnome.org/GNOME/glibmm/issues/19
Close
https://gitlab.gnome.org/GNOME/glibmm/merge_requests/20
2019-11-24 Daniel Boles <
[email protected]>
SettingsSchemaSource: Implement list_schemas()
https://bugzilla.gnome.org/show_bug.cgi?id=783216
https://gitlab.gnome.org/GNOME/glibmm/issues/19
https://gitlab.gnome.org/GNOME/glibmm/merge_requests/20
2019-11-21 Thomas Holder <
[email protected]>
Glib::Regex: Use UStringView
Fixes #66
2019-11-20 Kjell Ahlstedt <
[email protected]>
Glib: Replace StringView with StdStringView and UStringView
StdStringView and UStringView force users to be explicit (by using c_str())
when using a std::string where a Glib::ustring is recommended or vice versa.
See issue #64
2019-11-18 Pavlo Solntsev <
[email protected]>
Update value_custom.h
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-17 Pavlo Solntsev <
[email protected]>
Glib: Adding static check for template parameter
To meet requirements for the passed type, compile
type check for the passed type was added.
2019-11-15 Kjell Ahlstedt <
[email protected]>
Glib::Binding: get_source() and get_target() return ObjectBase*
Fixes #63
2019-11-15 Kjell Ahlstedt <
[email protected]>
Glib::Binding: Explain why SlotTransform takes GValue*
Fixes #61
2019-11-14 Thomas Holder <
[email protected]>
fix ustring::insert(iterator, In, In)
2019-11-09 Daniel Boles <
[email protected]>
tests/glibmm_binding: Add basic test inc transform
A basic test is better than nothing, and I just changed how the
transform function works and want to be confident it still does.
2019-11-09 Daniel Boles <
[email protected]>
Binding: Use std::optional instead of out-ref+bool
The pattern of returning a boolean to indicate whether an output
reference was set is messy and error-prone. C++17 adds std::optional,
which exists precisely to indicate that a result is available or not.
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]>
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
Note: My next thought was we can just take SlotTypeTransforms in the
argument list, instead of totally arbitrary functors, so the conversion
would be done at call site instead of via extra code in the body. But I
didn't get that working yet, and it should be a separate commit anyway.
2019-11-09 Daniel Boles <
[email protected]>
Binding: Better explain purpose of SlotTransform,
and use better formatting for it too.
2019-11-09 Daniel Boles <
[email protected]>
Binding: Fix using outdated enums in documentation
They are not Glib::BINDING_* anymore, but rather Glib::Binding::Flags::*
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 .....
972 | inline ustring_Iterator<T>::ustring_Iterator(
const ustring_Iterator<std::string::iterator>& other)
2019-10-23 Kjell Ahlstedt <
[email protected]>
Add Glib::canonicalize_filename()
Fixes #59
2019-10-23 Kjell Ahlstedt <
[email protected]>
Glib: Replace BasicStringView with non-template StringView
A call to path_get_dirname(StdStringView filename) with a Glib::ustring
fails if StdStringView does not have a constructor that takes a
const Glib::ustring&. StdStringView and UStringView are now aliases of
StringView, whose names show which data type is preferred.
See issue #34
2019-10-23 Mike Fleetwood <
[email protected]>
Correct spelling of spawn_async_with_pipes() in doc comment
2019-10-23 Kjell Ahlstedt <
[email protected]>
Glib: Add BasicStringView, StdStringView, UStringView
and use them in build_filename() and other functions in miscutils.hg.
Fixes #34
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-19 Kjell Ahlstedt <
[email protected]>
glib/src/miscutil.hg: Remove obsolete descriptions
These should have been removed when Glib::ArrayHandle was replaced
by std::vector.
2019-10-07 Kjell Ahlstedt <
[email protected]>
Glib::MainContext: Add push/pop/get_thread_default()
See issue #56
2019-10-07 Kjell Ahlstedt <
[email protected]>
Glib::get_host_name(): Return a Glib::ustring
g_get_host_name() returns a UTF-8 string.
2019-10-07 Kjell Ahlstedt <
[email protected]>
NEWS: Add a missing issue number
2019-09-23 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
2019-09-22 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