Added build target which translates rocksim component directories in resources-src...
[debian/openrocket] / core / build.xml
index 0ebe47092b7dc3a9b1d2c9d4aea9d590726f3b4f..7ae8c365d07dca7e13ec532b506aef5d505060f4 100644 (file)
@@ -1,6 +1,6 @@
 <project name="OpenRocket" basedir=".">
 
-       <property file="build.properties" />
+       <property file="resources/build.properties" />
        
        <property name="src.dir"        value="src"/>           <!-- Source directory -->
        <property name="src-test.dir"   value="test"/>          <!-- Test directory -->
        
        <path id="test-classpath">
                <path refid="classpath"/>
-               <pathelement location="${basedir}"/>
+               <pathelement location="${basedir}/resources"/>
                <pathelement location="${build-test.dir}"/>
                <pathelement location="${classes.dir}"/>
                <pathelement location="${src-test.dir}"/>
                <fileset dir="lib-test/" includes="*.jar"/>
        </path>
-       
+
+       <path id="run-classpath">
+               <path refid="classpath"/>
+               <pathelement location="${basedir}/resources"/>
+               <pathelement location="${classes.dir}"/>
+       </path>
+
+       <!-- Add Ant-contrib tasks so we can use for loop -->
+       <taskdef resource="net/sf/antcontrib/antlib.xml">
+               <classpath>
+                       <pathelement location="lib-extra/ant-contrib-1.0b3.jar"/>
+               </classpath>
+       </taskdef>
 
        
        <!-- CLEAN -->
-       <target name="clean">
+       <target name="clean" description="Removes all build artifacts">
                <delete dir="${build.dir}"/>
                <delete dir="tmp/"/>
        </target>
                <mkdir dir="${classes.dir}"/>
                <echo level="info">Compiling main classes</echo>
                <javac debug="true" srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/>
-               <echo level="info">Copying build.properties</echo>
-               <copy file="build.properties" todir="${dist.dir}"/>
        </target>
        
        
        <!-- JAR -->
-       <target name="jar" depends="build">
+       <target name="jar" depends="build" description="Create the OpenRocket jar file">
                <copy todir="${dist.dir}/">
-                       <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes build.properties fileformat.txt" />
-                       <fileset dir="." includes="datafiles/ pix/ l10n/" />
+                       <fileset dir="." includes="LICENSE.TXT README.TXT ChangeLog ReleaseNotes fileformat.txt" />
+                       <fileset dir="resources/"/>
                        <fileset dir="src/" includes="META-INF/" />
                </copy>
                <mkdir dir="${jar.dir}"/>
                        <zipfileset src="lib/jcommon-1.0.16.jar" />
                        <zipfileset src="lib/jfreechart-1.0.13.jar" />
                        <zipfileset src="lib/iText-5.0.2.jar" />
+                       <zipfileset src="lib/opencsv-2.3.jar" />
                </jar>
        </target>
-       
+
+       <!-- CONVERT vendor csv to ORC files -->
+       <macrodef name="build-orc-file">
+               <attribute name="dir"/>
+               <attribute name="vendor"/>
+               <sequential>
+                       <echo>Generating ORC file for vendor @{vendor}</echo>
+                       <java classname="net.sf.openrocket.preset.loader.RocksimComponentFileTranslator"
+                               fork="true"
+                               classpathref="run-classpath"
+                               failonerror="true">
+                               <arg value="@{dir}"/>
+                               <arg value="resources/datafiles/presets/@{vendor}.orc"/>
+                       </java>
+               </sequential>
+       </macrodef>
+
+       <target name="generate-orc-files"
+               description="Generate ORC file from vendor csv"
+               depends="build">
+
+               <for param="vendor-dir">
+                       <dirset dir="resources-src/datafiles/rocksim_components"
+                               includes="*"
+                               excludes="giantleaprocketry"/>
+                       <sequential>
+                               <propertyregex property="vendor"
+                                       override="true"
+                                       input="@{vendor-dir}"
+                                       select="\1"
+                                       regexp=".*[/\\]([^/\\]*)$"/>
+                               <build-orc-file dir="@{vendor-dir}" vendor="${vendor}"/>
+                       </sequential>
+               </for>
+       </target>
        
        <!-- DIST-SRC -->
        <target name="dist-src">
                        <fileset dir="." includes="*" excludes="*.log">
                                <type type="file"/>
                        </fileset>
-                       <fileset dir="." includes="datafiles/ lib/ lib-test/ pix/ src/ test/ l10n/"/>
+                       <fileset dir="." includes="resources/ lib/ lib-test/ src/ test/"/>
                </copy>
                <zip destfile="${dist.src}" basedir="${build.dir}" includes="${pkgname}/"/>
                <delete dir="${build.dir}/${pkgname}"/>
@@ -214,4 +259,4 @@ ${nonascii}</fail>
                </echo>
        </target>
     
-</project>
\ No newline at end of file
+</project>