#tell pde.build not to generate start levels
org.eclipse.pde.build.append.startlevels=false

#      <import feature="org.eclipse.photran.intel"/>
requires.2.namespace=org.eclipse.equinox.p2.iu
requires.2.name=org.eclipse.photran.intel.feature.group
requires.2.optional=true
 
#      <import feature="org.eclipse.photran.xlf"/>
requires.3.namespace=org.eclipse.equinox.p2.iu
requires.3.name=org.eclipse.photran.xlf.feature.group
requires.3.optional=true

# Preload ptp update site / repository
instructions.configure=\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:0,location:http${#58}//download.eclipse.org/tools/ptp/updates/kepler,name:PTP);\
org.eclipse.equinox.p2.touchpoint.eclipse.addRepository(type:1,location:http${#58}//download.eclipse.org/tools/ptp/updates/kepler,name:PTP);

instructions.unconfigure=\
org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:0,location:http${#58}//download.eclipse.org/tools/ptp/updates/kepler);\
org.eclipse.equinox.p2.touchpoint.eclipse.removeRepository(type:1,location:http${#58}//download.eclipse.org/tools/ptp/updates/kepler);


properties.0.name = org.eclipse.equinox.p2.type.product
properties.0.value = true
