<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<!--
   WiX File describing the MSI for Ant
   
   XSD lives at http://wix.cvs.sourceforge.net/*checkout*/wix/wix2.0/src/wix/Xsd/wix.xsd
-->
<Wix xmlns='http://schemas.microsoft.com/wix/2003/01/wi'>

  <Product Name="Apache Ant $(var.version)"
    Id="61A421CE-D93F-478c-98C8-9C31FCE44C7A"
    Version="$(var.version)" Language="1033"
    Manufacturer="Apache Software Foundation">

    <Package Id='????????-????-????-????-????????????'
      Keywords='Installer' Languages="1033"
      Description="Apache Ant $(var.version) installer"
      Comments='Apache Ant is a Java based build tool'
      Manufacturer='Apache Software Foundation'
      InstallerVersion='200'
      Compressed='yes'/>

    <Media Id='1' Cabinet='ant.cab' EmbedCab='yes' />

    <Directory Id='TARGETDIR' Name='SourceDir'>
      <Directory Id='ProgramFilesFolder' Name='PFiles'>
        <Directory Id='ASF' Name='Apache'
          LongName="Apache Software Foundation">
          <Directory Id='INSTALLDIR' Name='Ant'
            LongName='Ant $(var.version)'>

            <Component Id="licenses"
              Guid="09346EB3-08D2-4a7f-9D64-47E4E414FE65">
              <File DiskId="1" Id="fetch.xml" Name="fetch.xml"
                Vital="yes" src="$(var.dist.dir)/fetch.xml"/>
              <File DiskId="1" Id="INSTALL" Name="INSTALL"
                Vital="yes" src="$(var.dist.dir)/INSTALL"/>
              <File DiskId="1" Id="KEYS" Name="KEYS"
                Vital="yes" src="$(var.dist.dir)/KEYS"/>
              <File DiskId="1" Id="LICENSE" Name="LICENSE"
                Vital="yes" src="$(var.dist.dir)/LICENSE"/>
              <File DiskId="1" Id="LICENSE.dom" Name="LICENSE.dom"
                Vital="yes" src="$(var.dist.dir)/LICENSE.dom"/>
              <File DiskId="1" Id="LICENSE.sax" Name="LICENSE.sax"
                Vital="yes" src="$(var.dist.dir)/LICENSE.sax"/>
              <File DiskId="1" Id="LICENSE.xer" Name="LICENSE.xer"
                LongName="LICENSE.xerces"
                Vital="yes" src="$(var.dist.dir)/LICENSE.xerces"/>
              <File DiskId="1" Id="NOTICE" Name="NOTICE"
                Vital="yes" src="$(var.dist.dir)/NOTICE"/>
              <File DiskId="1" Id="README" Name="README"
                Vital="yes" src="$(var.dist.dir)/README"/>
              <File DiskId="1" Id="WHATSNEW" Name="WHATSNEW"
                Vital="yes" src="$(var.dist.dir)/WHATSNEW"/>
            </Component>
          </Directory>
        </Directory>
      </Directory>

      <Directory Id="ProgramMenuFolder" Name="PMenu" LongName="Programs">
        <Directory Id="ProgramMenuDir" Name='Ant'
          LongName="Apache Ant $(var.version)" />
      </Directory>

    </Directory>  
        
    <Feature Id="Complete" Level="1">
      <ComponentRef Id="manualIndex"/>
      <ComponentRef Id="licenses"/>
      <ComponentRef Id="component0"/>
      <ComponentRef Id="component1"/>
      <ComponentRef Id="component2"/>
      <ComponentRef Id="component3"/>
      <ComponentRef Id="component4"/>
      <ComponentRef Id="component5"/>
      <ComponentRef Id="component6"/>
      <ComponentRef Id="component7"/>
      <ComponentRef Id="component8"/>
      <ComponentRef Id="component9"/>
      <ComponentRef Id="component86"/>
      <ComponentRef Id="component87"/>
      <ComponentRef Id="component88"/>
      <ComponentRef Id="component89"/>
      <ComponentRef Id="component90"/>
      <ComponentRef Id="component91"/>
      <ComponentRef Id="component92"/>
      <ComponentRef Id="component93"/>
      <ComponentRef Id="component94"/>
      <ComponentRef Id="component95"/>
    </Feature>
  </Product>

  <Fragment>
    <DirectoryRef Id="manual">
      <Component Id="manualIndex"
        Guid="3125AB68-1388-49aa-89F8-9F5B80EBE64B">
        <File DiskId="1" Id="antManualIndex"
          Name="INDEX_1.HTM" LongName="index.html"
          Vital="yes" src="$(var.dist.dir)/docs/manual/index.html">
          <Shortcut Id="startmenuAntDocs"
            Directory="ProgramMenuDir" Name="Manual" />
        </File>
      </Component>
    </DirectoryRef>
  </Fragment>

</Wix>
