I'm trying to build my eclipse (3.6) RCP application for different platforms (linux, win32 and mac). For that I need three target platforms and I also have to build them on the platforms I want to build them for. So I get three different builds.
开发者_开发技巧Is it possible to build a win32 release on a linux machine (or similar configurations) and is it possible to merge all the builds into one single one (since the only thing that changes afaik is the launcher and the deltapacks)?
For that I need three target platforms and I also have to build them on the platforms I want to build them for
This is not correct. You need a valid target for the platforms (install the delta-pack in your build-target is enough) you want to build but in the build.properties of PDE you can specify for which platforms you want to build, an example would be
configs = win32, win32, x86 & \
win32, win32, x86_64 & \
linux, gtk, x86 & \
linux, gtk, x86_64 & \
macosx, carbon, ppc &\
macosx, cocoa, x86
A build with this configuration would create 6 differents output artifacts.
and is it possible to merge all the builds into one single one
Although I don't understand what benefit of merging the different builds into one single build would be, this is not supported by PDE build. If you want to merge the build-output into one artifact you could try that for your own, but I doubt that this is possible. You have in your application.ini a reference to the platform-dependent fragment and p2 holds also platform-specific data in the configuration area. In addition your build-artifact (and also the packages for updating) would increase in size (which is from a technical perspective not relevant, but is a major disadvantage from a distribution- or maintaining-perspective).
HTH Tom
Regarding the idea of merging the builds, my strong recommendation is that you just don't. There are a lot of reasons for this, among them is that there are large portions of native code included in the different platform versions, and this will majorly bloat the size of the application. Additionally, the native launchers used by RCP to kick off the application will not play well together. I'd just bite the bullet and make different platform versions. You can always try to determine on your website which version the user needs, but RCP is NOT compile once, run anywhere.
精彩评论