Re: Embedding "linked-source" frameworks

From: Anjo Krank (kran..ogicunited.com)
Date: Wed Jan 10 2007 - 13:29:13 EST

  • Next message: Guido Neitzer: "Re: Embedding "linked-source" frameworks"

    Am 10.01.2007 um 18:48 schrieb Kieran Kelleher:

    > Any pointers on what kind of changes I would need to make to
    > build.xml to make this happen?

    You could build to ~/Roots and use the frameworks from there.

    What I do is to check out Wonder as a directory:

    cd; mkdir Wonder; cvs -q -d:ext:anj..onder.cvs.sourceforge.net:/
    cvsroot/wonder checkout Wonder

    then import the frameworks from there into the workspace, leaving
    them where they are. Now to build you can simply do

    cd ~/Wonder; ant frameworks

    You should be able to do this from the build.xml of your app,
    probably by adding an extra target for this you can call at your
    convenience.

    Now you change the build.xml to use these frameworks, set their embed
    = true and you should be set. Alternately, and when your project has
    the same structure as the Wonder apps or frameworks, you can provide
    a MyApp/build.projerties with all the options outlined in ~/Wonder/
    Build/build/generic.xml in your top-level build file. One of mine
    looks like the one below. Note that this looks like a lot work, but
    it builds two frameworks and one app in one go. The individual
    project's build.xml is never used.

    The whole process could be more configurable and indeed I've been
    toying with a special WonderApplication/WonderFramework task for
    woproject that would just take all the info either from the eclipse
    classpath or some props file. But it's not *that* much work and I
    change or edit these on a once-a-year basis only...

    Cheers, Anjo

    macbook:~/extras/webobjects ak$ cat build.xml
    <project name="PressRoom" default="all" basedir=".">

         <property name="extras.root" value="${basedir}" />
         <property name="wonder.root" value="${user.home}/Wonder" />
         <property name="wo.localroot" value="/" />

         <!-- PRApp -->
         <target name="PRApp.all">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.all" >
                 <property name="project.name" value="PRApp" />
                 <property name="project.type" value="application" />
                 <property name="project.principal.class"
    value="ag.kcmedia.Application" />
                 <property name="project.dir" value="${extras.root}/
    edelman/PRApp" />
                 <property name="use.webobjects.d2w" value="true" />
                 <property name="use.wonder.core" value="true" />
                 <property name="use.wonder.d2w" value="true" />
                 <property name="use.wonder.logic" value="true" />
                 <property name="use.wonder.mail" value="true" />
                 <!--property name="use.wonder.changenotification"
    value="true" /-->
                 <property name="use.mysql" value="true" />
                 <property name="use.additional.framework.1" value="PR*" />
                 <property name="use.additional.framework.2"
    value="ERExtras.framework" />
             </ant>
         </target>
         <target name="PRApp.clean">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.clean" >
                 <property name="project.name" value="PRApp" />
                 <property name="project.type" value="application" />
             </ant>
         </target>

         <!-- PRLogic -->
         <target name="PRLogic.all">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.all" >
                 <property name="project.name" value="PRLogic" />
                 <property name="project.type" value="framework" />
                 <property name="project.principal.class"
    value="ag.kcmedia.PRLogic" />
                 <property name="project.dir" value="${extras.root}/
    edelman/PRLogic" />
                 <property name="use.wonder.mail" value="true" />
                 <property name="use.webobjects.d2w" value="true" />
                 <property name="use.wonder.core" value="true" />
                 <property name="use.wonder.d2w" value="true" />
                 <property name="use.wonder.logic" value="true" />
                 <property name="use.additional.framework.1"
    value="PR*.framework" />
                 <property name="use.additional.framework.2"
    value="ERExtras*.framework" />
             </ant>
         </target>
         <target name="PRLogic.clean">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.clean" >
                 <property name="project.name" value="PRLogic" />
                 <property name="project.type" value="framework" />
             </ant>
         </target>

         <!-- PRLook -->
         <target name="PRLook.all">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.all" >
                 <property name="project.name" value="PRLook" />
                 <property name="project.type" value="framework" />
                 <property name="project.principal.class" value="" />
                 <property name="project.dir" value="${extras.root}/
    edelman/PRLook" />
                 <property name="use.webobjects.d2w" value="true" />
                 <property name="use.wonder.core" value="true" />
                 <property name="use.wonder.d2w" value="true" />
                 <property name="use.wonder.logic" value="true" />
                 <property name="use.additional.framework.1"
    value="PR*.framework" />
                 <property name="use.additional.framework.2"
    value="ERExtras.framework" />
             </ant>
         </target>
         <target name="PRLook.clean">
             <ant antFile="${wonder.root}/Build/build/generic.xml"
    target="generic.clean" >
                 <property name="project.name" value="PRLook" />
                 <property name="project.type" value="framework" />
             </ant>
         </target>

         <target name="edelman.all" depends="ERExtras.all, PRLogic.all,
    PRLook.all, PRApp.all" />
         <target name="edelman.clean" depends="ERExtras.clean,
    PRLogic.clean, PRLook.clean, PRApp.clean" />
         <target name="edelman." depends="edelman.all" />
         <target name="PRLook." depends="PRLook.all" />
         <target name="PRApp." depends="PRApp.all" />

         <target name="all" depends="edelman.all" />
         <target name="clean" depends="edelman.clean" />
    </project>



    This archive was generated by hypermail 2.0.0 : Wed Jan 10 2007 - 13:29:25 EST