diff options
-rw-r--r-- | build.xml | 148 |
1 files changed, 81 insertions, 67 deletions
@@ -2,9 +2,9 @@ <project name="Fernflower" default="buildAll" basedir="."> - <taskdef resource="proguard/ant/task.properties" + <taskdef resource="proguard/ant/task.properties" classpath="${basedir}/lib/proguard_4_11.jar" /> - + <taskdef name="javancss" classname="javancss.JavancssAntTask"> <classpath> @@ -14,26 +14,33 @@ <pathelement location="${basedir}/lib/ncss/ccl.jar"/> </classpath> </taskdef> - + <target name="init" description="initialization"> <property name="jar.file" value="fernflower.jar" /> <property name="timer.jar.file" value="timer.jar" /> + <property name="src" value="${basedir}/src" /> <property name="bin" value="${basedir}/bin" /> <property name="lib" value="${basedir}/lib" /> <property name="fulldist" value="${basedir}/dist/full" /> <property name="obfuscateddist" value="${basedir}/dist/obfuscated" /> - - <property name="tomcat" value="C:/revjava/apache-tomcat-5.5.27/shared/lib/" /> - <property name="webwrapper" value="D:/Nonbku/workspace/webwrapper/lib/" /> </target> - <target name="buildAll" depends="init, jar, obfuscate" description="build full distribution paket"/> - - <target name="timer" depends="init" description="generate timer jar file"> - <jar jarfile="${lib}/timer/${timer.jar.file}" compress="true" basedir="${bin}" includes="com/**/*.class,*.class"/> - </target> + <target name="buildAll" depends="jar, obfuscate" description="build full distribution packet"/> - <target name="jar" depends="init" description="generate jar file"> + <target name="clean" depends="init"> + <delete includeemptydirs="true" failonerror="false"> + <fileset dir="${bin}"/> + <fileset dir="${fulldist}"/> + <fileset dir="${obfuscateddist}"/> + </delete> + </target> + + <target name="compile" depends="clean" description="compile sources (main module only)"> + <mkdir dir="${bin}"/> + <javac srcdir="${src}" destdir="${bin}" source="1.6" target="1.6" encoding="UTF-8"/> + </target> + + <target name="jar" depends="compile" description="generate jar file"> <jar jarfile="${fulldist}/${jar.file}" compress="true" basedir="${bin}" includes="**/*.class" excludes="test/**/*.*,com/**/*.*,*.class"> <manifest> <attribute name="Main-Class" value="de.fernflower.main.decompiler.ConsoleDecompiler"/> @@ -41,57 +48,64 @@ </jar> </target> - <target name="deploy" depends="jar" description="deploy generated jar file to Tomcat"> - <copy todir="${webwrapper}" file="${fulldist}/${jar.file}" overwrite="true"/> - <copy todir="${tomcat}" file="${fulldist}/${jar.file}" overwrite="true"/> - </target> - - <target name="loc" description="count lines of code"> - <javancss srcdir="${basedir}/src" - generateReport="true" - functionMetrics="false" - classMetrics="false" - includes="**/*.java" - excludes="**/test/**,**/de/fernflower/code/instructions/**,**/timer/**" - /> - </target> - - - <target name="obfuscate" description="Call Proguard on Fernflower"> - <!-- 4.0.1 --> - <proguard> - - -injars "${fulldist}/${jar.file}" - -outjars "${obfuscateddist}/${jar.file}" - -libraryjars "${java.home}/lib/rt.jar" - - -forceprocessing - -repackageclasses - <!-- -allowaccessmodification --> - - -optimizationpasses 5 - - -keep public class de.fernflower.main.decompiler.ConsoleDecompiler { - public protected *; - } + <target name="obfuscate" depends="init" description="Call Proguard on Fernflower"> + <condition property="rt_jar" value="${java.home}/../Classes/classes.jar" else="${java.home}/lib/rt.jar"> + <contains string="${java.vendor}" substring="Apple"/> + </condition> + <proguard> + -injars "${fulldist}/${jar.file}" + -outjars "${obfuscateddist}/${jar.file}" + -libraryjars "${rt_jar}" + + -forceprocessing + -repackageclasses + <!-- -allowaccessmodification --> + + -optimizationpasses 5 + + -keep public class de.fernflower.main.decompiler.ConsoleDecompiler { + public protected *; + } + + -keep public class de.fernflower.main.decompiler.EclipseDecompiler { + public protected *; + } + + -keep public class de.fernflower.main.extern.* { + public protected *; + } + + <!-- + -keep public class de.fernflower.code.instructions.* { + public protected *; + } + --> + </proguard> + </target> + + <!-- Helper targets --> + + <target name="timer" depends="init" description="generate timer jar file"> + <jar jarfile="${lib}/timer/${timer.jar.file}" compress="true" basedir="${bin}" includes="com/**/*.class,*.class"/> + </target> + + <target name="deploy" depends="jar" description="deploy generated jar file to Tomcat"> + <property name="tomcat" value="C:/revjava/apache-tomcat-5.5.27/shared/lib/" /> + <property name="webwrapper" value="D:/Nonbku/workspace/webwrapper/lib/" /> + <copy todir="${webwrapper}" file="${fulldist}/${jar.file}" overwrite="true"/> + <copy todir="${tomcat}" file="${fulldist}/${jar.file}" overwrite="true"/> + </target> + + <target name="loc" description="count lines of code"> + <javancss srcdir="${basedir}/src" + generateReport="true" + functionMetrics="false" + classMetrics="false" + includes="**/*.java" + excludes="**/test/**,**/de/fernflower/code/instructions/**,**/timer/**" + /> + </target> - -keep public class de.fernflower.main.decompiler.EclipseDecompiler { - public protected *; - } - - -keep public class de.fernflower.main.extern.* { - public protected *; - } - - <!-- - -keep public class de.fernflower.code.instructions.* { - public protected *; - } - --> - - </proguard> - </target> - <target name="printunused" depends="init" description="Print unused code"> <proguard> @@ -108,7 +122,7 @@ public *; } --> - + -keep public class de.fernflower.main.decompiler.ConsoleDecompiler { public protected *; } @@ -123,9 +137,9 @@ <!-- -keep public class de.fernflower.code.instructions.* - --> - + --> + </proguard> </target> - -</project>
\ No newline at end of file + +</project> |