views:

186

answers:

1

I have a feature called foo, plugin called foo, and a single fragment foo.win32.x86.

I should be able to execute a call to eclipse.buildscript within an ant file on a feature and have it create a build.xml for the feature, plugin, and fragment; however, all I get is the build.xml for the feature and plugin.

The foo feature.xml:

<?xml version="1.0" encoding="UTF-8"?>
<feature
  id="foo"
  label="%featureName"
  version="0.0.0.200906251500"
  provider-name="%providerName"
  plugin="foo">
<install-handler/>

<description>
  %description
</description>

<copyright>
  %copyRight
</copyright>

<license url="license.html">
  %license
</license>

<plugin
     id="foo"
     download-size="0"
     install-size="0"
     version="0.0.0"/>

<plugin
     id="foo.win32.x86"
     os="win32"
     arch="x86"
     download-size="0"
     install-size="0"
     version="0.0.0"
     fragment="true"/>

</feature>

The foo plugin MANIFEST.MF file:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: foo; singleton:=true
Bundle-Version: 0.0.0.200906251500
Bundle-Vendor: %Plugin.providername
Bundle-Localization: plugin
Eclipse-LazyStart: true

The foo plugin.xml file:

<?xml version="1.0"?>
<?eclipse version="3.0"?>
<plugin>
   <!-- extension point stuff, blah -->
</plugin>

The foo.win32.x86 MANIFEST.MF file:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: foo.win32.x86
Bundle-Version: 0.0.0.200906251500
Bundle-Vendor: %Plugin.providername
Fragment-Host: foo;bundle-version="0.0.0.200906251500"
Bundle-Localization: plugin

Can anyone explain why I'm not getting the build.xml for the fragment?

If I force a call to eclipse.buildscript for the fragment it works fine, but doesn't this defeat the purpose?

Thanks

+1  A: 

You will need to specify the configInfo attribute. The value is an '&' separated list of "os,ws,arch" triplets. Scripts are only generated for platform specific fragments if they resolve for one of the configurations being built. If configInfo is not specified, the default will be "*,*,*" which means "platform independent" (which your foo.win32.x86 doesn't match).

eg:

 <eclipse.buildscript 
     elements="feature@foo"
     buildDirectory="${buildDirectory}"
     baseLocation="${baseLocation}"
     configInfo="win32,win32,x86" />

The help page is here, which may be helpful.

Andrew Niefer
Thanks a bunch... it works!
Michael