mirror of
https://github.com/boostorg/python.git
synced 2026-01-22 17:32:55 +00:00
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
# Copyright Bruno da Silva de Oliveira 2003. Use, modification and
|
|
# distribution is subject to the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
|
# http:#www.boost.org/LICENSE_1_0.txt)
|
|
|
|
from Exporter import Exporter
|
|
from settings import *
|
|
import utils
|
|
|
|
#==============================================================================
|
|
# VarExporter
|
|
#==============================================================================
|
|
class VarExporter(Exporter):
|
|
'''Exports a global variable.
|
|
'''
|
|
|
|
def __init__(self, info):
|
|
Exporter.__init__(self, info)
|
|
|
|
|
|
def Export(self, codeunit, exported_names):
|
|
if self.info.exclude: return
|
|
decl = self.GetDeclaration(self.info.name)
|
|
if not decl.type.const:
|
|
msg = '---> Warning: The global variable "%s" is non-const:\n' \
|
|
' changes in Python will not reflect in C++.'
|
|
print msg % self.info.name
|
|
print
|
|
rename = self.info.rename or self.info.name
|
|
code = self.INDENT + namespaces.python
|
|
code += 'scope().attr("%s") = %s;\n' % (rename, self.info.name)
|
|
codeunit.Write('module', code)
|
|
|
|
|
|
def Order(self):
|
|
return 0, self.info.name
|
|
|
|
|
|
def Name(self):
|
|
return self.info.name
|