Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [linux-distros-dev] an easy way to build eclipse plugins

Hi Ben,

I've tried your method with packaging a new version of the PyDev plugin,
it worked very well for me.

The only thing I had to change was adding a buildDirectory variable to
the java call.

Here is the full command:

# build the main pydev feature
java -cp %{eclipse_base}/startup.jar                   \
     -Duser.home=$homedir                              \
     org.eclipse.core.launcher.Main                    \
     -application org.eclipse.ant.core.antRunner       \
     -Dtype=feature                                    \
     -Did=org.python.pydev.feature                     \
     -DbaseLocation=$SDK                               \
     -DsourceDirectory=$(pwd)                          \
     -DbuildDirectory=$(pwd)/build                     \
     -Dbuilder=
%{eclipse_base}/plugins/org.eclipse.pde.build_3.1.2/templates/package-build  \
     -f
%{eclipse_base}/plugins/org.eclipse.pde.build_3.1.2/scripts/build.xml


Thanks,
Igor

On Wed, 2006-05-24 at 12:26 -0400, Ben Konrath wrote:
> Hi, 
> 
> I cooked up a method for building Eclipse features or plugins in a
> relatively easy way. We're currently using this build method in RHEL and
> I'd like to move it over to Fedora. Before I do that, I wanted to get
> comments from everybody here. 
> 
> The build method uses a set of generic releng or builder scripts that
> builds a feature or plugin from a source archive which has been created
> with a cvs checkout or has been exported by eclipse. I whipped up a
> little page explaining how to export an appropriate source archive:
> 
> http://people.redhat.com/bkonrath/eclipse/exporting-buildable-source-archives.html
> 
> This is probably something that should be put on the wiki if everybody
> agrees this build method is a good one to standardize on.
> 
> Attached is a patch to add these generic releng scripts to the templates
> directory of pde.build. I called this build method package-build. If
> we're all in agreement on this, we should request this patch be added to
> pde.build.
> 
> Here's a quick overview of how this build method works works:
> 
> * The source is unpacked.
> * Use the copy-platform script to setup a fake SDK root dir. (This is 
>   needed because pde.build doesn't support building a feature if the 
>   feature is already installed. Without it, it would not be possible to 
>   build plugins of the same version more than once in a given build 
>   root. IMHO this is a bug in pde.build and I may try to fix it so we 
>   can get rid of this.)
> * Call the builder with a line like this:
> 
> java -cp %{eclipse_base}/startup.jar                   \
>      -Duser.home=$homedir                              \
>      org.eclipse.core.launcher.Main                    \
>      -application org.eclipse.ant.core.antRunner       \
>      -Dtype=feature                                    \
>      -Did=net.sourceforge.phpeclipse                   \
>      -DsourceDirectory=$(pwd)                          \
>      -DbaseLocation=$SDK                               \
>      -Dbuilder=%{eclipse_base}/plugins/org.eclipse.pde.build_3.1.2/templates/package-build  \
>      -f %{eclipse_base}/plugins/org.eclipse.pde.build_3.1.2/scripts/build.xml
> 
>   All that really has to be set is the id and the type. The rest is a 
>   template.
> * The builder will then call a shell script to create a 'plugins' and 
>   'features' directory and will add appropriate symlinks to the plugins 
>   and features inside these directories. This step just makes the 
>   sources look as though they have been checked out by the fetch stage 
>   of the releng process.   
> * The build then proceeds through a normal releng build expect for the 
>   small hack needed to get the assemble target called for an id 
>   that has been defined on the command line. Details are in the 
>   customTargets.xml in the patch if you're interested
> 
> This build method makes it possible to create an application to generate
> templates for rpms. I don't know details of how the Debian rules and
> Gentoo ebuilds work, but I imagine it would be possible to make backends
> for this app that would work for rpm, deb and ebuilds. Thoughts?
> 
> We are currently using this package build stuff for a few plugins that
> we will be shipping in RHEL. I'm attaching the PHPeclipse spec as a
> complete example. Note that the interaction between PHPeclipse and
> apache/mysql is not setup in this specfile because PHPeclispe uses XAMPP
> instead of the system software. When I have time, I'm going to write a
> fragment or two to address these short coming and then will put
> PHPeclipse into Fedora Extras. I've also attached the script I used to
> generate the PHPeclipse source archive - upstream didn't seem to
> interested in providing such an archive. If anybody wants an srpm of
> this version of PHPeclipse, let me know.
> 
> I guess that all I have to say for now. Any comments or suggestions
> would be appreciated.
> 
> Cheers, Ben
> _______________________________________________
> linux-distros-dev mailing list
> linux-distros-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/linux-distros-dev



Back to the top