2025-03-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.8
2025-03-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Use the Python installation that Meson uses
See !67
2025-03-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Avoid compiler warnings with new versions of glib
* glib/glibmm/class.cc:
* glib/glibmm/interface.cc: Put G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS around
g_type_default_interface_ref() and g_type_default_interface_unref().
They are deprecated in glib >= 2.83.4.
* glib/glibmm/object.cc: Put G_GNUC_BEGIN/END_IGNORE_DEPRECATIONS around
g_type_class_ref() and g_type_class_unref().
They are deprecated in glib >= 2.83.4.
2025-03-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Remove ChangeLog.pre-2-36-2
2025-03-11 Chun-wei Fan <fanc999@yahoo.com.tw>
tests: Fix running on Windows 11
Windows 11 deprecated and removed WordPad in the 24H2 update[1], meaning
the "c:/Windows/write.exe" path is no longer applicable.
Use the venerable NotePad instead here to make sure things continue to
work, ie. "c:/Windows/notepad.exe".
[1]: https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features-resources
2025-02-26 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::LoadableIcon: Remove extra commas from _CLASS_INTERFACE()
Remove the extra commas in _CLASS_INTERFACE(LoadableIcon, GLoadableIcon,
G_LOADABLE_ICON, GLoadableIconIface, Icon, GIcon, , , GIOMM_API)
otherwise GIOMM_API is not inserted in the generated code.
2025-02-14 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Add install_tag keyword argument, require meson >= 0.60
2025-01-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson: Require meson version >= 0.58
* Don't distribute .gitlab-ci.yml.
* Remove the can_add_dist_script variable. Possible when meson version >= 0.58.
* dependency().get_variable(pkgconfig: 'xxx', internal: 'xxx') ->
dependency().get_variable('xxx'). Possible when meson version >= 0.58.
2025-01-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
CI: Add .gitlab-ci.yml
Necessary when making a release.
See https://handbook.gnome.org/maintainers/making-a-release.html
2024-12-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Replace gtkmm.org by gtkmm.gnome.org
2024-12-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/Doxyfile.in: Remove unsupported entries
2024-11-04 Christian Eggers <ceggers@arri.de>
giomm: DBus: Fix memory leak.
The string returned by g_dbus_error_get_remote_error() must be free'd
with g_free().
https://docs.gtk.org/gio/type_func.DBusError.get_remote_error.html#return-value
2024-07-03 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Don't link to removed parts of gnome.org
Don't link to library.gnome.org or developer.gnome.org.
Require python3 >= 3.7. That's what Meson requires.
2024-06-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README.md: Remove reference to developer-old.gnome.org
2024-06-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::Date::order(), MainContext::query(): Fix some comments
* glib/glibmm/main.h:
* glib/src/date.hg: Remove documentation of non-existent return values.
2024-06-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/Doxyfile.in: Remove obsolete entries
2024-06-06 Jan Burgmeier <jan.burgmeier@gmx.de>
Fix memory leak in DBus::generate_guid()
Docu states that caller must free the memory see:
https://docs.gtk.org/gio/func.dbus_generate_guid.html
2024-05-21 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/pm/DocsParser.pm: Don't link to developer.gnome.org
Fix a comment that refers to the gtk-doc manual.
See #120
2024-05-19 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/defs_gen/h2def.py: Avoid syntax warnings from Python 3.12
Python 3.12 issues "SyntaxWarning: invalid escape sequence"
for expressions like '\s+'. Change to raw strings: r'\s+'.
2024-04-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::ActionGroup, Gio::DBus::MethodInvocation: Remove unnecessary code
Remove unnecessary forward class declarations.
Clang 18 on Windows does not like them.
2024-04-12 Chun-wei Fan <fanc999@yahoo.com.tw>
generate_wrap_init_pl.in: Also consider clang-cl
clang-cl also defines _MSC_VER like Visual Studio, but uses GCC-style
directives for silencing warnings for inconsistent dllimport directives
(that is outside of glibmm's control), so we update the previous commit
to now first check for __GNUC__ and __clang__, and then _MSC_VER.
Silences warnings for inconsistent dllimport directives for clang-cl as
well, in addition to GCC-style CLang.
2024-04-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tests/glibmm_interface_implementation: NULL -> nullptr
Clang 18 does not consider NULL good enough in calls to g_object_get().
2024-04-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
generate_wrap_in.pl.in: Ignore -Winconsistent-dllimport from clang
The clang compiler on Windows warns like MSVC, when declarations
in wrap_init.cc lacks __declspec(dllimport).
Compare https://gitlab.gnome.org/GNOME/glibmm/-/commit/d661472529852c358f2ff441dcc396db3027075a
Fixes #119
2024-03-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.7
2024-03-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::content_type_guess(): Remove most of an unneccesary overload
clang 19.0.0 does not like the overload that takes a
const std::basic_string<guchar>&. This overload should have been removed
16 years ago by commit 84135b93a20e6c9fe652849959d3ff90474c99bb.
It can't be removed completely now, because that would break ABI.
Remove as much as possible.
Fixes #118
2024-01-17 Chun-wei Fan <fanc999@yahoo.com.tw>
NMake Makefiles: Use GLIB_INCLUDEDIR instead of GLIB_BASE_INCLUDEDIR
Make things more consistent with the rest of the line, and in line with
README.win32.md.
2024-01-17 Chun-wei Fan <fanc999@yahoo.com.tw>
NMake Makefiles: Fix previous commit
The updates in create-lists-msvc.mak is left out in the previous commit,
as the test and example program targets are generated on the fly
2024-01-17 Chun-wei Fan <fanc999@yahoo.com.tw>
NMake Makefiles: Make dep paths configurable
This way, one may opt to pass in a base include|libpath|tools_path, plus
conrresponding paths to GLib and libsigc++ as needed to assist NMake in
finding the headers, .lib's and tools from the dependencies as needed so
that building things with NMake is made easier with more flexibility.
2024-01-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
subprojects/sigc++-2.0.wrap: Get the libsigc++-2-12 branch
2023-12-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Don't fail if warning_level=everything
2023-10-25 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/defs_gen/h2def.py: Make return types that are unsigned work
GdkDmabufTextureBuilder contains functions that return unsigned int.
2023-07-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Remove AUTHORS and README.SUN; add info to README.md
See gtkmm#140
2023-07-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Update glibmm.doap
2023-06-29 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README.md: Generate a link to README.win32.md
[file.md](file.md) generates a link to file.md in
gitlab.gnome.org/GNOME/glibmm (I think).
2023-06-27 Chun-wei Fan <fanchunwei@src.gnome.org>
README.win32.md: Few fixes
There were some leftovers from the C++17 branches, so update with the right
info
2023-06-27 Chun-wei Fan <fanchunwei@src.gnome.org>
README.win32: Convert to MarkDown
Convert the README.win32 file into MarkDown format so that it is easier on the
eye for formatting, and convert it to UNIX line endings. Also update the info
that is in there to reflect the current situation on Visual Studio better.
2023-06-23 Daniel Boles <dboles.src@gmail.com>
Gio::File: Fix various spelling errors in .hg docs
2023-06-14 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/enum.pl, tools/defs_gen/enumextract.py: Accept XXX = YYY + 1
Accept "+" in GTK_ALIGN_BASELINE = GTK_ALIGN_CENTER + 1,
2023-06-01 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Doxyfile.in: Remove obsolete entries
and add a comment in tools/m4/class_shared.m4.
2023-06-01 Jeremy Bicha <jeremy.bicha@canonical.com>
tests: Test for /etc/passwd instead of /etc/fstab
/etc/fstab is not guaranteed to exist on modern Linux distros
2023-03-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.6
2023-02-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Doxyfile.in: Don't hide undocumented classes
Might make the inheritance diagrams less incomplete when Doxygen's
tag files are not perfect.
2023-02-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::Dispatcher: Remove a g_warning()
Don't warn when a Dispatcher is deleted while messages are pending.
Fixes #108
2023-02-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README.md: meson -> meson setup
2023-01-13 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Simplify if-file-exists test
2023-01-09 Chun-wei Fan <fanc999@yahoo.com.tw>
generate_wrap_init.pl.in: Disable warning C4273
... for Visual Studio builds, as GLib 2.75.x and later applied
__declspec(dllimport) via macros to DLL builds of the GLib libraries,
meaning that when we put the GQuark and GType function prototypes into
wrap_init.cc warning C4273 will be raised as the prototypes in
wrap_init.cc does not have any dllimport decorations (and would not have
otherwise mattered).
This allows builds with '-Dwarnings=fatal' to proceed with Visual Studio
builds.
Please see: MR!57.
2023-01-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Simplify lookup of python command
See libsigcplusplus PR#83
2023-01-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Fix the evaluation of is_git_build on Windows
See gtkmm#131
2023-01-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Don't copy files with configure_file()
It's deprecated from Meson 0.64. The replacement, fs.copyfile(),
is not useful here. It only copies from the source directory to
the build directory.
2022-12-31 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::Module::build_path(): Ignore deprecation of g_module_build_path()
2022-11-05 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::NetworkMonitor::get_default(): Add refreturn
Fixes #104
2022-10-10 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Doxyfile.in: Allow more graph nodes
Required for Glib::Object's inheritance diagram.
2022-09-26 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Detect if we build from a git subtree
See gtkmm!72 (William Roy)
2022-09-19 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.5
2022-09-19 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Doxyfile.in: Remove obsolete entry
2022-09-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Convert README to README.md
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-06-09 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::ListStore: Don't derive a gtkmm__GListStore GType
GListStore is declared G_DECLARE_FINAL_TYPE.
2022-06-09 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-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-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.4
2022-05-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::ustring_Iterator: Accept a warning from clang++
The fix in commit 94ab1e5359f3bd9eb8204aadea88e08f52a291d8
broke ABI. Revert the modification of ustring_Iterator.
It's difficult to avoid a -Wdeprecated-copy warning from clang++
without either removing or adding ABI.
Fixes #98
2022-05-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.3
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-02-25 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib, Gio: Use _WRAP_METHOD(..., ignore_deprecations)
2022-02-25 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.
2022-02-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Check if Perl is required for building documentation
New versions of mm-common use the Python scripts doc_postprocess.py
and doc_install.py instead of the Perl scripts doc-postprocess.pl and
doc-install.pl when documentation is built.
2022-02-15 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Declare some copy constructors =default
Avoid warnings from the clang++ compiler.
It's deprecated to implicitly declare a copy constructor, if there
is a user-defined or user-deleted (=delete) 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-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.66. 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-05 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.2
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-10-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::Binding, Gio::Application: Don't use g_quark_from_static_string()
Replace it by g_quark_from_string().
g_quark_from_static_string() can't be used for initializing static
data, 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-07-31 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Use GLib from the main branch in subproject
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-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-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.1
2021-05-19 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Documentation: Let links point to glibmm-2.4 and gtkmm-3.0 versions
2021-05-18 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add dependencies to Doxygen tag files in subprojects
Doxygen in a main project shall not be called before tag files have been
created or updated in subprojects.
2021-05-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-06 Chun-wei Fan <fanchunwei@src.gnome.org>
build: Clean up MSVC build files
We can just drop the ignores for the C4251, C4530 and C4275 warnings at this
point, after cleaning up our headers
2021-05-06 Chun-wei Fan <fanchunwei@src.gnome.org>
variantdbusstring.h: Drop GLIBMM_API decoration
There is no API to export in the class definitions here, so just remove the
GLIBMM_API decoration. This will remove C4275 warnings from code including
the header.
2021-05-06 Chun-wei Fan <fanchunwei@src.gnome.org>
fileattributeinfo.hg: Avoid exporting classes with std::string members
This will help us to also eliminate C4251 warnings from code that use the
FileAttributeInfo class.
2021-05-06 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.
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.
* examples/meson.build: Build examples/network/resolver if libsigc++ is
a subproject and 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-09 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-04-08 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: No implicit_include_directories
2021-03-26 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-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-13 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 the linker did not report it as an error long ago.
2021-03-08 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-03-03 Chun-wei Fan <fanchunwei@src.gnome.org>
glib/src/binding.hg: Export Glib::manage()
The newly-added function was missing a GLIBMM_API annotation, causing this
function not to be exported. Fixes build of the glibmm binding test
program on Visual Studio-style builds.
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
2021-02-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::MemoryInputStream: Ignore deprecation of g_memdup()
2021-01-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.66.0
2021-01-25 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.
Gio::Socket::create() can throw an exception. Put it in a try block.
See #84
2021-01-14 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::SettingsSchemaSource: Wrap new_from_directory() and list_schemas()
Similar to commits by Daniel Boles in the master branch.
See https://bugzilla.gnome.org/show_bug.cgi?id=783216,
issue #19 and MR !20
2021-01-14 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib, Gio: Regenerate docs.xml and .defs files
Regenerated while the glib-2-66 branch was checked out from glib.
2021-01-13 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Fix build-deprecated-api=false
* glib/glibmm/timeval.[cc|h]: Glib::TimeoutSource in glibmm/main.h
contains a TimeVal. Some TimeVal methods are used in glibmm/main.cc.
These methods must be declared and defined when glibmm is being built.
* glib/src/balancedtree.hg: Add _CONFIGINCLUDE(glibmmconfig.h).
2021-01-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Deprecate Glib::BalancedTree in favour of std::map
or std::unordered_map. See issue #78
2021-01-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add new enum values to Gio::MenuAttribute
See issue #78
2021-01-12 Andreas Persson <andreasp56@outlook.com>
Make Gio::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.
See MR !38 and issue #78.
2021-01-12 Daniel Boles <dboles@src.gnome.org>
Glib::Binding: Add set_manage() to not require a RefPtr
Allow users to call Glib::manage(RefPtr<Binding>) in order to defeat our
pre-existing and still default behaviour that a user must keep a RefPtr
to the Binding in order to keep it alive, instead letting it revert to
the C-style behaviour of staying alive as long as either object does.
We use Glib::manage() to avoid the possible pitfall of a user calling
->set_manage() on the result of bind_property*(), which might be empty.
This patch has been modified by Kjell Ahlstedt.
This modified version stores the new instance data in a GQuark
instead of new member data, which would have broken ABI.
Fixes https://gitlab.gnome.org/GNOME/glibmm/issues/62
2021-01-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/Doxyfile.in: Remove obsolete entries
2021-01-11 Daniel Boles <dboles@src.gnome.org>
Glib::Binding: Clarify need to hold ref, poss empty objs
and move the documentation on lifetime away from bind_property_value()
up to the class description/intro.
https://gitlab.gnome.org/GNOME/glibmm/issues/62
2021-01-11 Daniel Boles <dboles@src.gnome.org>
tests/glibmm_binding: Test that unbind() stops props syncing
2020-12-12 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 be able to build and run
with both glib 2.68 and older versions of glib.
2020-12-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Gio::MenuModel: Improve documentation of enums
Improve the documentation of enums Gio::MenuAttribute and Gio::MenuLink.
See #78
2020-12-01 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.64.5
2020-11-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
gmmproc: Fix compatibility with gtkmm 3.24.2
* tools/m4/class_shared.m4: Check if __FUNC_DECORATION__ is defined.
class_gtkobject.m4 in gtkmm 3.24.2 and older does not define it.
Fixes #82
It's not necessary to push this patch to the master branch.
That branch is not compatible with gtkmm-3 anyway.
2020-11-22 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-21 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.64.4
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>
Glib::BalancedTree docs: Recommend std::map or std::unordered_map
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-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-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 2015 or later, unless the
'msvc14x-parallel-installable' option is set to be false during configuration.
The reasoning behind this change is that there are subtle problems when, for
instance, one tries to link to a Visual Studio 2015-built glibmm when building
gtkmm and libxml++ with Visual Studio 2017 or 2019. This is unfortunate as
Microsoft did try hard to make interoperating between binaries built with
Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API,
but unfortunately this hits the corner cases where this compatibility does not
work.
As the name suggests, this attempts to make Visual Studio 2015, 2017 and 2019
builds share a single set of underlying C DLLs easier, while avoiding breakages
caused by such subtle differences.
2020-06-16 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Fix building GIO tests/examples
Make sure we look for the GIO headers first in this build tree or source tree
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-15 Chun-wei Fan <fanchunwei@src.gnome.org>
glib/glibmm/ustring.h: Fix building on Visual Studio 2015
Commit 8b8af81f accidentally changed the macro check from '_MSC_VER' to
'MSC_VER', fix that, so that things build correctly on Visual Studio 2015
2020-06-12 Chun-wei Fan <fanchunwei@src.gnome.org>
Update README.win32
Let people know that it is recommended (and even required at some
points) to use the same Visual Studio version for building glibmm and
dependent software, even for Visual Studio 2015, 2017 and 2019.
2020-06-12 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019
It was found that we cannot rely on the fact that Visual Studio
2015~2019 tried very hard to be binary compatible, as there are corner
cases when linking against glibmm built with Visual Studio 2015 with
builds done by Visual Studio 2017 and 2019 where the code will fail to
link and the DLLs are therefore not ABI-compatible. Note that the
libsigc++ DLLs, however, are ABI compatible between these 3 Visual
Studio versions.
As a result, for the DLL and LIB names, use 'vc140' for Visual Studio
2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for
Visual Studio 2019 builds, according to the toolset versions as defined
by Microsoft.
For people that may have previously built glibmm with Visual Studio 2017
or 2019, which had 'vc140' in the built .lib and DLL, an NMake option
'USE_COMPAT_LIBS' is added to make building such binaries with 'vc140'
easier, if needed.
2020-06-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-08 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/gmmproc.in: Add a comment
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>
Bump version
We need to update the version so that we can be able to check whether we
have enough support in gmmproc to be ready to use __declspec(dllexport)
instead of gendef.exe to export symbols for modules that build on top of
the glibmm-2.4 branch, as they may well depend on older stable glibmm-2.4
versions that do not have such support.
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: Apply `decl_prefix GIOMM_API` to _WRAP_ENUM
This way, we can ensure that the headers generated with gmmproc marks
the template<> classes with GIOMM_API, so that we can export them in
Visual Studio builds.
Note that for those _WRAP_ENUM calls marked with NO_GTYPE, there is no
need to add 'decl_prefix ...'.
2020-04-04 Chun-wei Fan <fanchunwei@src.gnome.org>
glib/src: Apply `decl_prefix GLIBMM_API` to _WRAP_ENUM
This way, we can ensure that the headers generated with gmmproc marks
the template<> classes with GLIBMM_API, so that we can export them in
Visual Studio builds.
Note that for those _WRAP_ENUM calls marked with NO_GTYPE, there is no
need to add 'decl_prefix ...'.
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.
2020-03-22 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.64.2
2020-03-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::build_filename(): Fix the template overload
and add some tests to tests/glibmm_buildfilename/main.cc.
Fixes #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.64.1
2020-03-18 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib: Add missing #includes
Fixes #69
2020-03-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.64.0
2020-03-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::Regex docs: Clarify the deprecation of match() and match_all()
See MR !26
2020-03-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib, Gio: Regenerate docs.xml and .defs files
and update gio/src/gio_signals.defs.patch
2020-03-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
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 <kjellahlstedt@gmail.com>
Add Glib::canonicalize_filename()
Fixes #59
2020-03-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add a templated Glib::build_filename() overload
that uses Glib::StdStringView. It avoids some unnecessary string copies.
Fixes #34
2020-03-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add Glib::UStringView and Glib::StdStringView
See issue #34
2020-03-15 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::MainContext: Add push/pop/get_thread_default()
See issue #56
2020-03-15 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Glib::get_host_name(): Return a Glib::ustring
g_get_host_name() returns a UTF-8 string.
2020-03-15 scx <scx.mail@gmail.com>
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 <scx.mail@gmail.com>
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 <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 Kjell Ahlstedt <kjellahlstedt@gmail.com>
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 <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-12 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-12 Chun-wei Fan <fanchunwei@src.gnome.org>
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 <fanchunwei@src.gnome.org>
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 <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-12 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-12 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-12 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-09 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Fix 'install' for Meson tarballs
We need to look for headers from under untracked/
2020-03-09 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-09 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.
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 <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-09 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-07 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-05 Chun-wei Fan <fanchunwei@src.gnome.org>
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 <fanchunwei@src.gnome.org>
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 <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-05 Chun-wei Fan <fanchunwei@src.gnome.org>
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.
Generated by dwww version 1.16 on Sat Oct 3 05:40:52 CEST 2026.