summaryrefslogtreecommitdiffstats
path: root/wix/main.wxs
blob: bfc19402d39f300e92bdc6cc6d367f2addd69c3a (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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
<?xml version='1.0' encoding='windows-1252'?>
<!--
  Copyright (C) 2017 Christopher R. Field.

  Licensed 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.
-->

<!--
  The "cargo wix" subcommand provides a variety of predefined variables available
  for customization of this template. The values for each variable are set at
  installer creation time. The following variables are available:

  TargetTriple      = The rustc target triple name.
  TargetEnv         = The rustc target environment. This is typically either
                      "msvc" or "gnu" depending on the toolchain downloaded and
                      installed.
  TargetVendor      = The rustc target vendor. This is typically "pc", but Rust
                      does support other vendors, like "uwp".
  CargoTargetBinDir = The complete path to the directory containing the
                      binaries (exes) to include. The default would be
                      "target\release\". If an explicit rustc target triple is
                      used, i.e. cross-compiling, then the default path would
                      be "target\<CARGO_TARGET>\<CARGO_PROFILE>",
                      where "<CARGO_TARGET>" is replaced with the "CargoTarget"
                      variable value and "<CARGO_PROFILE>" is replaced with the
                      value from the "CargoProfile" variable. This can also
                      be overridden manually with the "target-bin-dir" flag.
  CargoTargetDir    = The path to the directory for the build artifacts, i.e.
                      "target".
  CargoProfile      = The cargo profile used to build the binaries
                      (usually "debug" or "release").
  Version           = The version for the installer. The default is the
                      "Major.Minor.Fix" semantic versioning number of the Rust
                      package.
-->

<!--
  Please do not remove these pre-processor If-Else blocks. These are used with
  the `cargo wix` subcommand to automatically determine the installation
  destination for 32-bit versus 64-bit installers. Removal of these lines will
  cause installation errors.
-->
<?if $(sys.BUILDARCH) = x64 or $(sys.BUILDARCH) = arm64 ?>
    <?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
    <?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>

<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

    <Product
        Id='*'
        Name='bottom'
        UpgradeCode='3C90C27D-8372-4C82-B03C-020393CB983D'
        Manufacturer='Clement Tsang'
        Language='1033'
        Codepage='1252'
        Version='$(var.Version)'>

        <Package Id='*'
            Keywords='Installer'
            Description='A customizable cross-platform graphical process/system monitor for the terminal. Supports Linux, macOS, and Windows.'
            Manufacturer='Clement Tsang'
            InstallerVersion='450'
            Languages='1033'
            Compressed='yes'
            InstallScope='perMachine'
            SummaryCodepage='1252'
            />

        <MajorUpgrade
            Schedule='afterInstallInitialize'
            DowngradeErrorMessage='A newer version of [ProductName] is already installed. Setup will now exit.'/>

        <Media Id='1' Cabinet='media1.cab' EmbedCab='yes' DiskPrompt='CD-ROM #1'/>
        <Property Id='DiskPrompt' Value='bottom Installation'/>

        <Directory Id='TARGETDIR' Name='SourceDir'>
            <Directory Id='$(var.PlatformProgramFilesFolder)' Name='PFiles'>
                <Directory Id='APPLICATIONFOLDER' Name='bottom'>
                    <!--
                      Disabling the license sidecar file in the installer is a two step process:

                      1. Comment out or remove the `Component` tag along with its contents.
                      2. Comment out or remove the `ComponentRef` tag with the "License" Id
                         attribute value further down in this file.
                    -->
                    <Component Id='License' Guid='*'>
                        <File Id='LicenseFile'
                            DiskId='1'
                            Source='wix\License.rtf'
                            KeyPath='yes'/>
                    </Component>
                    
                    <Directory Id='Bin' Name='bin'>
                        <Component Id='Path' Guid='15D841CF-0363-4DBB-BF55-ECCB43B9EB03' KeyPath='yes'>
                            <Environment
                                Id='PATH'
                                Name='PATH'
                                Value='[Bin]'
                                Permanent='no'
                                Part='last'
                                Action='set'
                                System='yes'/>
                        </Component>
                        <Component Id='binary0' Guid='*'>
                            <File
                                Id='exe0'
                                Name='btm.exe'
                                DiskId='1'
                                Source='$(var.CargoTargetBinDir)\btm.exe'
                                KeyPath='yes'/>
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>

        <Feature
            Id='Binaries'
            Title='Application'
            Description='Installs all binaries and the license.'
            Level='1'
            ConfigurableDirectory='APPLICATIONFOLDER'
            AllowAdvertise='no'
            Display='expand'
            Absent='disallow'>
            <!--
              Comment out or remove the following `ComponentRef` tag to remove
              the license sidecar file from the installer.
            -->
            <ComponentRef Id='License'/>
            
            <ComponentRef Id='binary0'/>

            <Feature
                Id='Environment'
                Title='PATH Environment Variable'
                Description='Add the install location of the [ProductName] executable to the PATH system environment variable. This allows the [ProductName] executable to be called from any location.'
                Level='1'
                Absent='allow'>
                <ComponentRef Id='Path'/>
            </Feature>
        </Feature>

        <SetProperty Id='ARPINSTALLLOCATION' Value='[APPLICATIONFOLDER]' After='CostFinalize'/>

        
        <!--
          Uncomment the following `Icon` and `Property` tags to change the product icon.

          The product icon is the graphic that appears in the Add/Remove
          Programs control panel for the application.
        -->
        <!--<Icon Id='ProductICO' SourceFile='wix\Product.ico'/>-->
        <!--<Property Id='ARPPRODUCTICON' Value='ProductICO' />-->

        <Property Id='ARPHELPLINK' Value='https://clementtsang.github.io/bottom/stable'/>
        
        <UI>
            <UIRef Id='WixUI_FeatureTree'/>
            <!--
              Disabling the EULA dialog in the installer is a two step process:

                 1. Uncomment the following two `Publish` tags
                 2. Comment out or remove the `<WiXVariable Id='WixUILicenseRtf'...` tag further down

            -->
            <!--<Publish Dialog='WelcomeDlg' Control='Next' Event='NewDialog' Value='CustomizeDlg' Order='99'>1</Publish>-->
            <!--<Publish Dialog='CustomizeDlg' Control='Back' Event='NewDialog' Value='WelcomeDlg' Order='99'>1</Publish>-->
            
        </UI>

        <!--
          Disabling the EULA dialog in the installer requires commenting out
          or removing the following `WixVariable` tag
        -->
        <WixVariable Id='WixUILicenseRtf' Value='wix\License.rtf'/>
        
        
        <!--
          Uncomment the next `WixVariable` tag to customize the installer's
          Graphical User Interface (GUI) and add a custom banner image across
          the top of each screen. See the WiX Toolset documentation for details
          about customization.

          The banner BMP dimensions are 493 x 58 pixels.
        -->
        <!--<WixVariable Id='WixUIBannerBmp' Value='wix\Banner.bmp'/>-->

        
        <!--
          Uncomment the next `WixVariable` tag to customize the installer's
          Graphical User Interface (GUI) and add a custom image to the first
          dialog, or screen. See the WiX Toolset documentation for details about
          customization.

          The dialog BMP dimensions are 493 x 312 pixels.
        -->
        <!--<WixVariable Id='WixUIDialogBmp' Value='wix\Dialog.bmp'/>-->

    </Product>

</Wix>