Generate the interface file for STC from gen_iface too.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72787 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -18,8 +18,10 @@ from fileinput import FileInput
|
||||
|
||||
IFACE = os.path.abspath('./scintilla/include/Scintilla.iface')
|
||||
H_TEMPLATE = os.path.abspath('./stc.h.in')
|
||||
IH_TEMPLATE = os.path.abspath('./stc.interface.h.in')
|
||||
CPP_TEMPLATE = os.path.abspath('./stc.cpp.in')
|
||||
H_DEST = os.path.abspath('../../include/wx/stc/stc.h')
|
||||
IH_DEST = os.path.abspath('../../interface/wx/stc/stc.h')
|
||||
CPP_DEST = os.path.abspath('./stc.cpp')
|
||||
if len(sys.argv) > 1 and sys.argv[1] == '--wxpython':
|
||||
DOCSTR_DEST = os.path.abspath('../../../wxPython/src/_stc_gendocs.i')
|
||||
@@ -932,7 +934,7 @@ constNonGetterMethods = (
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest):
|
||||
def processIface(iface, h_tmplt, cpp_tmplt, ih_tmplt, h_dest, cpp_dest, docstr_dest, ih_dest):
|
||||
curDocStrings = []
|
||||
values = []
|
||||
methods = []
|
||||
@@ -979,23 +981,26 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest):
|
||||
data = {}
|
||||
data['VALUES'] = processVals(values)
|
||||
data['CMDS'] = processVals(cmds)
|
||||
defs, imps, docstrings = processMethods(methods)
|
||||
defs, imps, docstrings, idefs = processMethods(methods)
|
||||
data['METHOD_DEFS'] = defs
|
||||
data['METHOD_IDEFS'] = idefs
|
||||
data['METHOD_IMPS'] = imps
|
||||
|
||||
# get template text
|
||||
h_text = open(h_tmplt).read()
|
||||
ih_text = open(ih_tmplt).read()
|
||||
cpp_text = open(cpp_tmplt).read()
|
||||
|
||||
# do the substitutions
|
||||
h_text = h_text % data
|
||||
cpp_text = cpp_text % data
|
||||
ih_text = ih_text % data
|
||||
|
||||
# write out destination files
|
||||
open(h_dest, 'w').write(h_text)
|
||||
open(cpp_dest, 'w').write(cpp_text)
|
||||
open(docstr_dest, 'w').write(docstrings)
|
||||
|
||||
open(ih_dest, 'w').write(ih_text)
|
||||
|
||||
|
||||
def joinWithNewLines(values):
|
||||
@@ -1009,7 +1014,7 @@ def processVals(values):
|
||||
if docs:
|
||||
text.append('')
|
||||
for x in docs:
|
||||
text.append('// ' + x)
|
||||
text.append('/// ' + x)
|
||||
text.append('#define %s %s' % (name, value))
|
||||
return joinWithNewLines(text)
|
||||
|
||||
@@ -1017,6 +1022,7 @@ def processVals(values):
|
||||
|
||||
def processMethods(methods):
|
||||
defs = []
|
||||
idefs = []
|
||||
imps = []
|
||||
dstr = []
|
||||
|
||||
@@ -1046,6 +1052,18 @@ def processMethods(methods):
|
||||
theDef = theDef + ';'
|
||||
defs.append(theDef)
|
||||
|
||||
# Build the method definition for the interface .h file
|
||||
if docs:
|
||||
idefs.append('')
|
||||
idefs.append(' /**')
|
||||
for x in docs:
|
||||
idefs.append(' ' + x)
|
||||
idefs.append(' */')
|
||||
if name == 'GetCurLine':
|
||||
idefs.append(' wxString GetCurLine(int* linePos=NULL);')
|
||||
else:
|
||||
idefs.append(theDef)
|
||||
|
||||
# Build the method implementation string
|
||||
if docs:
|
||||
imps.append('')
|
||||
@@ -1072,7 +1090,7 @@ def processMethods(methods):
|
||||
imps.append(theImp)
|
||||
|
||||
|
||||
return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr)
|
||||
return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr), joinWithNewLines(idefs)
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
@@ -1197,7 +1215,7 @@ def main(args):
|
||||
sys.exit(1)
|
||||
|
||||
# Now just do it
|
||||
processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, H_DEST, CPP_DEST, DOCSTR_DEST)
|
||||
processIface(IFACE, H_TEMPLATE, CPP_TEMPLATE, IH_TEMPLATE, H_DEST, CPP_DEST, DOCSTR_DEST, IH_DEST)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user