Adapt build script for changes to argument interpretation in fabricate's Builder...
[build-benchmarks.git] / ant.py
blob72d597fd2b0ff83bc6215434e702682380000016
1 #!/usr/bin/python
3 import os
4 import cppcodebase
5 import random
8 def CreateAntBuildFile(libs, compiler):
9 stream = file("build.xml", "w")
10 stream.write("""<?xml version="1.0"?>
11 <project name="ant_test" default="all" basedir=".">
12 <taskdef resource="cpptasks.tasks"/>
13 <typedef resource="cpptasks.types"/>
14 """)
16 for i in xrange(libs):
17 libname = cppcodebase.lib_name(i)
18 stream.write(''' <target name="''' + libname + '''">
19 <mkdir dir="''' + libname + '''/obj"/>
20 <cc subsystem="console"
21 objdir="''' + libname + '''/obj"
22 outtype="static"
23 debug="true"
24 name="''' + compiler + '''">
25 <fileset dir="''' + libname + '''" includes="*.cpp"/>
26 <includepath path="."/>
27 </cc>
28 </target>
29 ''')
31 stream.write(' <target name="all" depends="\n')
32 for i in xrange(libs-1):
33 stream.write(' ' + cppcodebase.lib_name(i) + ',\n')
34 stream.write(' ' + cppcodebase.lib_name(libs-1) + '">\n')
35 stream.write(' </target>\n')
37 stream.write(' <target name="clean">\n')
38 for i in xrange(libs):
39 stream.write(' <delete dir="''' + cppcodebase.lib_name(i) + '/obj"/>\n')
40 stream.write(' </target>\n')
42 stream.write('</project>\n')
45 def NullFunction(a,b):
46 return
49 def CreateCodebaseForCompiler(libs, classes, internal_includes, external_includes, compiler):
50 cppcodebase.SetDir('ant_' + compiler)
51 cppcodebase.CreateSetOfLibraries(libs, classes, internal_includes, external_includes, NullFunction)
52 CreateAntBuildFile(libs, compiler)
53 os.chdir('..')
57 def CreateCodebase(libs, classes, internal_includes, external_includes):
58 CreateCodebaseForCompiler(libs, classes, internal_includes, external_includes, "gcc")
59 CreateCodebaseForCompiler(libs, classes, internal_includes, external_includes, "msvc")