aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaheed Haque <srhaque@theiet.org>2017-02-04 11:16:19 +0000
committerStephen Kelly <steveire@gmail.com>2017-02-04 11:30:04 +0000
commit98d065773413aba437c0bc537c701ed39d38a9b9 (patch)
tree817da50e7ca9e20ff0993caade125cd029e56d47
parent050f15ef6a0c44dc6a7abbbe0f1954ea1925f473 (diff)
downloadextra-cmake-modules-98d065773413aba437c0bc537c701ed39d38a9b9.tar.gz
extra-cmake-modules-98d065773413aba437c0bc537c701ed39d38a9b9.tar.bz2
Bindings: Take account of visibility of classes
-rw-r--r--find-modules/sip_generator.py7
-rw-r--r--tests/GenerateSipBindings/cpplib.h6
-rw-r--r--tests/GenerateSipBindings/testscript.py5
3 files changed, 17 insertions, 1 deletions
diff --git a/find-modules/sip_generator.py b/find-modules/sip_generator.py
index 5311e8c5..55220e2f 100644
--- a/find-modules/sip_generator.py
+++ b/find-modules/sip_generator.py
@@ -256,7 +256,12 @@ class SipGenerator(object):
#
pass
else:
- SipGenerator._report_ignoring(container, member)
+ text = self._read_source(member.extent)
+ if self.skippable_attribute(container, member, text, sip):
+ if not sip["name"]:
+ return ""
+ else:
+ SipGenerator._report_ignoring(container, member)
def is_copy_constructor(member):
if member.kind != CursorKind.CONSTRUCTOR:
diff --git a/tests/GenerateSipBindings/cpplib.h b/tests/GenerateSipBindings/cpplib.h
index b3ea22a8..958b8750 100644
--- a/tests/GenerateSipBindings/cpplib.h
+++ b/tests/GenerateSipBindings/cpplib.h
@@ -213,3 +213,9 @@ public:
EXPORT int visible_fn() { return 1; }
NO_EXPORT int invisible_fn() { return 1; }
};
+
+class NO_EXPORT Invisible
+{
+public:
+ int someApi() { return 1; }
+};
diff --git a/tests/GenerateSipBindings/testscript.py b/tests/GenerateSipBindings/testscript.py
index 98443d53..b388841f 100644
--- a/tests/GenerateSipBindings/testscript.py
+++ b/tests/GenerateSipBindings/testscript.py
@@ -130,3 +130,8 @@ try:
assert False
except AttributeError as e:
assert str(e) == "'Visible' object has no attribute 'invisible_fn'"
+try:
+ invisible = PyTest.CppLib.Invisible()
+ assert False
+except AttributeError as e:
+ assert str(e) == "module 'PyTest.CppLib' has no attribute 'Invisible'"