swig: Add in a %rename to allow the same name to appear in multiple namespaces.
This commit is contained in:
parent
96936c6bf5
commit
1f57193439
1 changed files with 10 additions and 3 deletions
|
@ -532,11 +532,18 @@ def buildParams(target, source, env):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
class_path = obj.cxx_class.split('::')
|
class_path = obj.cxx_class.split('::')
|
||||||
class_path.reverse()
|
classname = class_path[-1]
|
||||||
classname = class_path[0]
|
namespaces = class_path[:-1]
|
||||||
namespaces = class_path[1:]
|
namespaces.reverse()
|
||||||
|
|
||||||
code = ''
|
code = ''
|
||||||
|
|
||||||
|
if namespaces:
|
||||||
|
code += '// avoid name conflicts\n'
|
||||||
|
sep_string = '_COLONS_'
|
||||||
|
flat_name = sep_string.join(class_path)
|
||||||
|
code += '%%rename(%s) %s;\n' % (flat_name, classname)
|
||||||
|
|
||||||
code += '// stop swig from creating/wrapping default ctor/dtor\n'
|
code += '// stop swig from creating/wrapping default ctor/dtor\n'
|
||||||
code += '%%nodefault %s;\n' % classname
|
code += '%%nodefault %s;\n' % classname
|
||||||
code += 'class %s ' % classname
|
code += 'class %s ' % classname
|
||||||
|
|
Loading…
Reference in a new issue