File: README

package info (click to toggle)
sigx 2.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,144 kB
  • ctags: 1,311
  • sloc: cpp: 3,103; ansic: 653; xml: 206; python: 65; makefile: 26
file content (77 lines) | stat: -rw-r--r-- 3,463 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Welcome to sigx++, a interthread communication library on top of sigc++ and glibmm.
It evolved out of glibmmx, an initial approach of Tim Mayberry to create such a library.



Dependencies:
-------------
* tr1
Most notably sigx++ needs c++ tr1 facitilites, more precisely to <tr1/memory> for std::tr1::shared_ptr, both 
when compiling sigx++ itself and when using it. shared_ptr is the only most standard compliant and general way for 
sharing objects between multiple threads and facilities.
Note that boost has a tr1 include directory starting from version 1.34.0.
If tr1 isn't in your compiler's or IDE's default include path you have to provide them to the build tools (see below).

* boost mpl
Also, for the build process, sigx++ needs access to the boost meta programming stuff in <boost/mpl/...> by now.
If boost isn't in your compiler's or IDE's default include path you have to provide them to the build tools (see below).

* sigc++ and glibmm
Important dependencies to mention are of course sigc++ and glibmm as sigx++ provides facilities on top of them;

* gtkmm
gtkmm is needed for example and test programs.

* m4
The gnu m4 macro tool



Linux:
------
sigx++ uses scons as the build utility which is similar to the automake suite. 
The reason for this is simply because Tim used scons and I myself prefer it in the meantime over make because it seems much easier to use.

That said, sigcx++ requires pyhton and scons to be installed on your system. Once you have set it up, you can run
> scons -h
from within the sigcx++ top directory for spitting out options you can provide to the build environment.

You may have to set the tr1 and boost include paths depending on your environment.
Then simply build the library with
> scons [TR1_INCLUDE=<path_to_tr1>] [BOOST_INCLUDE=<path_to_boost>] [DEBUG={1|0}] [PREFIX=<path_to_include_install>] [SHAREDLIB={0|1}]

sigc++ and glibmm stuff is determined by using the pkg-config tool.

Installing it is as easy as typing
> scons install

Build test and example programs:
> scons tests
> scons examples



Windows:
--------
First, you have to get the gtk and gtkmm headers/libraries; one convenient way to install them is to use the installers from 
found at http://www.gtk.org/download-windows.html for the gtk+ stack bundle and 
http://www.gtkmm.org/download.shtml#Binary for a link to a gtkmm windows installer package (which includes glibmm and sigc++).

You are free to use scons on windows, too; if yes then you can read section "Linux" for details.
I didn't test scons on windows but it should be as easy to use as on linux.

Additionaly there are projects for msvc2005 and msvc2008.
There are project property sheets where you can easily adjust your include and library paths for gtk, sigc++/glibmm, 
gtkmm, tr1, boost and the gnu m4 tool in case you need to compile m4 macro files.

Note that msvc2008 doesn't work well yet with glibmm - there are heap problems when a program ends. It's not 
sigx++'s problem, the error happens also without sigx++.


Examples:
---------
I think that there is a useful example included, namely an "ipresolver"; it's taken from the currently inactive 
firewall project "fireflier" and resolves IPs to hostnames, showing nicely how sigx++ can be used.

Also, have a look at the test programs;
test_button_click e.g. shows how a thread can connect to the GUI thread's "button_clicked" signal.