diff options
author | Shaheed Haque <srhaque@theiet.org> | 2017-02-04 11:16:19 +0000 |
---|---|---|
committer | Stephen Kelly <steveire@gmail.com> | 2017-02-04 11:30:04 +0000 |
commit | 98d065773413aba437c0bc537c701ed39d38a9b9 (patch) | |
tree | 817da50e7ca9e20ff0993caade125cd029e56d47 | |
parent | 050f15ef6a0c44dc6a7abbbe0f1954ea1925f473 (diff) | |
download | extra-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.py | 7 | ||||
-rw-r--r-- | tests/GenerateSipBindings/cpplib.h | 6 | ||||
-rw-r--r-- | tests/GenerateSipBindings/testscript.py | 5 |
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'" |