|
Introduction of new properties in the build.properties file of feature
|
When building an eclipse based product from features, it is now possible to copy files or directories to the eclipse directory. This is achieved thanks to the following properties:
root=a comma separated list of files and directories
To refer to a file prefix the name with "file:", to refer to a directory, simply list the name.
It is also possible to set permissions on those root files:
root.permissions.XXX=a comma separated list of files and directories
where XXX is a unix chmod style permission description.
It is also possible to copy files and apply permissions on a configuration basis
root.configName=
root.configName.permissions.XXX=
where configName is a doted description of the platform (os.ws.arch).
Here an example for org.eclipse.platform
root=eclipse
root.macosx.carbon.ppc=macosx.carbon,../../plugins/platform-launcher/bin/macosx
root.macosx.carbon.ppc.link=Eclipse.app/Contents/MacOS/eclipse,eclipse
root.macosx.carbon.ppc.permissions.755=Eclipse.app/Contents/MacOS/eclipse
It is also possible to trigger the generation of source features and plugins
generate.feature@nameOfTheFeatureToGenerate=featureName, plugin@XXXX
generate a feature called 'nameOfTheFeatureToGenerate' from the plugins contained in the feature called 'featureName' and also include the plugin xxxx
Example : generate.feature@org.eclipse.jdt.source=org.eclipse.jdt, plugin@org.eclipse.jdt.doc.isv
|
|
Introduction of new properties in the build.properties file of plugin
|
For every jar file that is being built three variables can be provided. Note that "{jarname}" describes the name of the jar file including its path relative to the project.
- a variable named "source.{jarname}" describing where the source of the jar
can be found. The expected value is a path relative to the project (for example "src/").
- a variable named "output.{jarname}" describing where the bin of the jar can
be found. The expected value is a path relative to the project (for
example "bin/").
- a variable named "extra.{jarname}" describing the list of jars required to
compile this jar. The expected values are paths relative to the place where the
project is.
A short way to explain the content of those variables is to see them as variables used for the compilation:
- the source indicates where to find the source of the jar.
- the extra gives extra values to be put at the end of the classpath when we
are compiling the source.
- the output indicates where the content of a compiled version of the library
exists (this is typically used in the classpath of plugins requiring this jar).
|
|
Setting permissions on a per basis plugin
|
During a build it is now possible to set permissions and create links on a per plugin basis. Those information are listed in a file called permissions.properties provided at the root of the plugin (as a sibling of build.properties). The format of the file is as follow:
permissions.executable=list of files
permissions.link=list of files
permissions.XXX=list of files
|
|
Enhancement of the map file
|
The map file entries have been enhanced to allow plugins and features to be located anywhere in a cvs repository.
feature|fragment|plugin@elementID=versionName,CVSRepository,passwordInfo,pathInTheRepository (no starting slash)
example:
feature@com.foo=v101,:pserver:anon@foo.com:/home/cvs,,a/b/foo-feature
|
|
New properties introduced to control the compilation of plugins
|
javacSource: Give the format of the source code. Legal values are 1.3 and 1.4.
javacTarget: Generate class files for specific VM version.
javacFailOnError: Indicates whether the build will continue even if there are compilation errors.
javacDebugInfo: Indicates whether source should be compiled with debug information.
javacVerbose: Asks the compiler for verbose output.
bootclasspath: Set the classpath of the jdk you compile against.
All those properties are surfaced in the pde ui.
|
|
Reusable automated build process
|
The new pde build process ease the creation of automated build process by providing a set of template scripts and a general script. Those scripts and templates are used to build the 3.0 build of eclipse (see the project org.eclipse.releng.eclipsebuilder). A small example of their usage is also provided in the feature folder of the plugin.
|
|
Filling version numbers of features
|
In the features, version numbers for nested features and plugins can now be specified to 0.0.0 and will be filled in by the appropriate values by the pde build engine.
|