Initialize libbullet git in 2.0_beta.
[platform/upstream/libbullet.git] / Extras / Serialize / HeaderGenerator / blenderGenerate.py
1 import dump
2
3
4 header = """/* Copyright (C) 2006 Charlie C
5 *
6 * This software is provided 'as-is', without any express or implied
7 * warranty.  In no event will the authors be held liable for any damages
8 * arising from the use of this software.
9 *
10 * Permission is granted to anyone to use this software for any purpose,
11 * including commercial applications, and to alter it and redistribute it
12 * freely, subject to the following restrictions:
13 *
14 * 1. The origin of this software must not be misrepresented; you must not
15 *    claim that you wrote the original software. If you use this software
16 *    in a product, an acknowledgment in the product documentation would be
17 *    appreciated but is not required.
18 * 2. Altered source versions must be plainly marked as such, and must not be
19 *    misrepresented as being the original software.
20 * 3. This notice may not be removed or altered from any source distribution.
21 */
22 // Auto generated from makesdna dna.c
23 """
24
25 dtList = dump.DataTypeList
26
27 out = "../BlenderSerialize/autogenerated/"
28 spaces = 4
29
30 def addSpaces(file, space):
31         for i in range(0, space):
32                 file.write(" ")
33
34 def write(file, spaces, string):
35         addSpaces(file, spaces)
36         file.write(string)
37
38 ###################################################################################
39 blender = open(out+"blender.h", 'w')
40 blender.write(header)
41 blender.write("#ifndef __BLENDER_H__\n")
42 blender.write("#define __BLENDER_H__\n")
43 for dt in dtList:
44         blender.write("#include \"%s.h\"\n"%dt.filename)
45
46 blender.write("#endif//__BLENDER_H__")
47 blender.close()
48
49 ###################################################################################
50 blenderC = open(out+"blender_Common.h", 'w')
51 blenderC.write(header)
52 blenderC.write("#ifndef __BLENDERCOMMON_H__\n")
53 blenderC.write("#define __BLENDERCOMMON_H__\n")
54
55 strUnRes = """
56 // put an empty struct in the case
57 typedef struct bInvalidHandle {
58         int unused;
59 }bInvalidHandle;
60
61 """
62 blenderC.write(strUnRes)
63
64 blenderC.write("namespace Blender {\n")
65 for dt in dtList:
66         write(blenderC, 4, "class %s;\n"%dt.name)
67
68 blenderC.write("}\n")
69 blenderC.write("#endif//__BLENDERCOMMON_H__")
70 blenderC.close()
71
72
73 for dt in dtList:
74         fp = open(out+dt.filename+".h", 'w')
75         
76         fp.write(header)
77         strUpper = dt.filename.upper()
78         
79         fp.write("#ifndef __%s__H__\n"%strUpper)
80         fp.write("#define __%s__H__\n"%strUpper)
81         fp.write("\n\n")
82         
83         
84         fp.write("// -------------------------------------------------- //\n")
85         fp.write("#include \"blender_Common.h\"\n")
86
87         for i in dt.includes:
88                 fp.write("#include \"%s\"\n"%i)
89
90         fp.write("\nnamespace Blender {\n")
91         fp.write("\n\n")
92
93         addSpaces(fp,4)
94         fp.write("// ---------------------------------------------- //\n")
95
96
97         write(fp, 4, "class %s\n"%dt.name)
98
99         write(fp, 4, "{\n")
100         write(fp, 4, "public:\n")
101         for i in dt.dataTypes:
102                 write(fp, 8, i+";\n")
103
104
105         write(fp, 4, "};\n")
106         fp.write("}\n")
107         fp.write("\n\n")
108         fp.write("#endif//__%s__H__\n"%strUpper)
109         fp.close()
110
111