2007-08-13 Jb Evain <jbevain@novell.com>
[mono.git] / mcs / class / Mono.Cecil / default.build
1 <?xml version="1.0"?>
2 <project name="Cecil" default="cecil" basedir=".">
3
4         <property name="debug" value="false" />
5         <property name="optimize" value="true" />
6         <property name="build.dir" value="bin" />
7         <property name="keyfile" value="../mono.snk" />
8
9         <!-- allow properties to be customized in external file" -->
10         <include buildfile="build.properties" if="${file::exists('build.properties')}" />
11
12         <fileset id="all-files">
13                 <include name="./**/*.cs" />
14                 <exclude name="CodeGen/**/*.*" />
15         </fileset>
16
17         <target name="clean">
18                 <delete failonerror="false">
19                         <fileset>
20                                 <include name="**/bin/**" />
21                                 <include name="**/obj/**" />
22                                 <include name="${build.dir}/**" />
23                         </fileset>
24                 </delete>
25         </target>
26
27         <target name="init">
28                 <mkdir dir="${build.dir}" />
29         </target>
30
31         <target name="cecil" depends="init">
32                 <csc output="${build.dir}/Mono.Cecil.dll"
33                         target="library" debug="${debug}" unsafe="false" optimize="${optimize}" keyfile="${keyfile}">
34                         <sources refid="all-files"/>
35                 </csc>
36         </target>
37
38         <target name="compactframework" depends="init" description="compiles cecil to run on the CompactFramework 1.0">
39                 <property name="compactframework.defines" value="CF_1_0" />
40                 <property name="compactframework.dir" value="${compactframework.v1.dir}" />
41                 <call target="compactframework-compilation" />
42         </target>
43
44         <target name="compactframework2" depends="init" description="compiles cecil to run on the CompactFramework 2.0">
45                 <property name="compactframework.defines" value="CF_2_0" />
46                 <property name="compactframework.dir" value="${compactframework.v2.dir}" />
47                 <call target="compactframework-compilation" />
48         </target>
49
50         <target name="compactframework-compilation">
51                 <csc output="${build.dir}/Mono.Cecil.dll"
52                         target="library" debug="${debug}" unsafe="false" optimize="${optimize}"
53                         noconfig="true" nostdlib="true" keyfile="${keyfile}"
54                         define="${compactframework.defines}">
55                         <sources refid="all-files" />
56
57                         <references basedir="${compactframework.dir}">
58                                 <include name="mscorlib.dll" />
59                                 <include name="System.dll" />
60                         </references>
61                 </csc>
62         </target>
63
64         <target name="codegen">
65                 <exec program="ruby" commandline="cecil-gen.rb" workingdir="CodeGen" />
66         </target>
67 </project>