]> git.tdb.fi Git - libs/gl.git/blobdiff - scripts/extgen.py
Do not store generated files in the repository
[libs/gl.git] / scripts / extgen.py
index 4ccf27a676545cc3e50914e1e6b583a36afcee9b..bcff3b4498ccafeefbc061c81872c3fbef3051be 100755 (executable)
@@ -1,6 +1,7 @@
 #!/usr/bin/python
 
 import sys
+import os
 
 if len(sys.argv)<2:
        print """Usage:
@@ -13,13 +14,34 @@ given to override the version where <extension> was promoted to core."""
        sys.exit(0)
 
 ext = sys.argv[1]
+out_base = None
+if ext.endswith(".glext"):
+       fn = ext
+       ext = None
+       ver = None
+       secondary = []
+       for line in open(fn):
+               parts = line.split()
+               if parts[0]=="extension":
+                       ext = parts[1]
+               elif parts[0]=="core_version":
+                       ver = parts[1]
+               elif parts[0]=="secondary":
+                       secondary.append(parts[1])
+       if len(sys.argv)>=3:
+               out_base = os.path.splitext(sys.argv[2])[0]
+else:
+       secondary = sys.argv[2:]
+       ver = None
+       if secondary and secondary[0][0].isdigit():
+               ver = secondary.pop(0)
+
 exttype = ext.split('_')[0]
-secondary = sys.argv[2:]
-ver = None
-if secondary and secondary[0][0].isdigit():
-       ver = secondary.pop(0)
 bp_ext = None
 
+if not out_base:
+       out_base = ext.lower()
+
 class Function:
        def __init__(self, name):
                self.name = name
@@ -103,13 +125,13 @@ for f in funcs:
 if ver:
        ver = map(int, ver.split('.'))
 
-out = file(ext.lower()+".h", "w")
+out = file(out_base+".h", "w")
 out.write("#ifndef MSP_GL_%s_\n"%ext.upper())
 out.write("#define MSP_GL_%s_\n"%ext.upper())
 
 out.write("""
-#include "extension.h"
-#include "gl.h"
+#include <msp/gl/extension.h>
+#include <msp/gl/gl.h>
 #include <GL/glext.h>
 
 namespace Msp {
@@ -130,7 +152,7 @@ out.write("""
 #endif
 """)
 
-out = file(ext.lower()+".cpp", "w")
+out = file(out_base+".cpp", "w")
 out.write("#include \"%s.h\"\n"%ext.lower())
 
 out.write("""