{"id":32135219,"url":"https://github.com/libsigcplusplus/libsigcplusplus","last_synced_at":"2026-02-19T13:33:49.853Z","repository":{"id":30346341,"uuid":"122759416","full_name":"libsigcplusplus/libsigcplusplus","owner":"libsigcplusplus","description":"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.","archived":false,"fork":false,"pushed_at":"2026-01-26T09:42:37.000Z","size":1968,"stargazers_count":439,"open_issues_count":2,"forks_count":85,"subscribers_count":23,"default_branch":"master","last_synced_at":"2026-01-26T23:55:28.342Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://libsigcplusplus.github.io/libsigcplusplus/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libsigcplusplus.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2018-02-24T16:49:32.000Z","updated_at":"2026-01-26T09:40:19.000Z","dependencies_parsed_at":"2023-02-12T08:45:13.249Z","dependency_job_id":"533c792b-5ca8-4790-b9f8-273100219900","html_url":"https://github.com/libsigcplusplus/libsigcplusplus","commit_stats":{"total_commits":1209,"total_committers":65,"mean_commits":18.6,"dds":"0.49627791563275436","last_synced_commit":"18e6a6ff0f68e929e22e301a5692aaac8f9c3f54"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/libsigcplusplus/libsigcplusplus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libsigcplusplus%2Flibsigcplusplus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libsigcplusplus%2Flibsigcplusplus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libsigcplusplus%2Flibsigcplusplus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libsigcplusplus%2Flibsigcplusplus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libsigcplusplus","download_url":"https://codeload.github.com/libsigcplusplus/libsigcplusplus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libsigcplusplus%2Flibsigcplusplus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29614972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T13:04:20.082Z","status":"ssl_error","status_checked_at":"2026-02-19T13:03:33.775Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-21T03:51:38.443Z","updated_at":"2026-02-19T13:33:49.848Z","avatar_url":"https://github.com/libsigcplusplus.png","language":"C++","readme":"# libsigc++\nTypesafe Callback Framework for C++\n\n# Introduction\n\nlibsigc++ (a.k.a. libsigcplusplus) implements a typesafe callback system for\nstandard C++. It allows you to define signals and to connect those signals\nto any callback function, either global or a member function, regardless of\nwhether it is static or virtual.\n\nlibsigc++ is used by gtkmm to wrap the GTK signal system. It does not\ndepend on GTK or gtkmm.\n\nsigc++-2.0 and sigc++-3.0 are different parallel-installable ABIs.\nThis file describes sigc++-3.0.\n\n## License\n\nDistribution of library and components is under the LGPL as listed in the\nfile COPYING. Examples and tests are Public Domain.\n\n## Compatibility\n\nCompatible compilers must support C++17, such as the decltype(auto) specifier\n(from C++14) and std::invoke().\n\n# General information\n\nWeb site\n - https://libsigcplusplus.github.io/libsigcplusplus/\n\nDownload location\n - https://download.gnome.org/sources/libsigc++/ (until 3.6.0)\n - https://github.com/libsigcplusplus/libsigcplusplus/releases/\n\nReference documentation\n - https://libsigcplusplus.github.io/libsigcplusplus/reference/html/\n\nTarballs contain reference documentation. In tarballs generated with Meson,\nsee the untracked/docs/docs/reference/html directory.\n\nDiscussion on GNOME's discourse forum\n - https://discourse.gnome.org/tag/cplusplus\n - https://discourse.gnome.org/c/platform\n\nGit repository\n - https://github.com/libsigcplusplus/libsigcplusplus\n\nBugs can be reported to\n - https://github.com/libsigcplusplus/libsigcplusplus/issues\n\nPatches can be submitted to\n - https://github.com/libsigcplusplus/libsigcplusplus/pulls\n\n# Building\n\nWhenever possible, you should use the official binary packages approved by the\nsupplier of your operating system, such as your Linux distribution. For\ninstance, Ubuntu Linux, Debian Linux and Fedora Linux have official libsigc++\npackages.\n\n## Building the documentation\n\nThe reference documentaion is built with Doxygen.\n\nThe manual is a DocBook 5.0 document. These packages are recommended when building\nthe manual (can have other names in other distros):\n - docbook5-xml (Ubuntu and Debian) or docbook5-schemas (Fedora)\n - docbook-xsl (Ubuntu and Debian) or docbook-style-xsl (Fedora)\n\nIt may be possible to build without these packages, but it will be slow and error prone.\nThe `xmllint` command is told to read files from http://docbook.org.\nThe `xsltproc` command is told to read files from http://docbook.sourceforge.net.\nThe commands first search for local copies of those files. If local copies exist\nand are installed at expected locations, the commands make no network accesses.\n\n## Building from a release tarball\n\nBuilding from a release tarball is easier than building from git.\n\nIt's easiest to build with Meson, if the tarball was made with Meson,\nand to build with Autotools, if the tarball was made with Autotools.\nThen you don't have to use maintainer-mode.\n\nHow do you know how the tarball was made? If it was made with Meson,\nit contains files in untracked/build_scripts/, untracked/docs/ and possibly\nother subdirectories of untracked/.\n\n### Building from a tarball with Meson\n\nDon't call the builddir 'build'. There is a directory called 'build' with\nfiles used by Autotools.\n\nFor instance:\n```sh\n# If the tarball was made with Autotools, and you want to rebuild the reference\n# documentation, you must enable maintainer-mode:\n$ meson setup --prefix=/some_directory --libdir=lib -Dmaintainer-mode=true your_builddir .\n\n# If the tarball was made with Meson, or you don't want to rebuild the docs:\n$ meson setup --prefix=/some_directory --libdir=lib your_builddir .\n\n# then:\n$ cd your_builddir\n$ ninja\n$ ninja install\n# You can run the tests like so:\n$ ninja test\n```\n\n### Building from a tarball with Autotools\n\nFor instance:\n```sh\n# If the tarball was made with Autotools:\n$ ./configure --prefix=/some_directory\n\n# If the tarball was made with Meson, you must enable maintainer-mode:\n$ ./autogen.sh --prefix=/some_directory\n\n# then:\n$ make\n$ make install\n# You can build the examples and tests, and run the tests, like so:\n$ make check\n```\n\n## Building from git\n\nBuilding from git can be difficult so you should prefer building from a release\ntarball unless you need to work on the libsigc++ code itself.\n\njhbuild can be a good help. See the [jhbuild repo](https://gitlab.gnome.org/GNOME/jhbuild),\nthe [jhbuild wiki](https://wiki.gnome.org/Projects/Jhbuild) and\nthe [jhbuild manual](https://gnome.pages.gitlab.gnome.org/jhbuild).\n\n### Building from git with Meson\n\nYou must have Meson properly installed (meson, ninja, etc) and you\nwill also need [mm-common](https://gitlab.gnome.org/GNOME/mm-common/)\nversion 1.0.0 or higher.\n\nMaintainer-mode is enabled by default when you build from a git clone.\n\nDon't call the builddir 'build'. There is a directory called 'build' with\nfiles used by Autotools.\n\n```sh\n$ meson setup --prefix=/some_directory --libdir=lib your_builddir .\n$ cd your_builddir\n$ ninja\n$ ninja install\n# You can run the tests like so:\n$ ninja test\n# You can create a tarball like so:\n$ ninja dist\n```\n\n### Building from git with Autotools\n\nYou must have Autotools properly installed (autoconf, automake, etc) and you\nwill also need [mm-common](https://gitlab.gnome.org/GNOME/mm-common/).\n\n```sh\n$ ./autogen.sh --prefix=/some_directory\n$ make\n$ make install\n# You can build the examples and tests, and run the tests, like so:\n$ make check\n# You can create a tarball like so:\n$ make distcheck\n# or\n$ make dist\n```\n\n### Building from git with CMake\n\nThe CMake build is not used very often by the libsigc++ developers, but it\nshould work, and we would welcome improvements.\n\nFor instance:\n\n```sh\n$ mkdir libsigcplusplus_build\n$ cd libsigcplusplus_build\n$ cmake path/to/libsigcplusplus\n$ make\n```\n\n## Building with Microsoft Visual C++\n\nSee [MSVC-Builds.md](MSVC_NMake/MSVC-Builds.md)\n","funding_links":[],"categories":["Miscellaneous","C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibsigcplusplus%2Flibsigcplusplus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibsigcplusplus%2Flibsigcplusplus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibsigcplusplus%2Flibsigcplusplus/lists"}