From cd68de2df3b9e80b5b25a087fbf94b432b9ef84b Mon Sep 17 00:00:00 2001 From: Kjell Ahlstedt Date: Mon, 15 Aug 2022 15:35:05 +0200 Subject: Fix build with -Dbuild-deprecated-api=false Fixes #82 --- examples/meson.build | 2 +- meson.build | 2 +- tests/test_disconnect.cc | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/meson.build b/examples/meson.build index c55bfdd..3c575ae 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -20,7 +20,7 @@ foreach ex : examples endforeach exe_file = executable(ex_name, ex_sources, - cpp_args: '-DSIGCXX_DISABLE_DEPRECATED', + cpp_args: '-DSIGCXX_DISABLE_DEPRECATED=1', dependencies: sigcxx_own_dep, implicit_include_directories: false, build_by_default: build_examples diff --git a/meson.build b/meson.build index 97096be..79e6c67 100644 --- a/meson.build +++ b/meson.build @@ -202,7 +202,7 @@ pkg_conf_data.set('PACKAGE_VERSION', meson.project_version()) pkg_conf_data.set('SIGCXX_API_VERSION', sigcxx_api_version) if not build_deprecated_api - pkg_conf_data.set('SIGCXX_DISABLE_DEPRECATED', true) + pkg_conf_data.set('SIGCXX_DISABLE_DEPRECATED', 1) endif pkg_conf_data.set('SIGCXX_MAJOR_VERSION', sigcxx_major_version) pkg_conf_data.set('SIGCXX_MINOR_VERSION', sigcxx_minor_version) diff --git a/tests/test_disconnect.cc b/tests/test_disconnect.cc index 85b1680..2d040d8 100644 --- a/tests/test_disconnect.cc +++ b/tests/test_disconnect.cc @@ -2,6 +2,12 @@ * Assigned to public domain. Use as you wish without restriction. */ +// sigc::signal<>.slots() is deprecated, but let's keep the test if possible. +// If libsigc++ is configured with -Dbuild-deprecated-api=false +// (--disable-deprecated-api), SIGCXX_DISABLE_DEPRECATED is defined in +// sigc++config.h. An undef at the start of this file has no effect. +#undef SIGCXX_DISABLE_DEPRECATED + #include "testutilities.h" #include #include @@ -103,11 +109,20 @@ int main(int argc, char* argv[]) util->check_result(result_stream, "sig is connected to foo, bar (size=2): foo(2) bar(2) "); A a; // iterators stay valid after further connections. +#ifndef SIGCXX_DISABLE_DEPRECATED cona = sig.slots().insert(conbar, sigc::mem_fun1(a, &A::foo)); +#else + cona = sig.connect(sigc::mem_fun1(a, &A::foo)); +#endif result_stream << "sig is connected to foo, A::foo, bar (size=" << sig.size() << "): "; sig(3); +#ifndef SIGCXX_DISABLE_DEPRECATED util->check_result(result_stream, "sig is connected to foo, A::foo, bar (size=3): foo(3) A::foo(3) bar(3) "); +#else + util->check_result(result_stream, + "sig is connected to foo, A::foo, bar (size=3): foo(3) bar(3) A::foo(3) "); +#endif conbar->disconnect(); // manual disconnection result_stream << "sig is connected to foo, A::foo (size=" << sig.size() << "): "; -- cgit v1.2.1