Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] A bit disappointing dependency...


The platform itself would be dead easy to build using Ant.  It depends only on a very minimal set of Java class libs and has a few source dirs.

Below is the Ant build file generated by PDE. For a more limited build, various of these targets can be simplified or eliminated.

Jeff

<?xml version="1.0" encoding="UTF-8"?>
<project name="org.eclipse.osgi" default="build.jars" basedir=".">

        <property name="basews" value="${ws}"/>
        <property name="baseos" value="${os}"/>
        <property name="basearch" value="${arch}"/>
        <property name="basenl" value="${nl}"/>

        <!-- Compiler settings. -->
        <property name="javacFailOnError" value="false"/>
        <property name="javacDebugInfo" value="on"/>
        <property name="javacVerbose" value="true"/>
        <property name="javacSource" value="1.3"/>
        <property name="javacTarget" value="1.2"/>
        <property name="compilerArg" value=""/>
        <path id="path_bootclasspath">
                <fileset dir="${java.home}/lib">
                        <include name="*.jar"/>
                </fileset>
        </path>
        <property name="bootclasspath" refid="path_bootclasspath"/>

        <target name="init" depends="properties">
                <condition property="pluginTemp" value="${buildTempFolder}/plugins">
                        <isset property="buildTempFolder"/>
                </condition>
                <property name="pluginTemp" value="${basedir}"/>
                <condition property="build.result.folder" value="${pluginTemp}/org.eclipse.osgi">
                        <isset property="buildTempFolder"/>
                </condition>
                <property name="build.result.folder" value="${basedir}"/>
                <property name="temp.folder" value="${basedir}/temp.folder"/>
                <property name="plugin.destination" value="${basedir}"/>
        </target>

        <target name="properties" if="eclipse.running">
                <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>

        </target>

        <target name="build.update.jar" depends="init" description="Build the plug-in: org.eclipse.osgi for an update site.">
                <delete dir="${temp.folder}"/>
                <mkdir dir="${temp.folder}"/>
                <antcall target="build.jars"/>
                <antcall target="gather.bin.parts">
                        <param name="destination.temp.folder" value="${temp.folder}/"/>
                </antcall>
                <zip destfile="${plugin.destination}/org.eclipse.osgi_3.1.0.jar" basedir="${temp.folder}/org.eclipse.osgi_3.1.0" filesonly="false" whenempty="skip" update="false"/>
                <delete dir="${temp.folder}"/>
        </target>

        <target name="@dot" depends="init" unless="@dot" description="Create jar: org.eclipse.osgi @dot.">
                <delete dir="${temp.folder}/@dot.bin"/>
                <mkdir dir="${temp.folder}/@dot.bin"/>
                <!-- compile the source code -->
                <javac destdir="${temp.folder}/@dot.bin" failonerror="${javacFailOnError}" verbose="${javacVerbose}" debug="${javacDebugInfo}" includeAntRuntime="no" bootclasspath="${bootclasspath}" source="${javacSource}" target="${javacTarget}"                >
                        <compilerarg line="${compilerArg}"/>
                        <classpath>
                        </classpath>
                        <src path="osgi/src"                        />
                        <src path="core/adaptor/"                        />
                        <src path="core/framework/"                        />
                        <src path="resolver/src/"                        />
                        <src path="defaultAdaptor/src/"                        />
                        <src path="eclipseAdaptor/src/"                        />
                        <src path="console/src/"                        />
                        </javac>
                <!-- Copy necessary resources -->
                <copy todir="${temp.folder}/@dot.bin" failonerror="true" overwrite="false">
                        <fileset dir="osgi/src" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="core/adaptor/" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="core/framework/" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="resolver/src/" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="defaultAdaptor/src/" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="eclipseAdaptor/src/" excludes="**/*.java, **/package.htm*,null"                        />
                        <fileset dir="console/src/" excludes="**/*.java, **/package.htm*,null"                        />
                </copy>
                <mkdir dir="${build.result.folder}"/>
                <copy todir="${build.result.folder}/@dot" failonerror="true" overwrite="false">
                        <fileset dir="${temp.folder}/@dot.bin"                        />
                </copy>
                <delete dir="${temp.folder}/@dot.bin"/>
        </target>

        <target name="src.zip" depends="init" unless="src.zip">
                <mkdir dir="${build.result.folder}"/>
                <zip destfile="${build.result.folder}/src.zip" filesonly="false" whenempty="skip" update="false">
                        <fileset dir="osgi/src" includes="**/*.java"                        />
                        <fileset dir="core/adaptor/" includes="**/*.java"                        />
                        <fileset dir="core/framework/" includes="**/*.java"                        />
                        <fileset dir="resolver/src/" includes="**/*.java"                        />
                        <fileset dir="defaultAdaptor/src/" includes="**/*.java"                        />
                        <fileset dir="eclipseAdaptor/src/" includes="**/*.java"                        />
                        <fileset dir="console/src/" includes="**/*.java"                        />
                </zip>
        </target>

        <target name="build.jars" depends="init" description="Build all the jars for the plug-in: org.eclipse.osgi.">
                <available property="@dot" file="${build.result.folder}/@dot"/>
                <antcall target="@dot"/>
        </target>

        <target name="build.sources" depends="init">
                <available property="src.zip" file="${build.result.folder}/src.zip"/>
                <antcall target="src.zip"/>
        </target>

        <target name="gather.bin.parts" depends="init" if="destination.temp.folder">
                <mkdir dir="${destination.temp.folder}/org.eclipse.osgi_3.1.0"/>
                <copy todir="${destination.temp.folder}/org.eclipse.osgi_3.1.0" failonerror="true" overwrite="false">
                        <fileset dir="${build.result.folder}/@dot" includes="**"                        />
                </copy>
                <copy todir="${destination.temp.folder}/org.eclipse.osgi_3.1.0" failonerror="true" overwrite="false">
                        <fileset dir="${basedir}" includes=".options,plugin.properties,plugin.xml,null,about.html,eclipse.properties,META-INF/,systembundle.properties,*.profile"                        />
                </copy>
        </target>

        <target name="build.zips" depends="init">
        </target>

        <target name="gather.sources" depends="init" if="destination.temp.folder">
                <mkdir dir="${destination.temp.folder}/org.eclipse.osgi_3.1.0"/>
                <copy file="${build.result.folder}/src.zip" todir="${destination.temp.folder}/org.eclipse.osgi_3.1.0" failonerror="false" overwrite="false"/>
                <copy todir="${destination.temp.folder}/org.eclipse.osgi_3.1.0" failonerror="false" overwrite="false">
                        <fileset dir="${basedir}" includes="about.html"                        />
                </copy>
        </target>

        <target name="gather.logs" depends="init" if="destination.temp.folder">
                <mkdir dir="${destination.temp.folder}/org.eclipse.osgi_3.1.0"/>
                <copy file="${temp.folder}/@dot.bin.log" todir="${destination.temp.folder}/org.eclipse.osgi_3.1.0" failonerror="false" overwrite="false"/>
        </target>

        <target name="clean" depends="init" description="Clean the plug-in: org.eclipse.osgi of all the zips, jars and logs created.">
                <delete dir="${build.result.folder}/@dot"/>
                <delete file="${build.result.folder}/src.zip"/>
                <delete file="${plugin.destination}/org.eclipse.osgi_3.1.0.jar"/>
                <delete file="${plugin.destination}/org.eclipse.osgi_3.1.0.zip"/>
                <delete dir="${temp.folder}"/>
        </target>

        <target name="refresh" depends="init" if="eclipse.running" description="Refresh this folder.">
                <eclipse.convertPath fileSystemPath="d:/bs/workspace/plugins/org.eclipse.osgi" property="resourcePath"/>
                <eclipse.refreshLocal resource="${resourcePath}" depth="infinite"/>
        </target>

        <target name="zip.plugin" depends="init" description="Create a zip containing all the elements for the plug-in: org.eclipse.osgi.">
                <delete dir="${temp.folder}"/>
                <mkdir dir="${temp.folder}"/>
                <antcall target="build.jars"/>
                <antcall target="build.sources"/>
                <antcall target="gather.bin.parts">
                        <param name="destination.temp.folder" value="${temp.folder}/"/>
                </antcall>
                <antcall target="gather.sources">
                        <param name="destination.temp.folder" value="${temp.folder}/"/>
                </antcall>
                <delete>
                        <fileset dir="${temp.folder}" includes="**/*.bin.log"                        />
                </delete>
                <zip destfile="${plugin.destination}/org.eclipse.osgi_3.1.0.zip" basedir="${temp.folder}" filesonly="true" whenempty="skip" update="false"/>
                <delete dir="${temp.folder}"/>
        </target>

</project>


Niclas Hedhman <niclas@xxxxxxxxxxx>
Sent by: equinox-dev-bounces@xxxxxxxxxxx

10/24/2005 11:18 AM

Please respond to
Equinox development mailing list

To
Equinox development mailing list <equinox-dev@xxxxxxxxxxx>
cc
Subject
Re: [equinox-dev] A bit disappointing dependency...





On Monday 24 October 2005 08:27, Jeff McAffer wrote:
> - you can write custom Ant scripts to do the build.  This will be
> reasonable for a small set of bundles low down in the dependency graph. As
> you try to build things higher and higher in the graph the classpath
> becomes very hard to manage.
>
> - There is some hope that the Maven2 folks will come up with a mechanism
> for building OSGi bundles.  If so, this would be useful/usable here.

> Make sense?

Hold on a second... I have no problems that Eclipse provide superior
plugin/bundle build tools, just like I don't feel I have problems building my
own bundles, using my own tools.

What I find 'irritating' is that the OSGi platform itself require such
advanced tooling. I don't generally have Eclipse downloaded, and find it
"amuzing" that [Product A]t0 has a dependency on [Product A]t-n.

Well, instead of complaining so much about, I'll dig in and see how hard this
could possibly be...


Cheers
Niclas
_______________________________________________
equinox-dev mailing list
equinox-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/equinox-dev


Back to the top