Giter VIP home page Giter VIP logo

yssource / libsigcplusplus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from libsigcplusplus/libsigcplusplus

0.0 0.0 0.0 1.72 MB

libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual.

Home Page: https://libsigcplusplus.github.io/libsigcplusplus/

License: GNU Lesser General Public License v3.0

Shell 0.28% C++ 76.76% Python 1.79% C 2.25% Makefile 6.54% CMake 2.52% Batchfile 0.18% M4 5.04% Meson 4.64%

libsigcplusplus's Introduction

libsigc++ : The Typesafe Callback Framework for C++

Introduction

libsigc++ implements a typesafe callback system for standard C++. It allows you to define signals and to connect those signals to any callback function, either global or a member function, regardless of whether it is static or virtual.

libsigc++ is used by gtkmm to wrap the GTK+ signal system. It does not depend on GTK+ or gtkmm.

See the libsigc++ web site

License

Distribution of library and components is under the LGPL as listed in the file COPYING. Examples and tests are Public Domain.

Compatibility

Compatible compilers must support C++17, such as the decltype(auto) specifier (from C++14) and std::invoke().

Build

Whenever possible, you should use the official binary packages approved by the supplier of your operating system, such as your Linux distribution. For instance, Ubuntu Linux, Debian Linux and Fedora Linux have official libsigc++ packages.

Building from a release tarball

Building from the libsigc++ release tarball is easier than building from git.

It's easiest to build with Meson, if the tarball was made with Meson, and to build with Autotools, if the tarball was made with Autotools. Then you don't have to use maintainer-mode.

How do you know how the tarball was made? If it was made with Meson, it contains files in untracked/build_scripts/, untracked/docs/ and possibly other subdirectories of untracked/.

Building from a tarball with Meson

Don't call the builddir 'build'. There is a directory called 'build' with files used by Autotools.

For instance:

# If the tarball was made with Autotools, and you want to rebuild the reference
# documentation, you must enable maintainer-mode:
$ meson --prefix=/usr/local --libdir=lib -Dmaintainer-mode=true your_builddir .

# If the tarball was made with Meson, or you don't want to rebuild the docs:
$ meson --prefix=/usr/local --libdir=lib your_builddir .

# then:
$ cd your_builddir
$ ninja
$ ninja install
# You can run the tests like so:
$ ninja test

Building from a tarball with Autotools

For instance:

# If the tarball was made with Autotools:
$ ./configure --prefix=/usr/local

# If the tarball was made with Meson, you must enable maintainer-mode:
$ ./autogen.sh --prefix=/usr/local

# then:
$ make
$ make install
# You can build the examples and tests, and run the tests, like so:
$ make check

Building from git

Building from git can be difficult so you should prefer building from a release tarball unless you need to work on the libsigc++ code itself.

jhbuild can be a good help. See the jhbuild repo and the jhbuild wiki.

Building from git with Meson

You must have Meson properly installed (meson, ninja, etc) and you will also need mm-common version 1.0.0 or higher.

Maintainer-mode is enabled by default when you build from a git clone.

Don't call the builddir 'build'. There is a directory called 'build' with files used by Autotools.

$ meson --prefix=/usr/local --libdir=lib your_builddir .
$ cd your_builddir
$ ninja
$ ninja install
# You can run the tests like so:
$ ninja test
# You can create a tarball like so:
$ ninja dist

Building from git with Autotools

You must have Autotools properly installed (autoconf, automake, etc) and you will also need mm-common.

$ ./autogen.sh --prefix=/usr/local
$ make
$ make install
# You can build the examples and tests, and run the tests, like so:
$ make check
# You can create a tarball like so:
$ make distcheck
# or
$ make dist

Building from git with CMake

The CMake build is not used very often by the libsigc++ developers, but it should work, and we would welcome improvements.

For instance:

$ mkdir libsigcplusplus_build
$ cd libsigcplusplus_build
$ cmake path/to/libsigcplusplus
$ make

Building with Microsoft Visual C++

See MSVC_NMake/README.txt.

libsigcplusplus's People

Contributors

aburgm avatar aigrind-llc avatar aklapper avatar apavenis avatar cedricgustin avatar danielkitta avatar fanc999-1 avatar fohlen avatar hpreg avatar jaalburquerque avatar jefftrull avatar juergbi avatar kjellahl avatar kobboi avatar krnowak avatar loganek avatar mdekstrand avatar murraycu avatar ovitters avatar pberndt avatar qsorix avatar rm5248 avatar schussman avatar slavaandrejev avatar studoot avatar tschoonj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.