2023-10-01 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.12.1
2023-07-06 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Remove AUTHORS and add general information to README.md
See https://gitlab.gnome.org/GNOME/gtkmm/-/issues/140
2023-06-27 Chun-wei Fan <fanchunwei@src.gnome.org>
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
2023-06-27 Chun-wei Fan <fanchunwei@src.gnome.org>
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:
* Note that although Visual Studio 2013 is supported to build libsigc++, but
Visual Studio 2015 or later is likely needed to build packages that use
libsigc++
* ARM64 is actually supported
* Update info on build from GIT checkout.
* Move the part on static builds as appropriate
* Some other minor tweaks
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
MSVC_NMake/README.txt: Mention about static builds
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
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 autotools build, this is not used.
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
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.
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
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 autotools builds since it is not used for Visual Studio builds at all.
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
build: Drop _WINDLL from sigc++config.h.[in|meson]
...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.
2023-06-26 Chun-wei Fan <fanchunwei@src.gnome.org>
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.
2023-05-31 Kjell Ahlstedt <kjellahlstedt@gmail.com>
connection: Improve the class documentation
Fixes #88
2023-05-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
slot, signal docs: Describe the slot<void(int)> syntax more
See #86
2023-05-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Doxyfile.in: Remove obsolete entries
2023-04-03 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README.md: meson -> meson setup
2023-04-03 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Simplify if-file-exists test
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-23 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.12.0
2022-11-07 Kjell Ahlstedt <kjellahlstedt@gmail.com>
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
2022-11-07 Fabrice Fontaine <fontaine.fabrice@gmail.com>
add build_tests option
Allow the user to disable build of test programs
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2022-11-07 wael <40663@proton.me>
meson: simplify lookup of python command
2022-09-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Detect if we build from a git subtree
See https://gitlab.gnome.org/GNOME/gtkmm/-/merge_requests/72 (William Roy)
2022-08-15 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Fix build with -Dbuild-deprecated-api=false
Fixes #82
2022-07-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Convert README to README.md
2022-05-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
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
2022-05-24 Chun-wei Fan <fanchunwei@src.gnome.org>
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.
2022-05-23 Chun-wei Fan <fanchunwei@src.gnome.org>
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.
2022-05-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Avoid configuration warnings
2022-04-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
examples/member_method: Make on_print() non-virtual
so it can be compiled with the -Wnon-virtual-dtor compiler option.
2022-04-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add track_object(), deprecate track_obj()
track_object() checks that the listed objects derive from sigc::trackable.
Fixes #78
2022-02-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.8
2022-02-11 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: ...).
2022-02-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/Doxyfile.in: Remove obsolete entry
2022-01-31 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tools/tutorial-custom-cmd.py: Add comment about used stylesheet
2021-12-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Revert "sigc++.h: Don't mention CMake"
This reverts commit 53551050c59c3a35e64816f78e555ee2e064cc31.
sigc++-2.0 can be used by a CMake project even though
sigc++-2.0 itself has not been built with CMake.
2021-12-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
sigc++.h: Don't mention CMake
There is no CMake support in sigc++-2.0.
2021-11-09 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Allow building with VS2022
Add checks to distnguish between VS2019 and VS2022.
2021-09-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/manual, Meson config: Check if xmllint can be used
2021-09-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/manual: Upgrade from DocBook 4.1 to DocBook 5.0
2021-08-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Check if Perl is required for building documentation
New versions of mm-common use the Python scripts doc_postprocess.py
and doc_install.py instead of the Perl scripts doc-postprocess.pl and
doc-install.pl when documentation is built.
2021-07-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs: Remove some obsolete files
Remove docs/manual/README and docs/reference/README.
2021-07-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/manual: Add some formatting when html files are generated
making it slightly more similar to gtkmm-documentation and libxml++.
In Autotools builds, don't distribute the empty manual/README file.
2021-07-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/manual/libsigc_manual.xml: Add id on <sect1> elements
2021-05-20 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.7
2021-05-19 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Documentation: Let links point to sigc++2 and gtkmm3 versions
2021-05-18 Chun-wei Fan <fanchunwei@src.gnome.org>
Visual Studio build files: Some cleanups
Replace /wd4530 with /EHsc, as that is the more proper CXXFlag to use for
Visual Studio builds for C++ projects.
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-14 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.
Fixes #71
2021-05-05 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0
* meson.build:
* MSVC_NMake/meson.build:
* docs/manual/meson.build:
* docs/reference/meson.build:
* sigc++/meson.build:
Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.
* tools/handle-built-files.py:
* tools/tutorial-custom-cmd.py:
Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT.
It exists if meson.version() >= 0.58.0.
2021-05-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Make quiet installations possible
* tools/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-07 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: No implicit_include_directories
2021-03-31 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Fix dependency on generated files
Add meson.build files in all subdirectories of sigc++/ where .h and/or .cc
files are generated. Looks like it's necessary in order to have all
dependent .cc files recompiled when a .h.m4 file has been changed.
Don't know if it has always been necessary, or if it has become necessary
due to changes in Meson and/or Ninja.
2021-03-26 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Make it possible to use sigc++ as a subproject
mm-common can be a subproject of sigc++.
2021-03-26 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/Doxyfile.in: Remove obsolete entries
2020-11-25 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.6
2020-10-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
sigc++/sigc++.h: Fix a typo
2020-10-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
sigc++/sigc++.h: Describe how to use libsigc++ with meson
2020-10-04 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Docs: Change libsigc++ webpage mentions to GitHub
Change libsigc.sourceforge.net to
libsigcplusplus.github.io/libsigcplusplus.
2020-09-28 Tom Schoonjans <Tom.Schoonjans@rfi.ac.uk>
Meson build: fix versioning on macOS
2020-09-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.4
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.
2020-07-22 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Fix building from Meson-built tarballs
We need to look for sigc++config.h in $(srcroot)\untracked\MSVC_NMake also, and
make sure that we do not generate sources unnecessarily.
Also streamline the source generating process into the 'all' target, so there
is no more need to run the 'prep-git-build' target.
2020-07-08 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 libsigc++,
which can be used on Windows 10 on ARM systems.
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-27 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/manual/libsigc_manual.xml: Update signal and slot syntax
Update the syntax of template parameters.
sigc::signal<void,int> -> sigc::signal<void(int)>. The old syntax is
deprecated.
Mention lambda expressions.
Although sigc::retype() is a template function, no template parameters
shall be specified when it's called.
See #59
2020-06-18 Chun-wei Fan <fanchunwei@src.gnome.org>
Re-work the NMake Makefiles
Do some cleanups, to improve maintainability and running speed, where:
* Change instances of 'libsigcpp' to 'sigc'
* "Generate" the build rules for the test and example programs, instead
of hand-writing them, since they use largely similar rules.
* Don't use separate rules to create intermediate directories, so that
we do not need to re-load the Makefiles unnecessarily
2020-06-18 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Add rules to generate sources
This adds rules to use m4 to generate the headers and sources from their .m4
counterparts, which allows building directly from a GIT checkout, after
running the 'prep-git-build' target.
Update the README.txt file to reflect on this enhancement, and make sure the
generated headers are also copied when running the 'install' target
2020-06-18 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Add rules to generate sigc.rc and sigc++config.h
This adds a 'prep-git-build' target which is run before building any of the
other targets so that this paves the first steps in making the libsigc++-2-10
branch buildable directly from a GIT checkout with the NMake Makefiles.
Note that unlike the master (3.x) branch, we still need to use m4 to generate
some sources and headers, which will be covered in the following commit.
2020-06-18 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Support Visual Studio 2019 better
Make Visual Studio 2019 builds distinct from 2017 builds. Note that for the
libsigc++-2-10 branch, we do not distinguish between Visual Studio 2015, 2017
and 2019 in regards to the built DLL and .lib filenames, since they are
found to be interchangeable.
2020-06-18 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Use 'md' instead of 'mkdir'
This is to avoid confusion if we have the UNIX 'mkdir' command in our PATH, such as
when Cygwin is installed and used.
2020-04-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Meson build: Set default value of the 'warnings' option to 'min'
* MSVC_NMake/meson.build: Copy sigc++config.h with configure_file().
* Makefile.am: Remove tools/dist-cmd.py.
* docs/manual/meson.build:
* docs/reference/meson.build: Don't use tools/dist-cmd.py.
* sigc++/meson.build: Don't use tools/dist-cmd.py.
* meson.build: Use dist-warnings when a tarball is tested by
'ninja dist' or 'meson dist'. Check if doc-reference.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'.
* tools/dist-cmd.py: Removed file. It's not necessary in add_dist_script()
when the first parameter is python3.path().
2020-03-25 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.3
2020-03-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README: Describe building with Meson and Autotools
and remove the description of the directory structure,
which is not very useful.
2020-03-10 Kjell Ahlstedt <kjellahlstedt@gmail.com>
examples: Disable deprecated API when building with Meson
Deprecated SIGCXX API is disabled when example programs are built
with Autotools. Do the same when building with Meson.
2020-01-13 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README: Describe building with Meson
2020-01-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
docs/reference/meson.build: Check if perl is found
Don't use perl.path() when configuring Doxyfile, if perl is not found.
Perl is not required, if build-documentation=false.
Fixes #53
2019-12-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Change project name, sigc++ -> libsigc++
Autotools make tarballs called libsigc++-x.y.z.tar.xz. No reason to
change that. The leading "lib" is now also restored in some locations
in the reference documentation.
2019-12-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Update untracked/README
2019-12-29 Kjell Ahlstedt <kjellahlstedt@gmail.com>
meson.build: Check if .git is a directory or a file
In a git worktree, .git is a regular file.
See https://gitlab.gnome.org/GNOME/pangomm/merge_requests/8
2019-12-29 Kjell Ahlstedt <kjellahlstedt@gmail.com>
sigc++/meson.build: Library name is sigc-2.0
Pointed out by Chun-wei Fan in PR #51.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
NMake Makefiles: Separate outdir by toolset version
This is to reduce the likelihood of accidently mixing DLLs that are
linked with different CRTs in the build tree.
Also clean up rules a bit.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
build: Support NMake builds from Meson tarballs
This adds inference rules to the NMake Makefiles to also look for the
sources that are in untracked/, and to ensure that the generated MSVC
build files (sigc++-config.h and sigc.rc) are copied into
untracked/MSVC_NMake, so that they can be built properly even with
NMake.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
meson: Build Windows .rc files on Windows
This ensures that on Windows, the version info resources are indeed
linked into the libsigc++ DLL.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
meson/Windows: Fix builds when builddir is a subdir of source tree
It appears that Meson did not construct the paths properly for
shutil.copy2() when building in a build directory that is a
subdirectory of the sources, when using meson.current_build_dir(),
possibly due how path separators are handled.
Fix this by constructing the paths using project_build_root / 'MSVC_NMake'.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
meson.build: Fix 'meson dist' on Windows
Since we are assured that we are using Python 3.x on when we run Meson, we
do not really need to look for the 'python3' executable, but we could
just use whatever Python interpreter that is used to run Meson.
This will fix situations where it is commonly the case where we may have
multiple Python 3.x installations on Windows (www.python.org, and those
from Cygwin/mingw-w64), so that Meson really uses one and only one
Python installation to run everything that is Python-related, which will
thus fix '[meson|ninja] dist' on Visual Studio builds.
2019-12-29 Chun-wei Fan <fanchunwei@src.gnome.org>
Meson/MSVC: Support builds directly from GIT checkouts
It appears that if one uses the m4 that is given by mingw-w64 (and
perhaps Cygwin), that m4 is enough to generate the sources and headers
that we need for the build.
So, remove the lines saying building directly from GIT checkouts are not
supported.
2019-12-24 Chun-wei Fan <fanchunwei@src.gnome.org>
meson: Ensure symbols are exported on MSVC builds
Make sure the correct build macros are specified when building
libsigc++, so that:
-The symbols are properly exported
-We do not break builds as a result of unecesary warnings
2019-12-24 Chun-wei Fan <fanchunwei@src.gnome.org>
meson: Relax MSVC version requirement to 2015
libsigc++ requires a C++-11-compliant compiler, so we can just make the
build look for Visual Studio 2015 instead of Visual Studio 2017 15.7.
Visual Studio 2013 also works, but since it will spew out loads of
warnings and the latest C++-11 version of glibmm is not buildable with
Visual Studio 2013, let's just require Visual Studio 2015.
2019-12-24 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Add support for building libsigc++-2.0 with Meson
libsigc++-2.0 can be built with either Autotools or Meson.
2019-12-10 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Make libsigc_manual.xml valid
Fix errors reported by "xmllint --postvalid".
2019-07-03 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tests/test_track_obj: Fix for clang++
clang++ complains if private members are unused, so make them protected.
error: private field 'bar_' is not used [-Werror,-Wunused-private-field]
2019-06-12 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.2
2018-11-11 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Create only .tar.xz tarballs
* configure.ac: This is what ftp.gnome.org wants, so this avoids
it doing any repackaging. This is what gtkmm does.
2018-10-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
2.10.1
2018-10-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
tests: Catch exceptions by const ref
To avoid "error: catching polymorphic type ‘class std::range_error’ by value"
2018-10-30 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Update README and .gitignore
2018-10-30 Chun-wei Fan <fanchunwei@src.gnome.org>
builds: Add README file for MSVC builds
Let people know how Visual Studio builds can be done and the options
that can be used for the builds.
2018-10-30 Chun-wei Fan <fanchunwei@src.gnome.org>
builds: Remove Visual Studio 2013 projects
The NMake Makefiles superseded them, so let's just remove them.
This will make builds with later Visual Studio versions simpler, and
will make maintaining the Visual Studio build files easier.
2018-10-30 Chun-wei Fan <fanchunwei@src.gnome.org>
builds: Add NMake Makefiles
This adds a set of NMake Makefiles that can be used to build
libsigc++-2.10.x (and the later C++11 versions of libsigc++) with Visual
Studio 2013 or later. Building the example, the tests and the
benchmarking programs are supported in addition to building the main
libsigc++ DLL.
Note that for the C++-11 releases, we name the DLLs and LIBs as
sigc-vc140-2_0.[dll|lib] or sigc-vc140-d-2_0.[dll|lib] for Visual Studio
2015 and 2017 builds as these builds link to the msvcp140[d].dll and
vcruntime140[d].dll C/C++ runtime DLLs.
This set of NMake Makefiles are now dist'ed in place of the Visual
Studio 2013 project files.
2018-10-30 Chun-wei Fan <fanchunwei@src.gnome.org>
build: Consolidate source listing into sigc++/filelist.am
This is for enabling the upcoming NMake Makefiles to use this file
as well, in addition to the autotools build files, to build the
libsigc++ DLL.
2018-10-30 Chun-wei Fan <fanchunwei@src.gnome.org>
builds: Rename MSVC_Net2013 as MSVC_NMake
This is to prepare for the transition for the Visual Studio build
files to NMake Makefiles.
2018-08-29 Kjell Ahlstedt <kjellahlstedt@gmail.com>
slot, signal: Avoid compiler warnings from function pointer conversions
gcc8 -Wextra prints a warning when a single reinterpret_cast is used for
conversion between different types of function pointers. The previous fix
with a union in sigc::internal::bitwise_equivalent_cast<>() is not standard
C++. Rename the function to function_pointer_cast<>(), and use two
reinterpret_casts as recommended in gcc's documentation.
Fixes #8
2018-08-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Update libsigcplusplus.doap
2018-08-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
configure.ac: Update home page and bug report address
2018-08-02 Kjell Ahlstedt <kjellahlstedt@gmail.com>
README: Update contact information
2018-07-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Qualify calls to bitwise_equivalent_cast() with namespace names
Otherwise indirect calls from glibmm, with its own bitwise_equivalent_cast(),
can be ambiguous due to ADL (argument-dependent lookup).
2018-07-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
slot, signal: Avoid compiler warnings from function pointer conversions
gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion
between different types of function pointers. Avoid that by adding
sigc::internal::bitwise_equivalent_cast<>() with a union with members of
the two types of function pointers.
Fixes #1
2018-07-16 Kjell Ahlstedt <kjellahlstedt@gmail.com>
Revert "slot, signal: Avoid compiler warnings from function pointer conversions"
This reverts commit c6262e0a477b35cd9a4a00c34f3f0a44dcd07210.
This can be done in a better way by keeping the union in a template function.
2018-07-13 Kjell Ahlstedt <kjellahlstedt@gmail.com>
slot, signal: Avoid compiler warnings from function pointer conversions
gcc8 -Wextra prints a warning when reinterpret_cast is used for conversion
between different types of function pointers. Avoid that by instead using
a union with members of the two types of function pointers.
Fixes #1
2017-11-09 Kjell Ahlstedt <kjellahlstedt@gmail.com>
signal_base docs: Warn against deletion during emission
There is no known ABI-preserving fix for a memory leak, if a signal
is deleted during emission. Describe a workaround in the documentation.
Bug 167714
2017-11-09 Kjell Ahlstedt <kjellahlstedt@gmail.com>
slot_base::set_parent(): Create a dummy slot_rep if necessary
set_parent() must always store the supplied parent pointer and cleanup
function pointer, or else there may be a memory leak. The pointers are
stored in slot_rep. Bug 167714
2017-07-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
test_signal: Test calls to signal_base::clear()
Call it both during signal emission and otherwise. Bug 784550
2017-07-17 Kjell Ahlstedt <kjellahlstedt@gmail.com>
signal_impl::clear(): Don't clear the slot list during signal emission
If signal_impl::clear() is called during signal emission, don't call
slots_.clear(). Let signal_impl::sweep() erase all slots after the signal
emission. Bug 784550
2016-11-20 Christophe Lermytte <gentoo@lermytte.be>
Make --disable-benchmark work
Currently, when calling ./configure, the possible outcomes of the
enable_benchmark variable are:
./configure -> ""
./configure --enable-benchmark -> "yes"
./configure --enable-benchmark=yes -> "yes"
./configure --enable-benchmark=no -> "yes"
./configure --enable-benchmark=hello -> "yes"
./configure --disable-benchmark -> "yes"
With this commit, those values become
./configure -> ""
./configure --enable-benchmark -> "yes"
./configure --enable-benchmark=yes -> "yes"
./configure --enable-benchmark=no -> "no"
./configure --enable-benchmark=hello -> "hello"
./configure --disable-benchmark -> "no"
Note that enable_benchmark is currently only being checked for
being "yes" or not.
Bug #774732
2016-09-20 Murray Cumming <murrayc@murrayc.com>
2.10.0
2016-07-18 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Build: Fix silent builds
* configure.ac: Pass yes to AM_SILENT_RULES, thus enabling silent builds.
Replace MM_AX_CXX_COMPILE_STDCXX_11 by MM_AX_CXX_COMPILE_STDCXX (not necessary
for silent builds).
* docs/reference/Doxyfile.in: Set QUIET=YES.
Update for doxygen 1.8.11 (not necessary for silent builds).
Bug #768797
2016-07-06 Murray Cumming <murrayc@murrayc.com>
2.9.3
2016-07-05 Murray Cumming <murrayc@murrayc.com>
signal: Deprecate slots().
Because we don't use it in any tests or examples and probably
nobody uses it. It has already been removed from libsigc++-3.0
(which installs in parallel):
https://git.gnome.org/browse/libsigcplusplus/commit/?id=fb5d1a55ddd843a1ded635b0ebce4e5b5301fc36
Please tell us if you really need to use this.
2016-07-05 Murray Cumming <murrayc@murrayc.com>
signal: Deprecate emit_reverse().
Because we don't use it in any tests or examples and probably nobody
uses it. It has already been removed from libsigc++-3.0 (which installs
in parallel):
https://git.gnome.org/browse/libsigcplusplus/commit/?id=1a4eee7e8ded2acea94e27af5c94e37dcd9cbb13
Please tell us if you really need to use this.
2016-06-21 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Update tests/.gitignore
2016-06-17 Chun-wei Fan <fanchunwei@src.gnome.org>
Fix build of "Implement slot<R(Arg...)> with variadic template"
* sigc++/functors/macros/slot.h.m4: Fix the use of operator() in the
variadic templates usage in the base slot_call as the syntax differs
between compilers for this call. This fixes the build of the tests and
any items that makes use of sigc++/functors/slot.h on non-GCC,
specifically Visual Studio 2013 and 2015.
https://bugzilla.gnome.org/show_bug.cgi?id=767777
2016-06-17 Chun-wei Fan <fanchunwei@src.gnome.org>
Visual Studio builds: Update project
Remove the sources from the projects that have been removed from the
source tree lately.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
Update tests/.gitignore
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Use boost::timer instead of Glib::Timer.
And optionally build it, when --enable-benchmark is passed to configure.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Use the newer syntax.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Increase count.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Make the 1000 a constant, so we can change it.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Rearrange.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Add copyright header.
2016-04-20 Murray Cumming <murrayc@murrayc.com>
benchmark: Update for the newer libsigc++ API.
2016-04-08 Murray Cumming <murrayc@murrayc.com>
2.9.2
2016-04-02 Murray Cumming <murrayc@murrayc.com>
C++11: signal: Use a range-based for loop.
2016-04-02 Murray Cumming <murrayc@murrayc.com>
C++11: signal: Use auto for iterators.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
Remove unnecessary signal.cc file.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
Remove unnecessary slot.cc file.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: slots: Fix tiny typo.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: mem_fun: Improve the simple description.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: mem_fun: Improve the note about auto-disconnection.
Because "cleared" doesn't really tell us how this benefits us.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: slots: Mention automatic disconnection.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: slots: auto: Mention why it is bad.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
test_mem_fun: Test auto-disconnection with trackable.
This is probably tested somewhere else already, but I like having it
here too because it is an important reason for slot<> to exist,
compared to a simple std::function.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
test_mem_fun: Rearrange into individual test functions.
2016-04-01 Murray Cumming <murrayc@murrayc.com>
docs: Slots: Add section titles to break it up.
2016-03-16 Murray Cumming <murrayc@murrayc.com>
2.9.1
2016-03-16 Murray Cumming <murrayc@murrayc.com>
Update NEWS from 2.8.0
2016-03-16 Murray Cumming <murrayc@murrayc.com>
test_retype: Add test of R(Args...) syntax.
2016-03-16 Murray Cumming <murrayc@murrayc.com>
test_retype: Break into smaller tests.
2016-03-16 Murray Cumming <murrayc@murrayc.com>
Reference docs: Main page: Mention CMake.
And generally make this like the version in master for libsigc++-3.0.
2016-03-15 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Implement slot<R(Arg...)> with variadic template
* sigc++/functors/macros/slot.h.m4: Implement the function-style slot<R<Arg...)>
with variadic template, as in libsigc++-3.0.
The primary slot_call and the slot<T_return(T_arg...)> specialization are copied
from libsigc++-3.0. A slot_call<T_functor, T_return> specialization is added.
Bug #763393
2016-03-12 Murray Cumming <murrayc@murrayc.com>
slot: Document older syntax as deprecated
2016-03-12 Murray Cumming <murrayc@murrayc.com>
signal: Document older syntax as deprecated.
2016-03-12 Murray Cumming <murrayc@murrayc.com>
signal: Use the slot<R(Args..)> syntax.
2016-03-12 Murray Cumming <murrayc@murrayc.com>
signal.h.m4: Slight reorganization of m4 code.
2016-03-12 Murray Cumming <murrayc@murrayc.com>
slot.h.m4: Slight reorganisation of m4 code.
2016-03-12 Murray Cumming <murrayc@murrayc.com>
signal: Allow sigc::signal<R(Args...)> declaration, like std::function.
By adding template specializations that repeats the signal*
template declarations, though it would be good to avoid the repetition.
Bug 763393
2016-03-12 Murray Cumming <murrayc@murrayc.com>
slot: Allow sigc::slot<R(Args...)> declaration, like std::function.
By adding a template specialization that repeats each slot*<>
declarartion, though it would be good to avoid the repetition.
Bug 763393
2016-03-11 Murray Cumming <murrayc@murrayc.com>
2.7.2
2016-03-11 Murray Cumming <murrayc@murrayc.com>
test_accumulated(): Restructure this.
To make it clearer and to keep the small tests more self-contained and
separate.
2016-03-11 Murray Cumming <murrayc@murrayc.com>
test_signal: Add test_simple().
2016-03-11 Murray Cumming <murrayc@murrayc.com>
test_signal(): Restructure this.
To make it clearer and to keep the small tests more self-contained and
separate.
2016-03-11 Murray Cumming <murrayc@murrayc.com>
test_slot(): Restructure this.
To make it clearer and to keep the small tests more self-contained and
separate.
2016-03-10 Murray Cumming <murrayc@murrayc.com>
signal: make_slot(): Use non-deprecated constructor.
2016-03-10 Murray Cumming <murrayc@murrayc.com>
tests: Prefer the non-deprecated mem_fun(reference, func) form.
2016-03-10 Murray Cumming <murrayc@murrayc.com>
tests: Use std::ref() instead of deprecated sigc::ref().
2016-03-10 Murray Cumming <murrayc@murrayc.com>
examples: Don't use deprecated mem_fun(pointer, func).
2016-03-10 Murray Cumming <murrayc@murrayc.com>
examples build: Disable deprecated API.
2016-03-10 Murray Cumming <murrayc@murrayc.com>
mem_fun(): Deprecate mem_fun(pointer, func).
Leaving just mem_fun(reference, func).
See bug #763215
The deprecated mem_fun() has been removed from libsigc+--3.0,
so this is a chance to adapt code before switching to libsigc++-3.0.
2016-03-10 Chun-wei Fan <fanchunwei@src.gnome.org>
MSVC builds: Update sigc++ project
Add the new source files and headers from adaptors/lambda, and re-order
the source files list into alphabetical order.
2016-03-08 Murray Cumming <murrayc@murrayc.com>
Also ifdef out bound_argument<sigc::reference_wrapper>.
And add a specialization for bound_argument<std::reference_wrapper>.
2016-03-08 Murray Cumming <murrayc@murrayc.com>
reference_wrapper: Include <functional>.
2016-03-08 Murray Cumming <murrayc@murrayc.com>
Deprecate sigc::ref() in favor of std::ref().
2016-03-07 Murray Cumming <murrayc@murrayc.com>
.doap: Correct the web site URL.
Though we really must stop using sourceforge even for the web site.
2016-03-07 Murray Cumming <murrayc@murrayc.com>
Rename our .doap file.
2016-03-07 Murray Cumming <murrayc@murrayc.com>
Fix tiny typo in a comment.
2016-03-06 Murray Cumming <murrayc@murrayc.com>
docs: Refer to it as libsigc++, not libsigc++2.
2016-03-06 Murray Cumming <murrayc@murrayc.com>
website/README: Mention the new git repository.
2016-03-03 Murray Cumming <murrayc@murrayc.com>
SIGC_CXX_HAS_SUN_REVERSE_ITERATOR: Add std:: now that I removed the using std.
See https://bugzilla.gnome.org/show_bug.cgi?id=762065#c2
2016-03-03 Murray Cumming <murrayc@murrayc.com>
C++11: Make all operator bool() explicit.
2016-03-03 Murray Cumming <murrayc@murrayc.com>
Remove now-unnecessary SIGC_CXX_HAS_NAMESPACE_STD() configure check.
Bug #762065 (Kjell Ahlstedt)
2016-03-03 Murray Cumming <murrayc@murrayc.com>
Remove unused SIGC_CXX_SELF_REFERENCE_IN_MEMBER_INITIALIZATION() configure check.
Bug #762065 (Kjell Ahlstedt)
2016-03-02 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Improve the documentation of mem_fun()
* sigc++/functors/macros/mem_fun.h.m4:
* sigc++/functors/slot_base.h: Make it clear that mem_fun() does not return
a slot, and 'auto s = sigc::mem_fun(....)' is not equivalent to
'sigc::slot<....> s = sigc::mem_fun(....)'.
The confusing documentation was noted by Andrejs Hanins on libsigc-list.
2016-03-01 Murray Cumming <murrayc@murrayc.com>
Add test_bind_as_slot.
This tests sigc::bind()'s indirect use of adaptor_functor<>.
I added this because this doesn't work yet in the variadic_bind branch.
2016-03-01 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
2.7.1
2016-01-14 Murray Cumming <murrayc@murrayc.com>
m4: Remove unused UPPER and LOWER functions.
2016-01-14 Murray Cumming <murrayc@murrayc.com>
tests: Use = delete instead of private constructors.
To make classes non-copyable.
2016-01-07 Murray Cumming <murrayc@murrayc.com>
functor_trait.m4: Correct the mem_functor<> declarations.
The first template types are T_return and T_obj, not the arguments.
This doesn't seem to have been a problem. Maybe this code is not tested
or used.
2015-12-17 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Don't use SIGC_USING_STD()
The SIGC_USING_STD() macro is defined as an empty string, if some standard
C++ symbols are defined in namespace std. They always are.
Since many years, SIGC_USING_STD() is an unnecessary macro.
2015-12-16 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Temporarily undefine the nil macro, if it's defined
* build/cxx.m4: Add SIGC_CXX_PRAGMA_PUSH_POP_MACRO.
* configure.ac: Call SIGC_CXX_PRAGMA_PUSH_POP_MACRO.
* sigc++config.h.in: Add SIGC_PRAGMA_PUSH_POP_MACRO.
* sigc++/functors/macros/functor_trait.h.m4:
* sigc++/adaptors/macros/bind.h.m4:
* sigc++/adaptors/macros/retype.h.m4:
* sigc++/functors/macros/slot.h.m4:
* sigc++/macros/signal.h.m4: If nil and SIGC_PRAGMA_PUSH_POP_MACRO are
defined, undefine nil temporarily in the header files.
nil is a keyword in Objective-C++ and in Mac OS X C++. Bug #695235.
2015-12-15 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
can_deduce_result_type_with_decltype: Rename the check() methods
* sigc++/functors/macros/functor_trait.h.m4: Rename the check() methods.
check() is a preprocessor macro in Mac OS X. Bug #759315.
2015-12-13 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Fix some typos
2015-11-16 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
Add a moving signal::connect() overload
* sigc++/macros/signal.h.m4: Add signal#::connect(slot_type&&),
slot_list::insert(iterator i, slot_type&&),
slot_list::push_front(slot_type&&), push_back(slot_type&&).
* sigc++/signal_base.[h|cc]: Add signal_base::connect(slot_base&&),
signal_base::insert(slot_base&&), signal_impl::connect(slot_base&&),
signal_impl::insert(slot_base&&). Bug #756484.
2015-11-13 Murray Cumming <murrayc@murrayc.com>
2.6.2
2015-11-12 Murray Cumming <murrayc@murrayc.com>
Add warnings for use with --enable-warnings=fatal
Added use -Wsuggest-override and -Wzero-as-null-pointer-constant.
2015-11-10 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
trackable, slot_base, signal_base, connection: Add some noexcept specs
2015-11-08 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
slot and signal: Add missing move constructors and move assignments
* sigc++/functors/macros/slot.h.m4: Add move operators for slot<>.
* sigc++/macros/signal.h.m4: Add move operators for signal#<> and signal<>.
* tests/test_signal_move.cc:
* tests/test_slot_move.cc: Test that the source objects are empty.
Bug #756484.
2015-11-08 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
trackable, slot, signal: Remove noexcept specifications
* sigc++/functors/macros/slot.h.m4:
* sigc++/functors/slot_base.[h|cc]:
* sigc++/signal_base.[h|cc]:
* sigc++/trackable.[h|cc]: Remove noexcept from the move operators.
Bug #756484.
2015-11-06 Kjell Ahlstedt <kjell.ahlstedt@bredband.net>
slot: Handle auto-disconnection when a slot contains a slot
* sigc++/functors/macros/slot.h.m4: Add sigc::visitor<> specializations
for slot# and slot.
* tests/test_disconnect.cc: Test auto-disconnection of a slot that contains
a slot. Bug #755003.
2015-11-06 Murray Cumming <murrayc@murrayc.com>
signal_impl: =delete copy and move operations.
Prevent, copy and move constructors and assignment operators from
being generated automatically. These are never used, but this
will make sure of that.
See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5
2015-11-06 Murray Cumming <murrayc@murrayc.com>
typed_slot_rep: =delete unimplemented copy and move operations.
Prevent, copy assignment operator, move constructor and move
assignment operators from being generated automatically.
These are never used, but this will make sure of that.
See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5
2015-11-06 Murray Cumming <murrayc@murrayc.com>
slot_rep: =delete copy and move operations.
Prevent, copy and move constructors and assignment operators from
being generated automatically. These are never used, but this
will make sure of that.
See https://bugzilla.gnome.org/show_bug.cgi?id=756484#c5
Generated by dwww version 1.16 on Sat Oct 3 05:18:53 CEST 2026.