summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2022-08-15 15:35:05 +0200
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2022-08-15 15:35:05 +0200
commitcd68de2df3b9e80b5b25a087fbf94b432b9ef84b (patch)
tree5105f737e7d8d36c131fbdedfd7ecab43feec6e2
parentb995711638f9fb4f72b053cd25d59dc229b8e551 (diff)
downloadsigc++-libsigc++-2-10.tar.gz
Fix build with -Dbuild-deprecated-api=falselibsigc++-2-10
Fixes #82
-rw-r--r--examples/meson.build2
-rw-r--r--meson.build2
-rw-r--r--tests/test_disconnect.cc15
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 <sigc++/trackable.h>
#include <sigc++/signal.h>
@@ -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() << "): ";