NAME
jh_compilefeatures - Compiles eclipse features using pde-build.
SYNOPSIS
jh_compilefeatures [debhelperoptions] [options] [--pde-build-dir=dir]
[feature[...]]
DESCRIPTION
jh_compilefeatures is a javahelper program that handles compiling
features using pde-build. These features can be specified either in
debian/eclipse.features or via command-line.
jh_compilefeatures uses debhelper behind the scenes and are therefore
subject to the compat level (e.g. when parsing the eclipse.features
file).
When specifying the dependencies for a feature, jh_compilefeatures will
see if this feature has just been compiled and will use the dependency
if it is among the results. This can be used together with
debian/eclipse.features.
Dependencies are always resolved by first checking if it is a recently
built feature and if not, then the system installed eclipse's dropins
folders will be checked.
Currently jh_compilefeatures do not clean up between builds, which
means the dependencies for previous builds are present for the current
build. Nevertheless, do not rely on this, as this behavior is subject
to change.
Note: jh_compilefeatures will not rearrange the build order for you in
order to do this.
Note: that jh_compilefeatures will not error out if it cannot find a
missing dependency. This is due to the underlying builder being unable
to detect this.
FILES
debian/eclipse.features
List the eclipse features to compile and their dependencies. The
first item on the line is the feature to compile and the following
items are considered dependencies.
A dependency can either be a dropins folder or a previous built
feature. jh_compilefeatures will find it as long as it is
installed in the system eclipse's dropins folder or it has just
been compiled.
OPTIONS
--pde-build-dir=dir
Specifies the directory from where pde-build is to be run. Defauls
to "debian/.eclipse_build".
--feature-deps=deps
A space separated list of dependencies. These dependencies will be
used to compile all features passed by command-line. Features read
from debian/eclipse.features are unaffected by this.
--build-opts=args
Pass args to the underlying builder. These options are passed to
all features built.
This defaults to "-DjavacTarget=1.5 -DjavacSource=1.5" if not set.
This can be disabled by passing the empty string.
--jvm-args=args
Pass args to the JVM. These options are passed to all features
built.
--orbit-dir=dir
Specifies where the Orbit dependencies can be found. This is only
needed if the orbit dir is in an unusual location.
--pde-build=cmd
Use a non-standard pde-build command to compile the features.
--pde-args=args
Passes args directly to pde-build. Note, jh_compilefeatures have
specialised options for some of pde-build options and these should
be used whenever possible.
These options are passed to all features built.
--ignore-java-home
Skip the check of JAVA_HOME. Since the underlying builder uses ant
(and therefore java), the build should ensure it always uses the
expected java implementation.
Use this if you (for whatever reason) need to declare the specific
java implementation without being able to use JAVA_HOME.
Note: You still have to tell the underlying builder which java to
use.
EXAMPLE
A sample debian/eclipse.features
org.eclipse.tm.terminal emf
org.eclipse.rse.sdk
org.eclipse.tm.terminal depends on "emf", which is expected to be found
in eclipse's dropins folder. org.eclipse.rse.sdk on the other hand has
no dependencies beyond the eclipse platform.
If needed you can also specify a previously built feature as a
dependency:
org.eclipse.some.feature
org.eclipse.another.feature org.eclipse.some.feature rse
Here org.eclipse.another.feature depends org.eclipse.some.feature,
which was just built and also rse, which is expected to be in system
installed eclipse's dropins.
SEE ALSO
debhelper(7)
This program is a part of javahelper and uses debhelper as backend.
There are also tutorials in /usr/share/doc/javahelper.
AUTHOR
Niels Thykier <niels@thykier.net>
COPYRIGHT AND LICENSE
Copyright 2010 by Niels Thykier
This tool is free software; you may redistribute it and/or modify it
under the terms of GNU GPL 2.