summaryrefslogtreecommitdiff
path: root/tools/msvs/msi/product.wxs
blob: 1d445d272a948ab4c9316ebf4ce104907659fb9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">

  <?define repoDir="$(var.ProjectDir)..\..\..\" ?>
  <?define sourcedir="$(var.repoDir)\$(var.Configuration)\" ?>

  <Product Id="$(var.ProductId)"
           Name="node.js"
           Language="1033"
           Version="$(var.ProductVersion)"
           Manufacturer="Joyent, Inc"
           UpgradeCode="1d60944c-b9ce-4a71-a7c0-0384eb884baa">

    <Package InstallerVersion="200" Compressed="yes" Platform="x86" />

    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

    <MajorUpgrade AllowSameVersionUpgrades="yes" 
                  DowngradeErrorMessage="A later version of node.js is already installed. Setup will now exit." />
    
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="NodeRoot" Name="nodejs">
          <Directory Id="NodeModulesFolder" Name="node_modules">
            <Directory Id="NPMFolder" Name="npm">
              <Component Id="npmrc" Guid="55B2B03F-8F32-4D62-A54A-FA428615591D">
                 <File Id="filenpmrc" KeyPath="yes" Source="$(var.repoDir)\tools\msvs\npm\npmrc" />
              </Component>
            </Directory>
          </Directory>
          <Component Id="nodeexe" Guid="AEC0F08E-89B3-4C35-A286-8DB8598597F2">
            <File Id="filenodeexe" KeyPath="yes" Source="$(var.sourcedir)\node.exe" />
            <Environment Id="npm_env"
                         Action="set"             
                         Name="PATH" 
                         Part="last" 
                         System="yes" 
                         Value="[AppDataFolder]npm" />
            <Environment Id="node_env"
                         Action="set"             
                         Name="PATH" 
                         Part="last" 
                         System="yes" 
                         Value="[NodeRoot]" />
          </Component>
          <Component Id="npmcmd" Guid="31e9986d-74cd-44e1-878c-194d3e997d32">
            <File Id="filenpmcmd" KeyPath="yes" Source="$(var.NPMSourceDir)\bin\npm.cmd" />
          </Component>
          <?if $(var.Configuration) = Debug ?>
          <Component Id="nodepdb" Guid="BEC0F08E-89B3-4C35-A286-8DB8598597F2">
            <File Id="filenodepdb" KeyPath="yes" Source="$(var.sourcedir)\node.pdb" />
          </Component>
          <?endif?>
        </Directory>
      </Directory>
      <Directory Id="AppDataFolder">
        <Directory Id="NPMAppData" Name="npm">
          <Component Id="npmappdata_folder" Guid="994B1F7F-60CD-4792-A96D-63BC7FFF29BF" Permanent="yes">
            <RegistryKey Action="none" Key="dummy" Root="HKCU" >
              <RegistryValue Type="integer"  Value="1" KeyPath="yes" />
            </RegistryKey >
            <CreateFolder/>
            <RemoveFolder Id="RemoveAppData" On="uninstall" />
          </Component>
        </Directory>
      </Directory>
    </Directory>

    <ComponentGroup Id="allfiles">
      <ComponentRef Id="nodeexe"/>
      <ComponentRef Id="npmcmd"/>
      <ComponentRef Id="npmrc" />
      <ComponentRef Id="npmappdata_folder" />
      <ComponentGroupRef Id="NPMFiles" />
      <?if $(var.Configuration) = Debug ?>
      <ComponentRef Id="nodepdb"/>
      <?endif?>
    </ComponentGroup>

    <Feature Id="nodejs" Title="node.js engine" Level="1" Description="evented I/O for V8 javascript">
      <ComponentGroupRef Id="allfiles" />
      <ComponentGroupRef Id="Product.Generated" />
    </Feature>

    <UI Id="NodeInstallUI">
      <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
      <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
      <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />

      <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
      <Property Id="WixUI_Mode" Value="Minimal" />

      <DialogRef Id="ErrorDlg" />
      <DialogRef Id="FatalError" />
      <DialogRef Id="FilesInUse" />
      <DialogRef Id="MsiRMFilesInUse" />
      <DialogRef Id="PrepareDlg" />
      <DialogRef Id="ProgressDlg" />
      <DialogRef Id="ResumeDlg" />
      <DialogRef Id="UserExit" />
      <DialogRef Id="WelcomeDlg" /> 

      <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="PrepareDlg">1</Publish> 
      <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
      <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
      <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
      <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>

      <Property Id="ARPNOMODIFY" Value="1" />
      <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="Node.js has been succesfully installed.  To run Node.js open command prompt (cmd.exe), and run 'node'. See http://nodejs.org for information about the license." />

    </UI>

    <UIRef Id="WixUI_Common" />
    <WixVariable Id="WixUIBannerBmp" Value="..\..\..\doc\thin-white-stripe.jpg" />
    <WixVariable Id="WixUIDialogBmp" Value="..\..\..\doc\full-white-stripe.jpg" />
  </Product>

</Wix>