view deploy/win32/easyhg.wxs @ 692:a74515f1c6e8

Inching forward with win32 packaging
author Chris Cannam
date Mon, 10 Dec 2018 14:45:17 +0000
parents bfafe078df9a
children b939bdac0643
line wrap: on
line source
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <Product
      Name="EasyMercurial" 
      Id="*"
      Language="1033"
      Codepage="1252" 
      Version="1.4.0" 
      UpgradeCode="B82DFDA9-B9DE-49BC-93E5-0B96F9DEB04B"
      Manufacturer="Queen Mary, University of London">
    
    <Package
        Id="*"
        Keywords="Installer"
        Description="EasyMercurial Installer" 
        Comments="Copyright (c) 2012-2018 Queen Mary, University of London and others." 
        Manufacturer="Queen Mary, University of London" 
        InstallerVersion="100" 
        Languages="1033" 
        Compressed="yes" 
        SummaryCodepage="1252"/>

    <MajorUpgrade DowngradeErrorMessage="A later version of EasyMercurial is already installed. Setup will now exit."/>

    <Media Id="1" Cabinet="easyhg.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
    <Property Id="DiskPrompt" Value="EasyMercurial Installation [1]"/>

    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder" Name="PFiles">
        <Directory Id="INSTALLDIR" Name="EasyMercurial">
            
            <Component
                Id="MainExecutable"
                Guid="DC128BA9-25A8-431E-8A88-7E0445E850B9">

              <File
                  Id="EasyHg"
                  Name="EasyMercurial.exe"
                  DiskId="1"
                  Source="EasyMercurial.exe"
                  KeyPath="yes">

                <Shortcut
                    Id="EasyHgStartEntry"
                    Directory="ProgramMenuDir"
                    Name="EasyMercurial"
                    WorkingDirectory="INSTALLDIR"
                    Icon="easyhg.ico"
                    IconIndex="0"
                    Advertise="yes"/>

                <Shortcut
                    Id="EasyHgDesktop"
                    Directory="DesktopFolder"
                    Name="EasyMercurial"
                    WorkingDirectory="INSTALLDIR"
                    Icon="easyhg.ico"
                    IconIndex="0"
                    Advertise="yes"/>
              </File>

              <File
                  Id="COPYING"
                  Name="COPYING"
                  DiskId="1"
                  Source="..\..\COPYING"/>

              <File
                  Id="easyhg.ico"
                  Name="easyhg.ico"
                  DiskId="1"
                  Source="..\..\easyhg.ico"/>
            </Component>

            <Component
                Id="HelperScripts"
                Guid="971EA788-347E-4CDE-9899-69EEBE117BDD">

              <File
                  Id="mergebat"
                  Name="easyhg-merge.bat"
                  DiskId="1"
                  Source="..\..\easyhg-merge.bat"
                  KeyPath="yes"/>
            </Component>		  

            <Component
                Id="VCLIBS140"
                Guid="2566C8F0-A2AD-40E9-A356-94E887CC1222">
              <File
                  Id="MSVCP140"
                  Name="msvcp140.dll"
                  DiskId="1"
                  Source="MSVCP140.DLL"
                  KeyPath="yes"/>
              <File
                  Id="CONCRT140"
                  Name="concrt140.dll"
                  DiskId="1"
                  Source="CONCRT140.DLL"/>
              <File
                  Id="VCCORLIB140"
                  Name="vccorlib140.dll"
                  DiskId="1"
                  Source="VCCORLIB140.DLL"/>
              <File
                  Id="VCRUNTIME140"
                  Name="vcruntime140.dll"
                  DiskId="1"
                  Source="VCRUNTIME140.DLL"/>
            </Component>

            <Component
                Id="VCLIBS90"
                Guid="dfa7bdd3-0976-4cde-b2cd-2ae280ad7c65">
              <File
                  Id="MSVCP90"
                  Name="msvcp90.dll"
                  DiskId="1"
                  Source="MSVCP90.DLL"
                  KeyPath="yes"/>
              <File
                  Id="MSVCM90"
                  Name="msvcm90.dll"
                  DiskId="1"
                  Source="MSVCM90.DLL"/>
              <File
                  Id="MSVCR90"
                  Name="msvcr90.dll"
                  DiskId="1"
                  Source="MSVCR90.DLL"/>
            </Component>
              
            <Component
                Id="Qt5"
                Guid="04F730AC-B361-45A2-B1CC-9CEB55256117">
              <File
                  Id="QtCore"
                  Name="Qt5Core.dll"
                  DiskId="1"
                  Source="Qt5Core.dll"
		  KeyPath="yes"/>
              <File
                  Id="QtGui"
                  Name="Qt5Gui.dll"
                  DiskId="1"
                  Source="Qt5Gui.dll"/>
              <File
                  Id="QtWidgets"
                  Name="Qt5Widgets.dll"
                  DiskId="1"
                  Source="Qt5Widgets.dll"/>
              <File
                  Id="QtNetwork"
                  Name="Qt5Network.dll"
                  DiskId="1"
                  Source="Qt5Network.dll"/>
              <File
                  Id="QtPrintSupport"
                  Name="Qt5PrintSupport.dll"
                  DiskId="1"
                  Source="Qt5PrintSupport.dll"/>
              <File
                  Id="qminimal"
                  Name="qminimal.dll"
                  DiskId="1"
                  Source="qminimal.dll"/>
              <File
                  Id="qwindows"
                  Name="qwindows.dll"
                  DiskId="1"
                  Source="qwindows.dll"/>
              <File
                  Id="qwindowsvistastyle"
                  Name="qwindowsvistastyle.dll"
                  DiskId="1"
                  Source="qwindowsvistastyle.dll"/>
            </Component>

            <Component
                Id="hgexec"
                Guid="5BBC4080-2EDF-4616-A8CB-F96B9C942C1A">
              <File
                  Id="hg"
                  Name="hg.exe"
                  DiskId="1"
                  Source="hg.exe"
                  KeyPath="yes"/>
              <File
                  Id="pydll"
                  Name="python27.dll"
                  DiskId="1"
                  Source="python27.dll"/>
            </Component>

            <Directory Id="HgLibs" Name="lib">
              <Component
                  Id="hglibs"
                  Guid="bb6ab2ba-1358-47d4-9457-eb4094605620">
                <File
                    Id="hglib"
                    Name="library.zip"
                    DiskId="1"
                    Source="lib\library.zip"/>
                <!--
                <File
                    Id="plink"
                    Name="TortoisePlink.exe"
                    DiskId="1"
                    Source="lib\TortoisePlink.exe"/>
                    -->
                <File
                    Id="ctypes"
                    Name="_ctypes.pyd"
                    DiskId="1"
                    Source="lib\_ctypes.pyd"/>
                <File
                    Id="elementtree"
                    Name="_elementtree.pyd"
                    DiskId="1"
                    Source="lib\_elementtree.pyd"/>
                <File
                    Id="hashlib"
                    Name="_hashlib.pyd"
                    DiskId="1"
                    Source="lib\_hashlib.pyd"/>
                <File
                    Id="socket"
                    Name="_socket.pyd"
                    DiskId="1"
                    Source="lib\_socket.pyd"/>
                <File
                    Id="ssl"
                    Name="_ssl.pyd"
                    DiskId="1"
                    Source="lib\_ssl.pyd"/>
                <File
                    Id="testcapi"
                    Name="_testcapi.pyd"
                    DiskId="1"
                    Source="lib\_testcapi.pyd"/>
                <File
                    Id="bz"
                    Name="bz2.pyd"
                    DiskId="1"
                    Source="lib\bz2.pyd"/>
                <File
                    Id="pywatchman"
                    Name="hgext.fsmonitor.pywatchman.bser.pyd"
                    DiskId="1"
                    Source="lib\hgext.fsmonitor.pywatchman.bser.pyd"/>
                <File
                    Id="mercurialbase"
                    Name="mercurial.cext.base85.pyd"
                    DiskId="1"
                    Source="lib\mercurial.cext.base85.pyd"/>
                <File
                    Id="mercurialbdiff"
                    Name="mercurial.cext.bdiff.pyd"
                    DiskId="1"
                    Source="lib\mercurial.cext.bdiff.pyd"/>
                <File
                    Id="mercurialmpatch"
                    Name="mercurial.cext.mpatch.pyd"
                    DiskId="1"
                    Source="lib\mercurial.cext.mpatch.pyd"/>
                <File
                    Id="mercurialosutil"
                    Name="mercurial.cext.osutil.pyd"
                    DiskId="1"
                    Source="lib\mercurial.cext.osutil.pyd"/>
                <File
                    Id="mercurialparsers"
                    Name="mercurial.cext.parsers.pyd"
                    DiskId="1"
                    Source="lib\mercurial.cext.parsers.pyd"/>
                <File
                    Id="mercurialzstd"
                    Name="mercurial.zstd.pyd"
                    DiskId="1"
                    Source="lib\mercurial.zstd.pyd"/>
                <File
                    Id="pyexpat"
                    Name="pyexpat.pyd"
                    DiskId="1"
                    Source="lib\pyexpat.pyd"/>
                <File
                    Id="select"
                    Name="select.pyd"
                    DiskId="1"
                    Source="lib\select.pyd"/>
                <File
                    Id="unicodedata"
                    Name="unicodedata.pyd"
                    DiskId="1"
                    Source="lib\unicodedata.pyd"/>
              </Component>
            </Directory>

            <Directory Id="PyQt" Name="PyQt5">
              <Component
                  Id="pyqtlibs"
                  Guid="0fc219f4-1493-402c-b740-50539eeb7762">
                <File
                    Id="pyqtinit"
                    Name="__init__.py"
                    DiskId="1"
                    Source="PyQt5\__init__.py"
                    KeyPath="yes" />
                <File
                    Id="pyqtcore"
                    Name="QtCore.pyd"
                    DiskId="1"
                    Source="PyQt5\QtCore.pyd" />
                <File
                    Id="pyqtgui"
                    Name="QtGui.pyd"
                    DiskId="1"
                    Source="PyQt5\QtGui.pyd" />
                <File
                    Id="pyqtwidgets"
                    Name="QtWidgets.pyd"
                    DiskId="1"
                    Source="PyQt5\QtWidgets.pyd" />
                <File
                    Id="sip"
                    Name="sip.pyd"
                    DiskId="1"
                    Source="PyQt5\sip.pyd" />
              </Component>
            </Directory>

            <Component
                Id="kdiff3"
                Guid="6BA0CB20-F426-42AB-A95A-615A4FF87752">
              <File
                  Id="kdiff3"
                  Name="kdiff3.exe"
                  DiskId="1"
                  Source="kdiff3.exe"
                  KeyPath="yes"/>
            </Component>		  

	    <Directory Id="Crypto" Name="Crypto">
	      <Directory Id="Cipher" Name="Cipher">
		<Component
		    Id="cryptocipher"
		    Guid="FB7C7C7E-FC62-4024-9E7E-47034B416286">
		  <File
		      Id="cipherinit"
		      Name="__init__.py"
		      DiskId="1"
		      Source="Crypto\Cipher\__init__.py" />
		  <File
		      Id="cipheraesd"
		      Name="_AES.pyd"
		      DiskId="1"
		      Source="Crypto\Cipher\_AES.pyd" />
		  <File
		      Id="cipheraes"
		      Name="AES.py"
		      DiskId="1"
		      Source="Crypto\Cipher\AES.py" />
		  <File
		      Id="cipherblockalgo"
		      Name="blockalgo.py"
		      DiskId="1"
		      Source="Crypto\Cipher\blockalgo.py" />
		</Component>
	      </Directory>
	      <Directory Id="Util" Name="Util">
		<Component
		    Id="cryptoutil"
		    Guid="9B5FB64F-B5B3-4E36-A4E6-1EC648470557">
		  <File
		      Id="utilinit"
		      Name="__init__.py"
		      DiskId="1"
		      Source="Crypto\Util\__init__.py" />
		  <File
		      Id="utilpy3compat"
		      Name="py3compat.py"
		      DiskId="1"
		      Source="Crypto\Util\py3compat.py" />
		</Component>
	      </Directory>
	      <Component
		  Id="crypto"
		  Guid="AB5D6864-6D47-4C51-A132-5E0EC5BE1EF8">
		<File
		    Id="cryptoinit"
		    Name="__init__.py"
		    DiskId="1"
		    Source="Crypto\__init__.py" />
	      </Component>

	    </Directory>

        </Directory>
      </Directory>

      <Directory Id="ProgramMenuFolder" Name="Programs">
        <Directory Id="ProgramMenuDir" Name="EasyMercurial">
          <Component Id="ProgramMenuDir" Guid="2E8BDEA0-A6E4-4607-854D-E317A23A535B">
            <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
          </Component>
        </Directory>
      </Directory>

      <Directory Id="DesktopFolder" Name="Desktop"/>

    </Directory>

    <Feature Id="Complete" Level="1">
      <ComponentRef Id="MainExecutable"/>
      <ComponentRef Id="VCLIBS140"/>
      <ComponentRef Id="VCLIBS90"/>
      <ComponentRef Id="HelperScripts"/>
      <ComponentRef Id="Qt5"/>
      <ComponentRef Id="pyqtlibs"/>
      <ComponentRef Id="hgexec"/>
      <ComponentRef Id="hglibs"/>
      <ComponentRef Id="crypto"/>
      <ComponentRef Id="cryptocipher"/>
      <ComponentRef Id="cryptoutil"/>
      <ComponentRef Id="kdiff3"/>
      <ComponentRef Id="ProgramMenuDir"/>
    </Feature>

    <Icon
        Id="easyhg.ico"
        SourceFile="..\..\easyhg.ico"/>

    <UI>
      <UIRef Id="WixUI_InstallDir" />
      <UIRef Id="WixUI_ErrorProgressText" />
    </UI>

    <Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
    <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
    <Property Id="ApplicationFolderName" Value="EasyMercurial" />
    <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
    <WixVariable Id="WixUILicenseRtf" Value="..\..\deploy\win32\License.rtf" />
    
    <Property Id="ARPPRODUCTICON" Value="easyhg.ico" />

  </Product>
</Wix>