| <?xml version="1.0"?> |
| |
| <project name="common" default="package"> |
| |
| <!-- Static property definitions. These will remain the same for any module or submodule. --> |
| <property name="project.name" value="jsecurity"/> |
| |
| <property name="root.base.dir" value="${basedir}"/> |
| |
| <!-- Allow override of default build properties from properties file. --> |
| <property file="build.properties"/> |
| <property file="${root.base.dir}/build.properties"/> |
| <property file="${user.home}/.jsecurity/build.properties"/> |
| |
| <!-- Environment variables (e.g. to pickup CATALINA_HOME for test deployment) --> |
| <property environment="env"/> |
| |
| <!-- version of the product, see http://apr.apache.org/versioning.html for details on this convention --> |
| <property name="version.major" value="1"/> |
| <property name="version.minor" value="0"/> |
| <property name="version.revision" value="0-SNAPSHOT"/> |
| <property name="version" value="${version.major}.${version.minor}.${version.revision}"/> |
| <property name="release.name" value="${project.name}-${version}"/> |
| |
| <!-- application-wide config files: (all other config files should be in a respective module or submodule) --> |
| <property name="root.etc.dir" value="${root.base.dir}/etc"/> |
| <property name="root.dist.dir" value="${root.base.dir}/build/${project.name}-${version}"/> |
| |
| <!-- All 3rd party libraries are in here: --> |
| <property name="lib.dir" value="${root.base.dir}/lib"/> |
| |
| <!-- *RELATIVE* definitions. These properties will reflect a directory structure relative to where the |
| sbuild is being executed --> |
| <property name="base.dir" value="."/> |
| <property name="etc.dir" value="${base.dir}/etc"/> |
| <property name="src.dir" value="${base.dir}/src"/> |
| <property name="test.dir" value="${base.dir}/test"/> |
| <property name="build.dir" value="${base.dir}/build"/> |
| <property name="classes.dir" value="${build.dir}/classes"/> |
| <property name="test.classes.dir" value="${build.dir}/test-classes"/> |
| <property name="docs.dir" value="${build.dir}/docs"/> |
| <property name="test.docs.dir" value="${docs.dir}/test-reports"/> |
| <property name="api.dir" value="${docs.dir}/api"/> |
| <property name="dist.dir" value="${root.dist.dir}"/> |
| |
| <!-- compile flags, can be overridden on the command line using the -D flag --> |
| <property name="compile.debug" value="true"/> |
| <property name="compile.deprecation" value="false"/> |
| <property name="compile.optimize" value="false"/> |
| |
| <property name="deploy.dir" value="${env.CATALINA_HOME}/webapps"/> |
| |
| <path id="all.libs"> |
| <fileset dir="${lib.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| <pathelement location="${classes.dir}"/> |
| </path> |
| |
| <path id="test.path"> |
| <path refid="all.libs"/> |
| <fileset dir="${dist.dir}"> |
| <include name="**/*.jar"/> |
| </fileset> |
| </path> |
| |
| <!-- =================================================================== |
| - Clean all build files |
| - =================================================================== --> |
| <target name="clean" description="Cleans the entire project"> |
| <delete file="${dist.jar}"/> |
| <delete dir="${build.dir}"/> |
| </target> |
| |
| <macrodef name="compileMacro"> |
| <attribute name="classpathref" default="compile.path"/> |
| <attribute name="srcdir" default="${src.dir}"/> |
| <attribute name="destdir" default="${classes.dir}"/> |
| |
| <sequential> |
| <mkdir dir="@{destdir}"/> |
| <mkdir dir="@{destdir}/META-INF"/> |
| |
| <!-- 'compile.path' is expected to be defined in the module build.xml file --> |
| <javac destdir="@{destdir}" |
| debug="${compile.debug}" |
| deprecation="${compile.deprecation}" |
| optimize="${compile.optimize}" |
| failonerror="true" |
| srcdir="@{srcdir}" |
| classpathref="@{classpathref}"> |
| <!-- <compilerarg value="-Xlint:unchecked"/> --> |
| </javac> |
| <copy todir="@{destdir}" preservelastmodified="true"> |
| <fileset dir="@{srcdir}"> |
| <include name="**/*"/> |
| <exclude name="**/*.java"/> |
| </fileset> |
| </copy> |
| <copy todir="@{destdir}" preservelastmodified="true"> |
| <fileset dir="@{srcdir}"> |
| <include name="**/*.tld"/> |
| </fileset> |
| </copy> |
| </sequential> |
| </macrodef> |
| |
| <target name="compile.src" description="Compiles sources"> |
| <!-- defaults are fine: --> |
| <compileMacro/> |
| </target> |
| |
| <target name="compile.test" description="Compiles test sources only"> |
| <compileMacro classpathref="test.path" srcdir="${test.dir}" destdir="${test.classes.dir}"/> |
| </target> |
| |
| <target name="compile" depends="compile.src, compile.test" description="Compiles all sources"/> |
| |
| <target name="jar.jdk15" depends="compile" description="Create module jar file"> |
| <jar jarfile="${dist.jar}"> |
| <fileset dir="${classes.dir}"> |
| <include name="**"/> |
| </fileset> |
| <metainf dir="${classes.dir}/META-INF"> |
| <include name="**"/> |
| </metainf> |
| <manifest> |
| <attribute name="Implementation-Title" value="${project.name}-${module.name}"/> |
| <attribute name="Implementation-Version" value="${version}"/> |
| <attribute name="${project.name}-Version" value="${version}"/> |
| <!-- Allow use of this JAR as a Java agent --> |
| <!-- <attribute name="Premain-Class" value="org.jsecurity.instrument.InstrumentationSavingAgent" /> --> |
| </manifest> |
| </jar> |
| </target> |
| |
| <target name="jar.retroweaver" depends="jar.jdk15" description="Create module jar file for JDK 1.3 and 1.4"> |
| <taskdef name="retroweaver" classname="net.sourceforge.retroweaver.ant.RetroWeaverTask" |
| classpathref="all.libs"/> |
| <mkdir dir="${dist.dir}/jdk13"/> |
| <mkdir dir="${dist.dir}/jdk14"/> |
| <retroweaver target="1.3" inputjar="${dist.jar}" |
| outputjar="${dist.dir}/jdk13/${project.name}-${module.name}-jdk13-${version}.jar"/> |
| <retroweaver target="1.4" inputjar="${dist.jar}" |
| outputjar="${dist.dir}/jdk14/${project.name}-${module.name}-jdk14-${version}.jar"/> |
| </target> |
| |
| <target name="jar" depends="jar.retroweaver"/> |
| |
| <target name="package" depends="jar"/> |
| |
| </project> |