diff options
Diffstat (limited to 'make/build.xml')
-rw-r--r-- | make/build.xml | 336 |
1 files changed, 336 insertions, 0 deletions
diff --git a/make/build.xml b/make/build.xml new file mode 100644 index 000000000..d9fdf1e5b --- /dev/null +++ b/make/build.xml @@ -0,0 +1,336 @@ + +<project name="JOGL_ALL" basedir="." default="all"> + + <import file="build-common.xml"/> + + <!-- ================================================================== --> + <!-- + - Main build target. + --> + + <target name="all" description="Build nativewindow, jogl and newt projects, incl. all junit tests " depends="init,build.nativewindow,build.jogl,build.newt,test.compile,one.dir,tag.build,developer-zip-archive" /> + + <target name="all.but-archives" description="Build nativewindow, jogl and newt projects, incl. all junit tests " depends="init,build.nativewindow,build.jogl,build.newt,test.compile,one.dir,tag.build" /> + + <target name="all.ide" description="Build nativewindow, jogl and newt projects, including all junit tests, but don't copy libs or JARs or tag the build" depends="init,build.nativewindow,build.jogl,build.newt,test.compile" /> + + <target name="test.compile"> + <ant antfile="build-test.xml" target="test.compile" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="test.auto.run" description="Run automated tests (junit and others) in nativewindow, jogl and newt projects"> + <ant antfile="build-test.xml" target="test.auto.run" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="junit.run" description="Run automated junit tests in nativewindow, jogl and newt projects"> + <ant antfile="build-test.xml" target="junit.run" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="test.manual.run" description="Run manual operated tests in nativewindow, jogl and newt projects"> + <ant antfile="build-test.xml" target="test.manual.run" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="javadoc.all.zip" depends="javadoc.init, javadoc.all, javadoc.zip"/> + + <target name="javadoc.spec.zip" depends="javadoc.init, javadoc.spec, javadoc.zip"/> + + <target name="javadoc.nw.spec.zip" depends="javadoc.init, javadoc.nw.spec, javadoc.zip"/> + + <target name="javadoc.spec" description="Build Specifications JOGL and Nativewindow" + depends="javadoc.init, javadoc.nw.spec, javadoc.jogl.spec" /> + + <!-- excluded javadoc.dev due to time consumption --> + <target name="javadoc.all" description="Build all NativeWindow, JOGL and NEWT docs" + depends="javadoc.init, javadoc.nw.spec, javadoc.jogl.spec, javadoc.public"/> + + <target name="clean" depends="init"> + <ant antfile="${nativewindow.build.xml}" dir="${nativewindow.make}" target="clean" inheritRefs="true" inheritAll="true"/> + <ant antfile="${jogl.build.xml}" dir="${jogl.make}" target="clean" inheritRefs="true" inheritAll="true"/> + <ant antfile="${newt.build.xml}" dir="${newt.make}" target="clean" inheritRefs="true" inheritAll="true"/> + <delete includeEmptyDirs="true" quiet="true" failonerror="false"> + <fileset dir="${build}" /> + </delete> + </target> + + <!-- ================================================================== --> + <!-- + - Local targets. + --> + + <target name="init" depends="common.init" /> + + <target name="build.nativewindow" depends="init"> + <ant antfile="${nativewindow.build.xml}" dir="${nativewindow.make}" target="all" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="build.jogl" depends="init"> + <ant antfile="${jogl.build.xml}" dir="${jogl.make}" target="all" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="build.newt" depends="init"> + <ant antfile="${newt.build.xml}" dir="${newt.make}" target="all" inheritRefs="true" inheritAll="true"/> + </target> + + <target name="one.lib.dir" depends="init,gluegen.cpptasks.detect.os"> + <delete includeEmptyDirs="true" quiet="true" dir="${lib}" failonerror="false" /> + <mkdir dir="${lib}" /> + <copy todir="${lib}"> + <fileset dir="${gluegen.root}/${rootrel.build}/obj" includes="*.${native.library.suffix}" /> + <fileset dir="${build}/jogl/obj" includes="*.${native.library.suffix}" /> + <fileset dir="${build}/nativewindow/obj" includes="*.${native.library.suffix}" /> + <fileset dir="${build}/newt/obj" includes="*.${native.library.suffix}" /> + </copy> + </target> + + <target name="one.jar.dir" depends="init,gluegen.cpptasks.detect.os"> + <delete includeEmptyDirs="true" quiet="true" dir="${jar}" failonerror="false" /> + <mkdir dir="${jar}" /> + <copy todir="${jar}"> + <fileset dir="${gluegen.root}/${rootrel.build}" includes="gluegen-rt*.jar" /> + <fileset dir="${build}/jogl" includes="*.jar" /> + <fileset dir="${build}/nativewindow" includes="*.jar" /> + <fileset dir="${build}/newt" includes="*.jar" /> + </copy> + </target> + + <target name="one.dir" depends="one.lib.dir,one.jar.dir"/> + + <target name="repack-jars" depends="one.jar.dir"> + <!-- Re-pack jars we have the intent to compress later, after signing --> + <mkdir dir="${jar}/orig" /> + <copy todir="${jar}/orig"> + <fileset dir="${jar}" includes="*.jar" /> + </copy> + <apply dir="${jar}" executable="${java.home}/bin/pack200" + parallel="false" + vmlauncher="false" + relative="true" + failonerror="false"> + <arg line="--repack"/> + <srcfile/> + <fileset dir="${jar}" includes="*.jar" /> + </apply> + </target> + + <!-- ================================================================== --> + <!-- + - Build the per-platform binary zip archive for developers. + - This must be called after all of the build targets complete. + --> + + <target name="developer-zip-archive" depends="init" if="build.archiveon"> + <delete includeEmptyDirs="true" quiet="true" dir="${archive}" failonerror="false" /> + <mkdir dir="${archive}" /> + <copy file="${build}/artifact.properties" todir="${archive}" /> + <copy file="../CHANGELOG.txt" todir="${archive}" /> + <copy file="../LICENSE.txt" todir="${archive}" /> + <copy file="../doc/userguide/index.html" tofile="${archive}/Userguide.html" /> + <copy file="README-zip-bundles.txt" + tofile="${archive}/README.txt" + overwrite="true"> + <filterset> + <filter token="VERSION" value="${jogl.version}"/> + <filter token="SCM_BRANCH" value="${jogl.build.branch}"/> + <filter token="SCM_COMMIT" value="${jogl.build.commit}"/> + <filter token="BASEVERSION" value="${jogl_base_version}"/> + </filterset> + </copy> + <mkdir dir="${archive}/jar" /> + <copy todir="${archive}/jar"> + <fileset dir="${build}/jar" includes="*"/> + </copy> + <mkdir dir="${archive}/lib" /> + <copy todir="${archive}/lib"> + <fileset dir="${build}/lib" includes="*"/> + </copy> + <mkdir dir="${archive}/jnlp-files" /> + <copy todir="${archive}/jnlp-files"> + <fileset dir="${project.root}/jnlp-files" includes="*" /> + </copy> + <mkdir dir="${archive}/etc" /> + <copy todir="${archive}/etc"> + <fileset dir="${project.root}/etc" includes="*" /> + </copy> + <archive.7z destfile="${build}/${archive.name}.7z" + basedir="${build}" + includes="${archive.name}/**" /> + <!-- Clean up after ourselves --> + <delete includeEmptyDirs="true" quiet="true" dir="${archive}" failonerror="false" /> + </target> + + <target name="tag.build" depends="init"> + <copy file="${build.gluegen}/artifact.properties" todir="${build}" overwrite="true"/> + <echo message='jogl.build.number=${jogl.build.number}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jogl.build.id=${jogl.build.id}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jogl.build.branch=${jogl.build.branch}${line.separator}' file="${build}/artifact.properties" append="true"/> + <echo message='jogl.build.commit=${jogl.build.commit}${line.separator}' file="${build}/artifact.properties" append="true"/> + </target> + + + <!-- ================================================================== --> + <!-- + - Javadoc build target. + --> + + <!-- copies ${gluegen-javadoc.path}/** to ${javadoc.root.path}/gluegen/ + gluegen-javadoc.path is the parent folder of package-list: + gluegen-javadoc.path := build/javadoc/gluegen + with build/javadoc/gluegen/javadoc/package-list + --> + <target name="javadoc.gluegen" depends="init" if="gluegen-javadoc.path"> + <delete dir="${javadoc.root.path}/gluegen" includeEmptyDirs="true" quiet="true" failonerror="false" /> + <mkdir dir="${javadoc.root.path}/gluegen" /> + + <copy todir="${javadoc.root.path}/gluegen" failonerror="false"> + <fileset dir="${gluegen-javadoc.path}" includes="**" /> + </copy> + </target> + + <target name="javadoc.init" depends="init"> + <!-- Link offline with relative URLs does not work. + Link online with relative URLs works, + so we have to assume the same relative online folder structure: + + http://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_dev/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_jogl_spec/ + http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc_nativewindow_spec/ + + gluegen rel URL: ../../gluegen/javadoc + + build structure: + + jogl.root: build/javadoc/jogl/<javadoc-type> (we have javadoc, javadoc_dev and javadoc_jogl_spec, ..) + gluegen.root: build/javadoc/gluegen/javadoc + + to match the online gluegen rel URL, we need: + + jogl.root: build/javadoc/gluegen/javadoc + --> + <property name="gluegen.link" value="../../gluegen/javadoc" /> + <property name="javadoc.root.path" value="${build}/javadoc" /> + <property name="javadoc.jogl.public.path" value="${javadoc.root.path}/jogl/javadoc" /> + <property name="javadoc.jogl.dev.path" value="${javadoc.root.path}/jogl/javadoc_dev" /> + <property name="javadoc.jogl.spec.path" value="${javadoc.root.path}/jogl/javadoc_jogl_spec" /> + <property name="javadoc.nw.spec.path" value="${javadoc.root.path}/jogl/javadoc_nativewindow_spec" /> + + <!-- if gluegen-javadoc.path is not set, check in default location, + ${gluegen.root}/${rootrel.build}/javadoc/gluegen --> + <available file="${gluegen.root}/${rootrel.build}/javadoc/gluegen/javadoc/package-list" + type="file" + property="gluegen-javadoc.path" + value="${gluegen.root}/${rootrel.build}/javadoc/gluegen" /> + <antcall target="javadoc.gluegen" inheritRefs="true" /> + + <property name="javadoc.overview" value="doc/jogl/spec-overview.html" /> + + <property name="javadoc.nw.overview" value="../src/nativewindow/classes/javax/media/nativewindow/package.html" /> + <property name="javadoc.nw.spec.windowtitle" value="NativeWindow API -- ${nativewindow_base_version} Specification" /> + <property name="javadoc.nw.spec.packagenames" value="javax.media.nativewindow.*" /> + + <property name="javadoc.spec.windowtitle" value="JOGL API -- JSR-231 ${jogl_base_version} Specification" /> + <property name="javadoc.spec.packagenames" value="javax.media.opengl.*" /> + + <property name="javadoc.windowtitle" value="JOGL, NativeWindow and NEWT APIs" /> + <property name="javadoc.packagenames" value="${javadoc.nw.spec.packagenames}, ${javadoc.spec.packagenames}, com.jogamp.opengl.*, com.jogamp.nativewindow.*, com.jogamp.newt.*" /> + + <property name="javadoc.dev.packagenames" value="${javadoc.packagenames}, com.jogamp.opengl.*, com.jogamp.nativewindow.*, com.jogamp.newt.*, com.jogamp.gluegen.opengl.*, com.jogamp.gluegen.runtime.opengl.*, jogamp.nativewindow.*, jogamp.opengl.*, jogamp.newt.*" /> + + <property name="java.excludes.javadoc.packagenames" value="jogamp.opengl.gl2.fixme.*,com.jogamp.audio.windows.waveout.TestSpatialization"/> + <property name="javadoc.bottom" value="Copyright 2010 JogAmp Community." /> + </target> + + <target name="javadoc.public" depends="javadoc.init"> + <!-- Build the general public Javadoc --> + <mkdir dir="${javadoc.jogl.public.path}" /> + <javadoc packagenames="${javadoc.packagenames}" + excludepackagenames="${java.excludes.javadoc.packagenames}" + sourcepath="${all.srcj.path};${all.genj.path}" + destdir="${javadoc.jogl.public.path}" + windowtitle="${javadoc.windowtitle}" + overview="${javadoc.overview}" + access="public" + source="${target.sourcelevel}" + maxmemory="1024m" + bottom="${javadoc.bottom}" > + <classpath refid="jogl_newt_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + <arg line="-J-Dnativetaglet.mapping=${basedir}/native-taglet.properties"/> + <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" /> + </javadoc> + </target> + + <target name="javadoc.jogl.spec" depends="javadoc.init,javadoc.nw.spec"> + <!-- Build the specification Javadoc --> + <mkdir dir="${javadoc.jogl.spec.path}" /> + <javadoc packagenames="${javadoc.spec.packagenames}" + excludepackagenames="${java.excludes.javadoc.packagenames}" + sourcepath="${all.srcj.path};${all.genj.path}" + destdir="${javadoc.jogl.spec.path}" + windowtitle="${javadoc.spec.windowtitle}" + overview="${javadoc.overview}" + access="public" + source="${target.sourcelevel}" + maxmemory="1024m" + bottom="${javadoc.bottom}" > + <classpath refid="jogl_newt_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + <arg line="-J-Dnativetaglet.mapping=${basedir}/native-taglet.properties"/> + <link offline="false" href="../javadoc_nativewindow_spec" /> + <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" /> + </javadoc> + </target> + + <target name="javadoc.dev" depends="javadoc.init"> + <!-- Build the internal developer Javadoc --> + <mkdir dir="${javadoc.jogl.dev.path}" /> + <javadoc packagenames="${javadoc.dev.packagenames}" + excludepackagenames="${java.excludes.javadoc.packagenames}" + sourcepath="${all.srcj.path};${all.genj.path}" + destdir="${javadoc.jogl.dev.path}" + windowtitle="${javadoc.windowtitle}" + overview="${javadoc.overview}" + access="protected" + source="${target.sourcelevel}" + maxmemory="1024m" + bottom="${javadoc.bottom}" > + <classpath refid="jogl_newt_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + <arg line="-J-Dnativetaglet.mapping=${basedir}/native-taglet.properties"/> + <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" /> + </javadoc> + </target> + + <target name="javadoc.nw.spec" depends="javadoc.init"> + <!-- Build the general Javadoc --> + <mkdir dir="${javadoc.nw.spec.path}" /> + <javadoc packagenames="${javadoc.nw.spec.packagenames}" + excludepackagenames="${java.excludes.javadoc.packagenames}" + sourcepath="${all.srcj.path};${all.genj.path}" + destdir="${javadoc.nw.spec.path}" + windowtitle="${javadoc.nw.spec.windowtitle}" + overview="${javadoc.nw.overview}" + access="public" + source="${target.sourcelevel}" + maxmemory="1024m" + bottom="${javadoc.bottom}" > + <classpath refid="jogl_newt_all.classpath"/> + <link offline="true" href="${javadoc.link}" packagelistLoc="${gluegen.root}/make/142-packages" /> + <link offline="false" href="${gluegen.link}" /> + <arg line="-J-Dnativetaglet.mapping=${basedir}/native-taglet.properties"/> + <taglet name="net.highteq.nativetaglet.NativeTaglet" path="${gluegen.jar}" /> + </javadoc> + </target> + + <target name="javadoc.zip" depends="javadoc.init"> + <archive.7z destfile="${build}/javadoc.7z" + basedir="${javadoc.root.path}" + includes="jogl/**" /> + </target> + +</project> + |