<?xml version="1.0" encoding="UTF-8"?>
<?pde version="3.5"?>

<product name="Lua Development Tools Product" uid="org.eclipse.koneki.ldt.product-product" id="org.eclipse.koneki.ldt.branding.product" application="org.eclipse.ui.ide.workbench" version="1.1.0.qualifier" useFeatures="true" includeLaunchers="true">

   <aboutInfo>
      <image path="/org.eclipse.koneki.ldt.branding/ldt_about.png"/>
      <text>
         Lua Development Tools

© Copyright Eclipse contributors and others 2000, 2012.  All rights reserved.

This product includes software developed by the Apache Software Foundation http://www.apache.org/

Visit http://www.eclipse.org/koneki/ldt for more information.
      </text>
   </aboutInfo>

   <configIni use="default">
   </configIni>

   <launcherArgs>
      <programArgs>-name
&quot;Lua Development Tools&quot;
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile</programArgs>
      <programArgsLin>-startup
plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar</programArgsLin>
      <programArgsMac>-startup
../../../plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar</programArgsMac>
      <programArgsWin>-startup
plugins\org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar</programArgsWin>
      <vmArgs>-XX:PermSize=512M -XX:MaxPermSize=512M -Xms40m -Xmx512m</vmArgs>
      <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts</vmArgsMac>
   </launcherArgs>

   <windowImages i16="/org.eclipse.koneki.ldt.branding/icons/LDT_16.png" i32="/org.eclipse.koneki.ldt.branding/icons/LDT_32.png" i64="/org.eclipse.koneki.ldt.branding/icons/LDT_64.png" i128="/org.eclipse.koneki.ldt.branding/icons/LDT_128.png"/>

   <splash
      location="org.eclipse.koneki.ldt.branding"
      startupProgressRect="3,281,493,14"
      startupMessageRect="7,260,350,20"
      startupForegroundColor="D4BAA9" />
   <launcher name="LuaDevelopmentTools">
      <linux icon="../../../../plugins/org.eclipse.koneki.ldt.branding/icons/ldt.xpm"/>
      <macosx icon="../../../../plugins/org.eclipse.koneki.ldt.branding/icons/ldt.icns"/>
      <solaris/>
      <win useIco="true">
         <ico path="../../../../plugins/org.eclipse.koneki.ldt.branding/icons/ldt.ico"/>
         <bmp/>
      </win>
   </launcher>

   <vm>
   </vm>

   <plugins>
   </plugins>

   <features>
      <feature id="org.eclipse.koneki.ldt.product" version="1.1.0.qualifier"/>
   </features>

   <configurations>
      <plugin id="org.eclipse.core.runtime" autoStart="true" startLevel="4" />
      <plugin id="org.eclipse.equinox.common" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.ds" autoStart="true" startLevel="2" />
      <plugin id="org.eclipse.equinox.p2.reconciler.dropins" autoStart="true" startLevel="4" />
      <plugin id="org.eclipse.equinox.simpleconfigurator" autoStart="true" startLevel="1" />
      <plugin id="org.eclipse.update.configurator" autoStart="true" startLevel="4" />
      <property name="org.eclipse.update.reconcile" value="false" />
   </configurations>

</product>
