]> git.saurik.com Git - wxWidgets.git/blobdiff - src/stc/gen_iface.py
Define wxLongLong_t for Intel compiler.
[wxWidgets.git] / src / stc / gen_iface.py
index 805514e134984fbda7ec9328bb4def85addc1307..1ed1ce7b1435baa982cad13b948ad889cb251be6 100755 (executable)
@@ -18,13 +18,15 @@ from fileinput import FileInput
 
 IFACE         = os.path.abspath('./scintilla/include/Scintilla.iface')
 H_TEMPLATE    = os.path.abspath('./stc.h.in')
 
 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')
 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')
 else:
 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')
 else:
-    DOCSTR_DEST   = '/dev/null'
+    DOCSTR_DEST   = None
 
 
 # Value prefixes to convert
 
 
 # Value prefixes to convert
@@ -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 = []
     curDocStrings = []
     values = []
     methods = []
@@ -979,23 +981,27 @@ def processIface(iface, h_tmplt, cpp_tmplt, h_dest, cpp_dest, docstr_dest):
     data = {}
     data['VALUES'] = processVals(values)
     data['CMDS']   = processVals(cmds)
     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_DEFS'] = defs
+    data['METHOD_IDEFS'] = idefs
     data['METHOD_IMPS'] = imps
 
     # get template text
     h_text = open(h_tmplt).read()
     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
     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)
 
     # write out destination files
     open(h_dest, 'w').write(h_text)
     open(cpp_dest, 'w').write(cpp_text)
-    open(docstr_dest, 'w').write(docstrings)
-
+    if docstr_dest:
+        open(docstr_dest, 'w').write(docstrings)
+    open(ih_dest, 'w').write(ih_text)
 
 
 def joinWithNewLines(values):
 
 
 def joinWithNewLines(values):
@@ -1009,7 +1015,7 @@ def processVals(values):
         if docs:
             text.append('')
             for x in docs:
         if docs:
             text.append('')
             for x in docs:
-                text.append('// ' + x)
+                text.append('/// ' + x)
         text.append('#define %s %s' % (name, value))
     return joinWithNewLines(text)
 
         text.append('#define %s %s' % (name, value))
     return joinWithNewLines(text)
 
@@ -1017,6 +1023,7 @@ def processVals(values):
 
 def processMethods(methods):
     defs = []
 
 def processMethods(methods):
     defs = []
+    idefs = []
     imps = []
     dstr = []
 
     imps = []
     dstr = []
 
@@ -1046,6 +1053,18 @@ def processMethods(methods):
             theDef = theDef + ';'
         defs.append(theDef)
 
             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('')
         # Build the method implementation string
         if docs:
             imps.append('')
@@ -1072,7 +1091,7 @@ def processMethods(methods):
         imps.append(theImp)
 
 
         imps.append(theImp)
 
 
-    return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr)
+    return joinWithNewLines(defs), joinWithNewLines(imps), joinWithNewLines(dstr), joinWithNewLines(idefs)
 
 
 #----------------------------------------------------------------------------
 
 
 #----------------------------------------------------------------------------
@@ -1197,7 +1216,7 @@ def main(args):
         sys.exit(1)
 
     # Now just do it
         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)