Kjell Ahlstedt [Sun, 26 Oct 2025 14:37:08 +0000 (26 15:37 +0100)]
 
3.8.0
Kjell Ahlstedt [Sun, 26 Oct 2025 14:25:45 +0000 (26 15:25 +0100)]
 
tools/test_scripts: Add testheaders.sh and testmmh.h
Kjell Ahlstedt [Mon, 22 Sep 2025 14:32:44 +0000 (22 16:32 +0200)]
 
Meson build: Set the license to LGPL 3.0
That's what COPYING and sigc++/tuple-utils/*.h specify.
See https://bugzilla.gnome.org/show_bug.cgi?id=763616
Kjell Ahlstedt [Sun, 21 Sep 2025 12:58:02 +0000 (21 14:58 +0200)]
 
Meson build: Use SPDX expression for license
This is the recommended format.
See https://gitlab.freedesktop.org/cairo/cairomm/-/merge_requests/33
Kjell Ahlstedt [Sun, 21 Sep 2025 12:53:41 +0000 (21 14:53 +0200)]
 
Meson build: Use the Python installation that Meson uses
and remove the unused Meson variable cpp_compiler_id.
Concerning Python installation, see
https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/67 and
https://github.com/libsigcplusplus/libsigcplusplus/pull/83
Kjell Ahlstedt [Mon, 28 Apr 2025 06:22:34 +0000 (28 08:22 +0200)]
 
Documentation: Clarify download locations
Future releases will not be stored at download.gnome.org/sources/.
Very old releases are not stored at github.com/libsigcplusplus/
libsigcplusplus/releases/.
Kjell Ahlstedt [Mon, 28 Apr 2025 05:45:35 +0000 (28 07:45 +0200)]
 
Meson build: Better detection of MSVC-like compilers
Treat all compilers with MSVC-like argument syntax the same.
Use cpp_compiler.get_define('_MSC_VER') instead of
cpp_compiler.version() to check compiler version.
Suggested by Tim-Philipp Müller and Chun-wei Fan.
See https://gitlab.freedesktop.org/cairo/cairomm/-/merge_requests/30
Kjell Ahlstedt [Sun, 27 Apr 2025 14:41:03 +0000 (27 16:41 +0200)]
 
Meson build: Don't distribute libsigcplusplus.doap
Philippe Baril Lecavalier [Sun, 27 Apr 2025 10:27:44 +0000 (27 06:27 -0400)]
 
build-pdf: Prevent infinite loop in dblatex
By default, dblatex goes on an infinite loop if it can't find a font.
Kjell Ahlstedt [Mon, 21 Apr 2025 14:40:56 +0000 (21 16:40 +0200)]
 
CMakeLists.txt: Change minimum required cmake version from 3.2 to 3.10
Fixes #112
Kjell Ahlstedt [Mon, 21 Apr 2025 14:39:19 +0000 (21 16:39 +0200)]
 
Remove ChangeLog.pre-2-3-1
Kjell Ahlstedt [Sat, 5 Apr 2025 06:27:03 +0000 (5 08:27 +0200)]
 
Remove obsolete FSF (Free Software Foundation) address
See https://github.com/libxmlplusplus/libxmlplusplus/pull/72
Kjell Ahlstedt [Wed, 12 Feb 2025 15:29:10 +0000 (12 16:29 +0100)]
 
Meson build: Add install_tag keyword argument
Kjell Ahlstedt [Wed, 5 Feb 2025 09:39:09 +0000 (5 10:39 +0100)]
 
CI: Publish the generated libsigc++-3.0.tag file
Kjell Ahlstedt [Wed, 5 Feb 2025 09:38:49 +0000 (5 10:38 +0100)]
 
docs/docs/reference/Doxyfile.in: Remove unsupported entries
Kjell Ahlstedt [Thu, 12 Dec 2024 14:21:34 +0000 (12 15:21 +0100)]
 
CI: Update publish-docs.yml
Use actions/upload-pages-artifact@v3 instead of v1, to avoid a soon
deprecated version of upload-artifact.
Rémi Hérilier [Wed, 4 Sep 2024 09:20:26 +0000 (4 11:20 +0200)]
 
signal_connect: Simplify ambiguity removal when compiling with MSVC
commented "const" in sigc::mem_fun prototypes' are meaningless. Using a
"const T_obj" as argument type when the method is const void any conflict.
remove useless struct in test program.
Kjell Ahlstedt [Tue, 3 Sep 2024 13:13:07 +0000 (3 15:13 +0200)]
 
signal_connect(): Add @newin
Rémi Hérilier [Tue, 20 Aug 2024 17:11:55 +0000 (20 19:11 +0200)]
 
signal_connect: Add helper functions to ease connecting functions or methods to signals
Those helper functions have 2 main usages:
* avoid writing template parameters in case of method or function overloading;
* wrap use of sigc::mem_fun or sigc::ptr_fun when possible.
unsupported cases:
* lambda functions;
* std::function (or alike);
* volatile functions;
* const? volatile methods;
* binding with sigc::bind.
Julia DeMille [Sat, 31 Aug 2024 20:12:13 +0000 (31 15:12 -0500)]
 
fix: don't check MSVC version for non-MSVC cl
Julia DeMille [Sat, 31 Aug 2024 20:06:31 +0000 (31 15:06 -0500)]
 
Meson: Detect cl-like compilers
This fixes DLL linkage with clang-cl or intel-cl.
Kjell Ahlstedt [Fri, 19 Jul 2024 14:01:26 +0000 (19 16:01 +0200)]
 
CI: Install meson >= 0.62
* .github/workflows/meson-clang.yml:
* .github/workflows/meson-gcc.yml:
* .github/workflows/publish-docs.yml: Install meson with pip instead of apt.
Kjell Ahlstedt [Fri, 19 Jul 2024 13:51:16 +0000 (19 15:51 +0200)]
 
Meson build: Use Meson's pkgconfig module
instead of using the *.pc.in templates.
Require meson >= 0.62. Remove the can_add_dist_script variable.
It's unnecessary when the meson version >= 0.58.
Simplify the calls to dependency().get_variable().
Kjell Ahlstedt [Wed, 3 Jul 2024 14:07:23 +0000 (3 16:07 +0200)]
 
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.
Kjell Ahlstedt [Wed, 3 Jul 2024 14:06:58 +0000 (3 16:06 +0200)]
 
docs/docs/reference/Doxyfile.in: Remove obsolete entries
Kjell Ahlstedt [Tue, 21 May 2024 13:50:13 +0000 (21 15:50 +0200)]
 
docs/doc.md: Don't link to developer-old.gnome.org
That web site has been removed.
Kjell Ahlstedt [Mon, 25 Mar 2024 10:13:29 +0000 (25 11:13 +0100)]
 
scoped_connection: Remove [[nodiscard]]
Can cause unwarranted warnings from some compilers, or compiler versions.
Fixes #102
Kjell Ahlstedt [Mon, 15 Jan 2024 11:42:13 +0000 (15 12:42 +0100)]
 
CI: Build reference documentation with meson-msvc
Kjell Ahlstedt [Sun, 14 Jan 2024 09:20:34 +0000 (14 10:20 +0100)]
 
meson.build: Update htmlrefpub
Kjell Ahlstedt [Sun, 14 Jan 2024 09:07:46 +0000 (14 10:07 +0100)]
 
Meson build: Add the build-manual option
Kjell Ahlstedt [Tue, 26 Dec 2023 09:28:39 +0000 (26 10:28 +0100)]
 
README.md: Add info about building the documentation
Fixes #101
Daniel Boles [Thu, 23 Nov 2023 22:14:35 +0000 (23 22:14 +0000)]
 
slot|signal: static_assert not using R,T... syntax
This can lead to clearer errors by explaining the user's error, not just
saying they used an incomplete type (why is it incomplete?). I don't use
only static_assert(false) because that's ill-formed before C++23, AFAIK,
& even if it's OK in some cases I don't grok which... so hope this works
https://github.com/libsigcplusplus/libsigcplusplus/issues/86
Kjell Ahlstedt [Mon, 11 Dec 2023 10:18:59 +0000 (11 11:18 +0100)]
 
meson.build: Don't fail if warning_level=everything
Kjell Ahlstedt [Sun, 1 Oct 2023 08:26:50 +0000 (1 10:26 +0200)]
 
3.6.0
Kjell Ahlstedt [Thu, 7 Sep 2023 08:41:15 +0000 (7 10:41 +0200)]
 
signal: Add connect_first()
Add connect_first(const slot_base&) and connect_first(slot_base&&)
in internal::signal_impl, signal_base, signal_with_accumulator and
trackable_signal_with_accumulator.
Replace some calls to connect() by connect_first() in test_signal
and test_scoped_connection.
Fixes #81
Daniel Boles [Thu, 3 Aug 2023 09:15:06 +0000 (3 10:15 +0100)]
 
manual: Add paragraph about new scoped_connection
Kjell Ahlstedt [Sat, 29 Jul 2023 10:35:33 +0000 (29 12:35 +0200)]
 
Docs: Update a link in libsigc_manual.xml
Kjell Ahlstedt [Fri, 28 Jul 2023 13:53:07 +0000 (28 15:53 +0200)]
 
CI: Use the ubuntu-latest runner
and use the default versions of gcc and clang.
Kjell Ahlstedt [Fri, 28 Jul 2023 13:51:48 +0000 (28 15:51 +0200)]
 
CI: Add meson-msvc
and trigger cmake-msvc only manually.
Fixes #98
Kjell Ahlstedt [Thu, 27 Jul 2023 15:14:53 +0000 (27 17:14 +0200)]
 
Meson build: Don't require the 'dot' command
Make it possible to build documentation without the dot command.
Set the HAVE_DOT option in Doxyfile during configuration.
In Autotools builds it's still unconditionally YES.
The inheritance diagrams don't look as nice without the dot
command from the GraphViz package.
See #98
Kjell Ahlstedt [Sun, 23 Jul 2023 17:00:07 +0000 (23 19:00 +0200)]
 
scoped_connection.h: Add one more SIGC_API
Kjell Ahlstedt [Sun, 23 Jul 2023 14:57:26 +0000 (23 16:57 +0200)]
 
scoped_connection.h: Add SIGC_API on swap()
Kjell Ahlstedt [Sun, 23 Jul 2023 14:27:21 +0000 (23 16:27 +0200)]
 
test_scoped_connection.cc: not -> !
MSVC does not accept the 'not' boolean operator.
Kjell Ahlstedt [Sun, 23 Jul 2023 13:55:12 +0000 (23 15:55 +0200)]
 
scoped_connection: Remaining minor fixes
Kjell Ahlstedt [Sun, 23 Jul 2023 13:52:55 +0000 (23 15:52 +0200)]
 
CI: Trigger clang-format-check only manually
Daniel Boles [Sat, 22 Jul 2023 17:32:53 +0000 (22 18:32 +0100)]
 
scoped_connection: new wrapper to auto-disconnect…
…a contained sigc::connection, when the scoped_connection is destructed.
https://github.com/libsigcplusplus/libsigcplusplus/issues/87
Kjell Ahlstedt [Thu, 6 Jul 2023 13:59:46 +0000 (6 15:59 +0200)]
 
Remove AUTHORS and add general information to README.md
See https://gitlab.gnome.org/GNOME/gtkmm/-/issues/140
Chun-wei Fan [Wed, 5 Jul 2023 03:27:07 +0000 (5 11:27 +0800)]
 
sigc++config.h.*: Update comment on MSVC warning C4251
This still applies here today, sadly, so make the comment clearer.
Chun-wei Fan [Wed, 5 Jul 2023 03:22:40 +0000 (5 11:22 +0800)]
 
sigc++config.h.*: Drop Visual Studio noexcept workaround
We already need Visual Studio 2017 or later, so this part is not used
at all here.
Chun-wei Fan [Tue, 27 Jun 2023 02:22:46 +0000 (27 10:22 +0800)]
 
MSVC-Builds.md: Add info on CMake and Meson
Let people know it is also supported to build libsigc++ using CMake or Meson
with Visual Studio and the tools required for builds directly from GIT
checkouts
Chun-wei Fan [Mon, 26 Jun 2023 04:26:48 +0000 (26 12:26 +0800)]
 
Visual Studio builds: Convert build docs to MarkDown
Convert the README.txt to MarkDown format so that it is easier on the eye in
terms of formatting, and update some of the info:
* ARM64 is actually supported
* Move the part on static builds as appropriate
* Some other minor tweaks
Chun-wei Fan [Mon, 26 Jun 2023 04:26:48 +0000 (26 12:26 +0800)]
 
MSVC_NMake/README.txt: Mention about static builds
Chun-wei Fan [Mon, 26 Jun 2023 04:22:27 +0000 (26 12:22 +0800)]
 
sigc++.pc.in: Set -DLIBSIGCXX_STATIC in cxxflags as needed
Update the Meson build files to put in -DLIBSIGCXX_STATIC when we are building
a static build of libsigc++.
For the CMake and autotools build, this is not used.
Chun-wei Fan [Mon, 26 Jun 2023 03:56:39 +0000 (26 11:56 +0800)]
 
NMake Makefiles: Accomodate static builds during "install"
Copy the built DLL and PDB only if building a shared build, and copy the
appropriate .lib file according to the build type.
Chun-wei Fan [Mon, 26 Jun 2023 03:25:42 +0000 (26 11:25 +0800)]
 
build: Actually support MSVC static builds
Apply -DLIBSIGCXX_STATIC as appropriate when we request a static build to be
done for the Meson and NMake builds, and skip building the version .rc file
if a static build is requested.
For the NMake builds, separate the build artifacts from the static and shared
builds.
The CMake builds are not updated here as it always assumes a shared build, nor
are the autotools builds since it is not used for Visual Studio builds at all.
Chun-wei Fan [Mon, 26 Jun 2023 07:22:10 +0000 (26 15:22 +0800)]
 
build: Drop _WINDLL from sigc++config.h.[in|meson|cmake]
...and add a new check macro LIBSIGCXX_STATIC, to use the appropriate macros to
build and link against libsigc++. Drop this from the build files as well.
Chun-wei Fan [Mon, 26 Jun 2023 07:20:53 +0000 (26 15:20 +0800)]
 
meson: Disallow default_library == 'both' on Visual Studio
We need different defines/cflags for building static and shared builds of
libsigc++, so we can't really support default_library = 'both' for libsigc++
without much retinkering.
So, just disallow such builds at least for now.
Also, save up whether we are attempting a static build in the Visual Studio
build.
Kjell Ahlstedt [Wed, 31 May 2023 16:36:58 +0000 (31 18:36 +0200)]
 
connection: Improve the class documentation
Fixes #88
Kjell Ahlstedt [Wed, 31 May 2023 16:36:39 +0000 (31 18:36 +0200)]
 
Doxyfile.in: Remove obsolete entries
Kjell Ahlstedt [Wed, 31 May 2023 16:35:45 +0000 (31 18:35 +0200)]
 
sigc++.pc.in: Update htmlrefpub
Kjell Ahlstedt [Mon, 3 Apr 2023 09:18:19 +0000 (3 11:18 +0200)]
 
README.md, CI: meson -> meson setup
Kjell Ahlstedt [Mon, 3 Apr 2023 09:17:59 +0000 (3 11:17 +0200)]
 
meson.build: Simplify if-file-exists test
Francesco Emanuele D'Agostino [Sat, 14 Jan 2023 23:46:51 +0000 (15 00:46 +0100)]
 
introducing protection to prevent multiple target declaration for uninstall.
Kjell Ahlstedt [Wed, 4 Jan 2023 09:56:31 +0000 (4 10:56 +0100)]
 
meson.build: Fix the evaluation of is_git_build on Windows
See gtkmm#131
Kjell Ahlstedt [Wed, 4 Jan 2023 09:53:56 +0000 (4 10:53 +0100)]
 
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.
Kjell Ahlstedt [Fri, 23 Dec 2022 10:17:22 +0000 (23 11:17 +0100)]
 
3.4.0
Kjell Ahlstedt [Fri, 23 Dec 2022 10:16:17 +0000 (23 11:16 +0100)]
 
meson.build: Don't distribute the .github directory
Kjell Ahlstedt [Sun, 18 Dec 2022 17:31:00 +0000 (18 18:31 +0100)]
 
CI: Add publish-docs.yml
Kjell Ahlstedt [Mon, 7 Nov 2022 12:20:13 +0000 (7 13:20 +0100)]
 
Meson build: Always call subdir('tests')
Make the build_tests check more like the check in cairomm and libxml++.
Then it's possible to combine build-tests=false with benchmark=true.
See PR#84
Fabrice Fontaine [Sat, 5 Nov 2022 14:04:36 +0000 (5 15:04 +0100)]
 
add build_tests option
Allow the user to disable build of test programs
Signed-off-by: Fabrice Fontaine <[email protected]>
wael [Fri, 4 Nov 2022 05:23:43 +0000 (4 08:23 +0300)]
 
meson: simplify lookup of python command
Kjell Ahlstedt [Tue, 25 Oct 2022 13:41:25 +0000 (25 15:41 +0200)]
 
docs/devel.md: Change libsigc-list to Discourse
The libsigc-list will soon be closed for new contributions.
Kjell Ahlstedt [Tue, 27 Sep 2022 07:44:27 +0000 (27 09:44 +0200)]
 
meson.build: Detect if we build from a git subtree
See https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/72 (William Roy)
Kjell Ahlstedt [Mon, 15 Aug 2022 14:20:30 +0000 (15 16:20 +0200)]
 
Fix build with -Dbuild-deprecated-api=false
Fixes #82
Kjell Ahlstedt [Wed, 20 Jul 2022 19:53:12 +0000 (20 21:53 +0200)]
 
Update README.md
Kjell Ahlstedt [Tue, 31 May 2022 15:24:51 +0000 (31 17:24 +0200)]
 
test_accumulated.cc: clang++ requires another 'template'
Kjell Ahlstedt [Tue, 31 May 2022 14:57:50 +0000 (31 16:57 +0200)]
 
Add trackable_signal_with_accumulator and trackable_signal
trackable_signal_with_accumulator derives from trackable.
A slot made with trackable_signal_with_accumulator::make_slot() is
automatically disconnected when the signal is deleted, as in sigc++2.
Fixes #80
Kjell Ahlstedt [Tue, 31 May 2022 13:30:15 +0000 (31 15:30 +0200)]
 
Revert "signal_with_accumulator derives from trackable"
This reverts commit 
8fb78907ccf3c4425d23ba1555f365f22d376685.
It's not safe. See #80
Kjell Ahlstedt [Mon, 30 May 2022 16:38:28 +0000 (30 18:38 +0200)]
 
test_limit_reference.cc: Don't use auto where a slot is required
The return values of sigc::bind() and sigc::bind_return() shall be
converted to sigc::slot, otherwise automatic disconnection does not work.
Fixes #44
Kjell Ahlstedt [Mon, 30 May 2022 14:14:55 +0000 (30 16:14 +0200)]
 
signal_with_accumulator derives from trackable
A slot made with signal_with_accumulator::make_slot() is then
automatically disconnected when the signal is deleted, as in sigc++2.
Fixes #80
Chun-wei Fan [Mon, 23 May 2022 11:02:03 +0000 (23 19:02 +0800)]
 
Meson/MSVC: Re-organize warnings-related compiler flags
Add a short description for each of the warnings-related compiler flags that we
are using.
Also, only apply '/wd4267' for 64-bit builds, since it is a warning that should
only be related to 64-bit builds.
Chun-wei Fan [Mon, 23 May 2022 10:56:50 +0000 (23 18:56 +0800)]
 
Meson: Compensate for the lack of msvc_recommended_pragmas.h
libsigc++ does not depend on GLib, so msvc_recommended_pragmas.h may not be
available.  If it isn't, disable warning C4244 to compensate for it.
Kjell Ahlstedt [Thu, 19 May 2022 12:46:03 +0000 (19 14:46 +0200)]
 
Format source code to suit clang-format-12
Format sigc++/signal_base.h.
Kjell Ahlstedt [Thu, 19 May 2022 12:05:23 +0000 (19 14:05 +0200)]
 
signal::make_slot() docs: Note that signal does not derive from trackable
and therefore the made slot must be manually disconnected if the
signal is deleted. See #80
Kjell Ahlstedt [Tue, 17 May 2022 08:47:10 +0000 (17 10:47 +0200)]
 
CI: Remove some tests with autotools
Remove the tests with autotools build and clang 8, clang 9, gcc 8 and gcc 9.
Test meson build with gcc 10 instead of gcc 9.
Kjell Ahlstedt [Tue, 17 May 2022 08:45:28 +0000 (17 10:45 +0200)]
 
meson.build: Avoid configuration warnings
Kjell Ahlstedt [Wed, 27 Apr 2022 16:11:08 +0000 (27 18:11 +0200)]
 
examples/member_method: Make on_print() non-virtual
so it can be compiled with the -Wnon-virtual-dtor compiler option.
Kjell Ahlstedt [Wed, 27 Apr 2022 16:10:48 +0000 (27 18:10 +0200)]
 
Fix some comments
Kjell Ahlstedt [Wed, 20 Apr 2022 13:54:19 +0000 (20 15:54 +0200)]
 
Format source code to suit clang-format-12
Format sigc++/adaptors/track_obj.h.
Kjell Ahlstedt [Wed, 20 Apr 2022 12:54:30 +0000 (20 14:54 +0200)]
 
Add track_object(), deprecate track_obj()
track_object() checks that the listed objects derive from sigc::trackable.
Fixes #78
Kjell Ahlstedt [Fri, 11 Feb 2022 15:10:36 +0000 (11 16:10 +0100)]
 
3.2.0
Kjell Ahlstedt [Fri, 11 Feb 2022 15:07:35 +0000 (11 16:07 +0100)]
 
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: ...).
Kjell Ahlstedt [Fri, 11 Feb 2022 15:06:04 +0000 (11 16:06 +0100)]
 
docs/docs/reference/Doxyfile.in: Remove obsolete entry
Kjell Ahlstedt [Mon, 31 Jan 2022 08:36:45 +0000 (31 09:36 +0100)]
 
tools/tutorial-custom-cmd.py: Add comment about used stylesheet
Kjell Ahlstedt [Sun, 9 Jan 2022 08:41:11 +0000 (9 09:41 +0100)]
 
CI: Install docbook-xsl where documentation is built
If docbook-xsl is installed, the xsltproc command reads stylesheets
from local files instead of from http://docbook.sourceforge.net.
Faster and safer. Reading from docbook.sourceforge.net sometimes fails.
Remove test with g++-7.
Kjell Ahlstedt [Wed, 29 Dec 2021 14:17:12 +0000 (29 15:17 +0100)]
 
docs: Fix links to sigc::slot and sigc::signal
Doxygen creates links to sigc::slot and sigc::signal only if
template parameters are included in the documentation.
sigc::slot<T_return(T_arg...)>, sigc::signal<T_return(T_arg...)>.
Kjell Ahlstedt [Sun, 26 Dec 2021 17:27:32 +0000 (26 18:27 +0100)]
 
ptr_fun(), mem_fun() docs: Remove left-overs from sigc++-2.0
Some documentation of template parameters described sigc++-2.0
rather than sigc++-3.0.
Kjell Ahlstedt [Sun, 26 Dec 2021 17:27:07 +0000 (26 18:27 +0100)]
 
Reformat to suit clang-format-12
Kjell Ahlstedt [Sun, 26 Dec 2021 17:26:44 +0000 (26 18:26 +0100)]
 
CI: Use clang-format-12
and call clang-format directly without using autogen.sh + make.
Kjell Ahlstedt [Thu, 23 Dec 2021 12:14:16 +0000 (23 13:14 +0100)]
 
Second attempt to suit clang-format 10
Irritating that different versions of clang-format don't agree on what's
an acceptable format, and that clang-format 10 is not easily installable
on Ubuntu 21.10.