Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-releng-dev] Building ready-to-use RCP product with org.eclipse.releng.basebuilder


Michal,

Since 3.2 PDE build supports complete automation of product including config.ini file generation and branding.
The documentation on how to use this is available in the 3.2 rc5 help (PDE > Tasks > Building products)

PaScaL


Michał Tkacz <mehow@xxxxxxxxxx>
Sent by: platform-releng-dev-bounces@xxxxxxxxxxx

04/25/2006 03:40 PM

Please respond to
"Eclipse platform release engineering list."

To
platform-releng-dev@xxxxxxxxxxx
cc
Subject
[platform-releng-dev] Building ready-to-use RCP product with        org.eclipse.releng.basebuilder





Hi there,

First, forgive me for asking my question on this mailing list. I asked
it twice on the newsgroups but never get any helpful answer.
So, let me qoute one of these messages here:

I'm following an article at
http://www.eclipse.org/articles/Article-PDE-Automation/automation.html
as well as a document at
http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/org.eclipse.releng.basebuilder/readme.html?rev=HEAD&content-type=text/html
trying to setup an automated headless build for my RCP application.
Most of the steps are already working, but I have problems configuring
packaging step.

Although the documents don't describe product branding, it seems to be
supported with a "product" property, which I had properly set in my
build.properties. Unfortunately, during packaging I get
java.io.EOFException from eclipse.brand task located in generated
assemble.<my.feature>.win32.win32.x86.xml script. This seems to be
caused by the fact that eclipse.exe is not copied to the target
directory (set in root attribute of the task) before the task is executed.

I guess I could just copy it there in one of the customTargets.xml
targets, but I believe there's already some infrastructure for that in
the org.eclipse.releng.basebuilder itself.

I have attached both my build.properties and customTargets.xml.

I would appreciate any help on this.

Michał Tkacz


###############################################################################
# Copyright (c) 2003, 2006 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
#####################
# Parameters describing how and where to execute the build.
# Typical users need only update the following properties:
#    baseLocation - where things you are building against are installed
#    bootclasspath - The base jars to compile against (typicaly rt.jar)
#    configs - the list of {os, ws, arch} configurations to build.
#
# Of course any of the settings here can be overridden by spec'ing
# them on the command line (e.g., -DbaseLocation=d:/eclipse

############# PRODUCT/PACKAGING CONTROL #############
product=/foo.bar.client.core/foobar.product
runPackager=true

#Set the name of the archive that will result from the product build.
#archiveNamePrefix=

# The prefix that will be used in the generated archive.
archivePrefix=foobar

# The location underwhich all of the build output will be collected.
collectingFolder=${archivePrefix}

# The list of {os, ws, arch} configurations to build.  This
# value is a '&' separated list of ',' separate triples.  For example,
#     configs=win32,win32,x86 & linux,motif,x86
# By default the value is *,*,*
#configs=win32, win32, x86 & \
#    linux, gtk, ppc &\
# linux, gtk, x86 & \
#    linux, gtk, x86_64 & \
#    linux, motif, x86 & \
#    solaris, motif, sparc & \
#    solaris, gtk, sparc & \
#    aix, motif, ppc & \
#    hpux, motif, PA_RISC & \
#    macosx, carbon, ppc
configs=win32,win32,x86

# By default PDE creates one archive (result) per entry listed in the configs property.
# Setting this value to try will cause PDE to only create one output containing all
# artifacts for all the platforms listed in the configs property.
#groupConfigurations=true

#The format of the archive. By default a zip is created using antZip.
#The list can only contain the configuration for which the desired format is different than zip.
#archivesFormat=win32, win32, x86 - antZip& \
#    linux, gtk, ppc - antZip &\
#    linux, gtk, x86 - antZip& \
#    linux, gtk, x86_64 - antZip& \
# linux, motif, x86 - antZip& \
#    solaris, motif, sparc - antZip& \
#    solaris, gtk, sparc - antZip& \
#    aix, motif, ppc - antZip& \
#    hpux, motif, PA_RISC - antZip& \
#    macosx, carbon, ppc - antZip
   
#Set to true if you want the output to be ready for an update jar (no site.xml generated)
#outputUpdateJars = false

#Set to true for Jnlp generation
#codebase should be a URL that will be used as the root of all relative URLs in the output.
#generateJnlp=false
#jnlp.codebase="" url>
#jnlp.j2se=<j2se version>

#Set to true if you want to sign jars
#signJars=false
#sign.alias=<alias>
#sign.keystore=<keystore location>
#sign.storepass=<keystore password>

#Arguments to send to the zip executable
zipargs=

#Arguments to send to the tar executable
tarargs=

#Control the creation of a file containing the version included in each configuration - on by default
#generateVersionsLists=false

############## BUILD NAMING CONTROL ################
# The directory into which the build elements are fetched and where
# the build takes place.
buildDirectory=${user.home}/eclipse.build

# Type of build.  Used in naming the build output.  Typically this value is
# one of I, N, M, S, ...
buildType=I

# ID of the build.  Used in naming the build output.
buildId=TestBuild

# Label for the build.  Used in naming the build output
buildLabel=${buildType}.${buildId}

# Timestamp for the build.  Used in naming the build output
timestamp=007

#The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde.
#The value will only be applied to plugin or features indicating build.properties, qualifier = context
#forceContextQualifier=<the value for the qualifier>

#Enable / disable the generation of a suffix for the features that use .qualifier.
#The generated suffix is computed according to the content of the feature
#generateFeatureVersionSuffix=true

############# BASE CONTROL #############
# Settings for the base Eclipse components and Java class libraries
# against which you are building.
# Base location for anything the build needs to compile against.  For example,
# in most RCP app or a plug-in,  the baseLocation should be the location of a previously
# installed Eclipse against which the application or plug-in code will be compiled.

skipBase=true
base=C:/Foo Bar/builds
baseLocation=${base}/eclipse
#Os/Ws/Arch/nl of the eclipse specified by baseLocation
baseos=win32
basews=win32
basearch=x86

eclipseURL=<url for eclipse download site>
eclipseBuildId=<Id of Eclipse build to get>
eclipseBaseURL=${eclipseURL}/eclipse-platform-${eclipseBuildId}-win32.zip


############# MAP FILE CONTROL ################
# This section defines CVS tags to use when fetching the map files from the repository.
# If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml

#skipMaps=true
mapsRepo=:pserver:foo.bar:12345/home/mehow/cvs/foobar
mapsRoot=foo.bar.releng
mapsCheckoutTag=HEAD

#tagMaps=true
mapsTagTag=v${buildId}


############ REPOSITORY CONTROL ###############
# This section defines properties parameterizing the repositories where plugins, fragments
# bundles and features are being obtained from.

# The tags to use when fetching elements to build.
# By default thebuilder will use whatever is in the maps.
# This value takes the form of a comma separated list of repository identifier (like used in the map files) and the
# overriding value
# For example fetchTag=CVS=HEAD, SVN=v20050101
# fetchTag=HEAD
# skipFetch=true


############# JAVA COMPILER OPTIONS ##############
# The location of the Java jars to compile against.  Typically the rt.jar for your JDK/JRE
bootclasspath=${java.home}/lib/rt.jar

# specific JRE locations to compile against. These values are used to compile bundles specifying a
# Bundle-RequiredExecutionEnvironment. Uncomment and set values for environments that you support
#CDC-1.0/Foundation-1.0= /path/to/rt.jar
#CDC-1.1/Foundation-1.1=
#OSGi/Minimum-1.0=
#OSGi/Minimum-1.1=
#JRE-1.1=
#J2SE-1.2=
#J2SE-1.3=
#J2SE-1.4=
#J2SE-1.5=
#PersonalJava-1.1=
#PersonalJava-1.2=
#CDC-1.0/PersonalBasis-1.0=
#CDC-1.0/PersonalJava-1.0=
#CDC-1.1/PersonalBasis-1.1=
#CDC-1.1/PersonalJava-1.1=


# Whether or not to include debug info in the output jars
javacDebugInfo=true

# Whether or not to fail the build if there are compiler errors
javacFailOnError=true

# Enable or disable verbose mode of the compiler
javacVerbose=true

# Extra arguments for the compiler. These are specific to the java compiler being used.
#compilerArg=

# Default value for the version of the source code. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacSource in build.properties
javacSource=1.5

# Default value for the version of the byte code targeted. This value is used when compiling plug-ins that do not set the Bundle-RequiredExecutionEnvironment or set javacTarget in build.properties.
#javacTarget=1.5
<project name="Build specific targets and properties" default="noDefault">

   <!-- ===================================================================== -->
   <!-- Run a given ${target} on all elements being built -->
   <!-- Add on <ant> task for each top level element being built. -->
   <!-- ===================================================================== -->
   <target name="allElements">
       <ant antfile="${genericTargets}" target="${target}" >
           <property name="type" value="feature" />
           <property name="id" value="foo.bar.client" />
       </ant>
   </target>
   
   <!-- ===================================================================== -->
   <!-- Targets to assemble the built elements for particular configurations  -->
   <!-- These generally call the generated assemble scripts (named in -->
   <!-- ${assembleScriptName}) but may also add pre and post processing -->
   <!-- Add one target for each root element and each configuration -->
   <!-- ===================================================================== -->
   
   <target name="assemble.foo.bar.client.win32.win32.x86">
       <property name="archiveName" value="foo-bar-${buildId}.zip"/>
       <ant antfile="${assembleScriptName}"/>
   </target>
   
   <!-- ===================================================================== -->
   <!-- ===================================================================== -->
   <target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
       <get src="" dest="${buildDirectory}/../temp-base.zip" />
       <unzip dest="${base}" overwrite="true" src="" />
   </target>

   <target name="checkLocalBase">
       <available file="${base}" property="skipBase" />
   </target>

   <!-- ===================================================================== -->
   <!-- Check out map files from correct repository -->
   <!-- Replace values for mapsCheckoutTag as desired. -->
   <!-- ===================================================================== -->
   <target name="getMapFiles" depends="checkLocalMaps" unless="skipMaps">
       <property name="mapsCheckoutTag" value="HEAD" />
       <cvs cvsroot="${mapsRepo}" package="${mapsRoot}" dest="${buildDirectory}/maps" tag="${mapsCheckoutTag}"/>
   </target>

   <target name="checkLocalMaps">
       <available property="skipMaps" file="${buildDirectory}/maps" />
   </target>

   <target name="tagMapFiles" if="tagMaps">
       <cvs dest="${buildDirectory}/maps/${mapsRoot}" command="tag ${mapsTagTag}" />
   </target>

   <!-- ===================================================================== -->

   <target name="clean" unless="noclean">
       <antcall target="allElements">
           <param name="target" value="cleanElement" />
       </antcall>
   </target>

   <target name="gatherLogs">
       <mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
       <antcall target="allElements">
           <param name="target" value="gatherLogs" />
       </antcall>
       <unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
           <fileset dir="${buildDirectory}/features">
               <include name="**/*.log.zip" />
           </fileset>
       </unzip>
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before setup -->
   <!-- ===================================================================== -->
   <target name="preSetup">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after setup but before starting the build proper -->
   <!-- ===================================================================== -->
   <target name="postSetup">
       <antcall target="getBaseComponents" />
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before fetching the build elements -->
   <!-- ===================================================================== -->
   <target name="preFetch">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after fetching the build elements -->
   <!-- ===================================================================== -->
   <target name="postFetch">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before generating the build scripts. -->
   <!-- ===================================================================== -->
   <target name="preGenerate">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after generating the build scripts. -->
   <!-- ===================================================================== -->
   <target name="postGenerate">
       <antcall target="clean" />
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before running the build.xmls for the elements being built. -->
   <!-- ===================================================================== -->
   <target name="preProcess">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after running the build.xmls for the elements being built. -->
   <!-- ===================================================================== -->
   <target name="postProcess">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before running assemble. -->
   <!-- ===================================================================== -->
   <target name="preAssemble">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after  running assemble. -->
   <!-- ===================================================================== -->
   <target name="postAssemble">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do before running package. -->
   <!-- ===================================================================== -->
   <target name="prePackage">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after  running package. -->
   <!-- ===================================================================== -->
   <target name="postPackage">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do after the build is done. -->
   <!-- ===================================================================== -->
   <target name="postBuild">
       <antcall target="gatherLogs" />
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do to test the build results -->
   <!-- ===================================================================== -->
   <target name="test">
   </target>

   <!-- ===================================================================== -->
   <!-- Steps to do to publish the build results -->
   <!-- ===================================================================== -->
   <target name="publish">
   </target>

   <!-- ===================================================================== -->
   <!-- Default target     -->
   <!-- ===================================================================== -->
   <target name="noDefault">
       <echo message="You must specify a target when invoking this file" />
   </target>

</project>
_______________________________________________
platform-releng-dev mailing list
platform-releng-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-releng-dev


Back to the top