1libsigc++ -- The Typesafe Callback Framework for C++ 2 3General information: 4 5 libsigc++ implements a typesafe callback system for standard C++. It 6 allows you to define signals and to connect those signals to any 7 callback function, either global or a member function, regardless of 8 whether it is static or virtual. 9 10 libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not 11 depend on GTK+ or gtkmm. 12 13 Further information is available on the libsigc++ project home page: 14 https://libsigcplusplus.github.io/libsigcplusplus/ 15 16License information: 17 18 Distribution of library and components is under the LGPL as listed in the 19 file COPYING. Examples and tests are Public Domain. 20 21Contact information: 22 Maillist: mailto: libsigc-list@gnome.org 23 Homepage: https://libsigcplusplus.github.io/libsigcplusplus/ 24 Online reference documentation: https://developer.gnome.org/libsigc++/unstable/ 25 Download: http://ftp.gnome.org/pub/GNOME/sources/libsigc++/ 26 https://download.gnome.org/sources/libsigc++/ 27 Git: https://github.com/libsigcplusplus/libsigcplusplus 28 Bug reports: https://github.com/libsigcplusplus/libsigcplusplus/issues 29 30Compatibility: 31 32 Compatible compilers must support C++11, such as the decltype() specifier. 33 34 All releases are tested with the gcc (g++) compiler. 35 36# Building 37 38Whenever possible, you should use the official binary packages approved by the 39supplier of your operating system, such as your Linux distribution. 40 41## Building on Windows 42 43See MSVC_NMake/README.txt. 44 45## Building from a release tarball 46 47It's easiest to build with Meson, if the tarball was made with Meson, 48and to build with Autotools, if the tarball was made with Autotools. 49Then you don't have to use maintainer-mode. 50 51How do you know how the tarball was made? If it was made with Meson, 52it contains files in untracked/build_scripts/, untracked/docs/ and possibly 53other subdirectories of untracked/. 54 55### Building from a tarball with Meson 56 57Don't call the builddir 'build'. There is a directory called 'build' with 58files used by Autotools. 59 60If the tarball was made with Autotools, you must enable maintainer-mode: 61 $ meson --prefix=/some_directory --libdir=lib -Dmaintainer-mode=true your_builddir . 62If the tarball was made with Meson: 63 $ meson --prefix=/some_directory --libdir=lib your_builddir . 64 65Then 66 $ cd your_builddir 67 $ ninja 68 $ ninja install 69You can run the tests like so: 70 $ ninja test 71 72### Building from a tarball with Autotools 73 74If the tarball was made with Autotools: 75 $ ./configure --prefix=/some_directory 76If the tarball was made with Meson, you must enable maintainer-mode: 77 $ ./autogen.sh --prefix=/some_directory 78 79Then 80 $ make 81 $ make install 82You can build the examples and tests, and run the tests, like so: 83 $ make check 84 85## Building from git 86 87Building from git can be difficult so you should prefer building from 88a release tarball unless you need to work on the libsigc++ code itself. 89 90jhbuild can be a good help 91 https://gitlab.gnome.org/GNOME/jhbuild 92 https://wiki.gnome.org/Projects/Jhbuild 93 94### Building from git with Meson 95 96Maintainer-mode is enabled by default when you build from a git clone. 97 98Don't call the builddir 'build'. There is a directory called 'build' with 99files used by Autotools. 100 101 $ meson --prefix=/some_directory --libdir=lib your_builddir . 102 $ cd your_builddir 103 $ ninja 104 $ ninja install 105You can run the tests like so: 106 $ ninja test 107You can create a tarball like so: 108 $ ninja dist 109 110### Building from git with Autotools 111 112 $ ./autogen.sh --prefix=/some_directory 113 $ make 114 $ make install 115You can build the examples and tests, and run the tests, like so: 116 $ make check 117You can create a tarball like so: 118 $ make distcheck 119or 120 $ make dist 121