]> git.tdb.fi Git - ext/sigc++-2.0.git/blob - README
Adjust the name of the library to match upstream
[ext/sigc++-2.0.git] / README
1 libsigc++ -- The Typesafe Callback Framework for C++
2
3 General 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
16 License 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
21 Contact 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
30 Compatibility:
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
38 Whenever possible, you should use the official binary packages approved by the
39 supplier of your operating system, such as your Linux distribution.
40
41 ## Building on Windows
42
43 See MSVC_NMake/README.txt.
44
45 ## Building from a release tarball
46
47 It's easiest to build with Meson, if the tarball was made with Meson,
48 and to build with Autotools, if the tarball was made with Autotools.
49 Then you don't have to use maintainer-mode.
50
51 How do you know how the tarball was made? If it was made with Meson,
52 it contains files in untracked/build_scripts/, untracked/docs/ and possibly
53 other subdirectories of untracked/.
54
55 ### Building from a tarball with Meson
56
57 Don't call the builddir 'build'. There is a directory called 'build' with
58 files used by Autotools.
59
60 If the tarball was made with Autotools, you must enable maintainer-mode:
61   $ meson --prefix=/some_directory --libdir=lib -Dmaintainer-mode=true your_builddir .
62 If the tarball was made with Meson:
63   $ meson --prefix=/some_directory --libdir=lib your_builddir .
64
65 Then
66   $ cd your_builddir
67   $ ninja
68   $ ninja install
69 You can run the tests like so:
70   $ ninja test
71
72 ### Building from a tarball with Autotools
73
74 If the tarball was made with Autotools:
75   $ ./configure --prefix=/some_directory
76 If the tarball was made with Meson, you must enable maintainer-mode:
77   $ ./autogen.sh --prefix=/some_directory
78
79 Then
80   $ make
81   $ make install
82 You can build the examples and tests, and run the tests, like so:
83   $ make check
84
85 ## Building from git
86
87 Building from git can be difficult so you should prefer building from
88 a release tarball unless you need to work on the libsigc++ code itself.
89
90 jhbuild 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
96 Maintainer-mode is enabled by default when you build from a git clone.
97
98 Don't call the builddir 'build'. There is a directory called 'build' with
99 files used by Autotools.
100
101   $ meson --prefix=/some_directory --libdir=lib your_builddir .
102   $ cd your_builddir
103   $ ninja
104   $ ninja install
105 You can run the tests like so:
106   $ ninja test
107 You 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
115 You can build the examples and tests, and run the tests, like so:
116   $ make check
117 You can create a tarball like so:
118   $ make distcheck
119 or
120   $ make dist