Use Slim Reader/Writer lock to replace CRITICAL_SECTION (better performance).
[gdipp.git] / installer / installer.wxs
blob45563acdbb1dd1bcc569cb6aad583f828a5352b9
1 <?xml version="1.0" encoding="UTF-8" ?>\r
2 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">\r
3         <Product Id="71596D05-3463-439F-A0D4-4D04768A5E87"\r
4                 Codepage="$(var.codepage)"\r
5                 Language="!(loc.LANGID)"\r
6                 Manufacturer="gdipp Project"\r
7                 Name="gdipp"\r
8                 UpgradeCode="6ED4EDF5-2D99-4B02-AD98-D58B1884CD9B"\r
9                 Version="!(bind.FileVersion.gdimm_dll)">\r
10                 <Package Compressed="yes" InstallerVersion="200" />\r
12 <?if $(var.Platform) = x86 ?>\r
13         <!-- if this is the x86 installer, do not install on 64-bit OS -->\r
14         <Condition Message="!(loc.version_fail_msg)">\r
15                 <![CDATA[(VersionNT >= 501) AND (NOT VersionNT64)]]>\r
16         </Condition>\r
17 <?else if $(var.Platform) = x64 ?>\r
18         <Condition Message="!(loc.version_fail_msg)">\r
19                 <![CDATA[VersionNT64 >= 501]]>\r
20         </Condition>\r
21 <?endif ?>\r
23                 <Media Id="1" Cabinet="gdipp.cab" EmbedCab="yes" />\r
25                 <Directory Id="TARGETDIR" Name="SourceDir">\r
26                         <Directory Id="ProgramFilesFolder">\r
27                                 <!-- install both 32-bit and 64-bit files in same directory -->\r
28                                 <Directory Id="INSTALLDIR" Name="gdipp">\r
29                                         <Component Id="comp_32_bit_file" Guid="B94E958C-1843-4AEB-BB12-DEE8032CE0C8" Win64="no">\r
30                                                 <File Id="gdimm_dll" Name="gdimm_32.dll" Source="$(var.SolutionDir)Win32\Release\gdimm_32.dll" KeyPath="yes" Vital="yes"/>\r
31                                                 <File Name="gdipp_lib_32.dll" Source="$(var.SolutionDir)Win32\Release\gdipp_lib_32.dll" Vital="yes" />\r
32                                                 <File Name="gdipp_demo_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_demo_32.exe" />\r
33                                                 <File Name="gdipp_hook_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_hook_32.exe" />\r
34                                                 <File Name="gdipp_loader_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_loader_32.exe" />\r
35                                                 <File Name="gdipp_pre_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_pre_32.exe" />\r
36                                                 <File Id="gdipp_svc_32_uncond" Name="gdipp_svc_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_svc_32.exe" />\r
37                                                 <File Name="EasyHook32.dll" Source="$(var.SolutionDir)EasyHook\EasyHook32.dll" Vital="yes" />\r
38                                         </Component>\r
40 <?if $(var.Platform) = x86 ?>\r
41                                         <Component Id="comp_service_32" Guid="E478FCBC-2485-44A4-AC59-B722879E815A">\r
42                                                 <File Id="gdipp_svc_32_cond" Name="gdipp_svc_32.exe" Source="$(var.SolutionDir)Win32\Release\gdipp_svc_32.exe" KeyPath="yes" />\r
43                                                 <ServiceInstall Id="gdipp_svc_32_inst"\r
44                                                         Description="!(loc.gdipp_service_desc)"\r
45                                                         DisplayName="gdipp Service"\r
46                                                         ErrorControl="normal"\r
47                                                         Name="gdipp_svc"\r
48                                                         Start="auto"\r
49                                                         Type="ownProcess">\r
50                                                 </ServiceInstall>\r
51                                                 <ServiceControl Id="gdipp_svc_32_ctrl"\r
52                                                         Name="gdipp_svc"\r
53                                                         Remove="uninstall"\r
54                                                         Stop="uninstall"\r
55                                                         Wait="no" />\r
56                                         </Component>\r
57 <?endif ?>\r
58                                         \r
59 <?if $(var.Platform) = x64 ?>\r
60                                         <Component Id="comp_64_bit_file" Guid="A7D01189-D404-4E93-B080-8E1687D328A1" Win64="yes">\r
61                                                 <File Name="gdimm_64.dll" Source="$(var.SolutionDir)x64\Release\gdimm_64.dll" KeyPath="yes" Vital="yes"/>\r
62                                                 <File Name="gdipp_lib_64.dll" Source="$(var.SolutionDir)x64\Release\gdipp_lib_64.dll" Vital="yes" />\r
63                                                 <File Name="gdipp_demo_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_demo_64.exe" />\r
64                                                 <File Name="gdipp_hook_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_hook_64.exe" />\r
65                                                 <File Name="gdipp_loader_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_loader_64.exe" />\r
66                                                 <File Name="gdipp_pre_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_pre_64.exe" />\r
67                                                 <File Id="gdipp_svc_64_uncond" Name="gdipp_svc_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_svc_64.exe" />\r
68                                                 <File Name="EasyHook64.dll" Source="$(var.SolutionDir)EasyHook\EasyHook64.dll" Vital="yes" />\r
69                                         </Component>\r
71                                         <Component Id="comp_service_64" Guid="DB627686-0CBA-4A4D-8492-D9684188D245" Win64="yes">\r
72                                                 <File Id="gdipp_svc_64_cond" Name="gdipp_svc_64.exe" Source="$(var.SolutionDir)x64\Release\gdipp_svc_64.exe" KeyPath="yes" />\r
73                                                 <ServiceInstall Id="gdipp_svc_64_inst"\r
74                                                         Description="!(loc.gdipp_service_desc)"\r
75                                                         DisplayName="gdipp Service"\r
76                                                         ErrorControl="normal"\r
77                                                         Name="gdipp_svc"\r
78                                                         Start="auto"\r
79                                                         Type="ownProcess">\r
80                                                 </ServiceInstall>\r
81                                                 <ServiceControl Id="gdipp_svc_64_ctrl"\r
82                                                         Name="gdipp_svc"\r
83                                                         Remove="uninstall"\r
84                                                         Stop="uninstall"\r
85                                                         Wait="no" />\r
86                                         </Component>\r
87 <?endif ?>\r
89                                         <Component Id="comp_setting" Guid="470FEEC1-6828-45F3-8663-4C154FDFF462" Permanent="yes" Win64="no">\r
90                                                 <!-- backup setting file -->\r
91                                                 <CopyFile Id="backup_setting"\r
92                                                         Delete="yes"\r
93                                                         DestinationProperty="INSTALLDIR" DestinationName="setting.xml.bak"\r
94                                                         SourceProperty="INSTALLDIR" SourceName="setting.xml" />\r
95                                                 <File Name="gdipp_setting.xml" Source="gdipp_setting.xml" KeyPath="yes" Vital="yes" />\r
96                                                 <Environment Id="add_to_path_env_var" Action="set" Name="PATH" Part="last" Permanent="no" System="yes" Value="[INSTALLDIR]" />\r
97                                         </Component>\r
99                                         <Directory Id="script_dir" Name="Script">\r
100                                                 <Component Id="comp_script" Guid="06AB9C26-C535-43C0-B215-4485AC234A9E" Win64="no">\r
101                                                         <File Name="Create_Services.bat" Source="Script\Create_Services.bat" />\r
102                                                         <File Name="Delete_Services.bat" Source="Script\Delete_Services.bat" />\r
103                                                         <File Name="Registry_Disable_32.bat" Source="Script\Registry_Disable_32.bat" />\r
104                                                         <File Name="Registry_Disable_64.bat" Source="Script\Registry_Disable_64.bat" />\r
105                                                         <File Name="Registry_Enable_32.bat" Source="Script\Registry_Enable_32.bat" />\r
106                                                         <File Name="Registry_Enable_64.bat" Source="Script\Registry_Enable_64.bat" />\r
107                                                         <File Name="Start_Service_32.bat" Source="Script\Start_Service_32.bat" />\r
108                                                         <File Name="Start_Service_64.bat" Source="Script\Start_Service_64.bat" />\r
109                                                         <File Name="Stop_Service_32.bat" Source="Script\Stop_Service_32.bat" />\r
110                                                         <File Name="Stop_Service_64.bat" Source="Script\Stop_Service_64.bat" />\r
111                                                 </Component>\r
112                                         </Directory>\r
114                                         <Component Id="comp_gdipp_doc" Guid="E4A5F563-5087-461B-9051-65A226087D3E" Win64="no">\r
115                                                 <File Id="GPL" Name="COPYING" Source="COPYING" />\r
116                                                 <File Id="LGPL" Name="COPYING.LESSER" Source="COPYING.LESSER" />\r
117                                                 <File Name="gdipp_preview.txt" Source="gdipp_preview.txt" />\r
118                                                 <util:InternetShortcut Id="documentation_url" Name="documentation" Target="http://code.google.com/p/gdipp/w/list" Type="url" />\r
119                                         </Component>\r
121                                         <Directory Id="freetype_dir" Name="FreeType">\r
122                                                 <Component Id="comp_freetype_doc" Guid="E7D7F0FD-F6A0-4BE8-9230-0BA86461C975" Win64="no">\r
123                                                         <File Id="freetype_readme" Name="README" Source="FreeType\README" KeyPath="yes" />\r
124                                                         <File Name="FTL.TXT" Source="FreeType\FTL.TXT" />\r
125                                                         <File Name="GPL.TXT" Source="FreeType\GPL.TXT" />\r
126                                                         <File Id="freetype_license" Name="LICENSE.TXT" Source="FreeType\LICENSE.TXT" />\r
127                                                 </Component>\r
128                                         </Directory>\r
130                                         <Directory Id="easyhook_dir" Name="EasyHook">\r
131                                                 <Component Id="comp_easyhook_doc" Guid="63BE47ED-8547-42F4-86D6-773B99098DAF" Win64="no">\r
132                                                         <File Id="easyhook_readme" Name="README.txt" Source="EasyHook\README.txt" KeyPath="yes" />\r
133                                                         <File Id="easyhook_license" Name="LICENSE.txt" Source="EasyHook\LICENSE.txt" />\r
134                                                 </Component>\r
135                                         </Directory>\r
136                                 </Directory>\r
137                         </Directory>\r
139                         <Directory Id="DesktopFolder">\r
140                                 <Component Id="comp_shortcut_32" Guid="E7ECF638-8F20-4965-BC37-6EA384C59E47" Win64="no">\r
141                                         <Shortcut Id="desktop_gdipp_loader_32" Directory="DesktopFolder" Name="!(loc.gdipp_loader_desc_32)" Target="[!gdipp_loader_32.exe]" WorkingDirectory="INSTALLDIR" />\r
142                                 </Component>\r
144 <?if $(var.Platform) = x64 ?>\r
145                                 <Component Id="comp_shortcut_64" Guid="CD22D39C-4236-4D37-8583-319D02A809A2" Win64="yes">\r
146                                         <Shortcut Id="desktop_gdipp_loader_64" Directory="DesktopFolder" Name="!(loc.gdipp_loader_desc_64)" Target="[!gdipp_loader_64.exe]" WorkingDirectory="INSTALLDIR" />\r
147                                 </Component>\r
148 <?endif ?>\r
149                         </Directory>\r
150                 </Directory>\r
152                 <Feature Id="feature_files"\r
153                         Absent="disallow"\r
154                         AllowAdvertise="no"\r
155                         ConfigurableDirectory="INSTALLDIR"\r
156                         Description="!(loc.install_files_desc)"\r
157                         Display="expand"\r
158                         Level="1"\r
159                         Title="!(loc.install_files_title)">\r
160                         <ComponentRef Id="comp_32_bit_file" />\r
161                         \r
162 <?if $(var.Platform) = x64 ?>\r
163                         <ComponentRef Id="comp_64_bit_file" />\r
164 <?endif ?>\r
166                         <ComponentRef Id="comp_setting" />\r
167                         <ComponentRef Id="comp_script" />\r
168                         <ComponentRef Id="comp_gdipp_doc" />\r
169                         <ComponentRef Id="comp_freetype_doc" />\r
170                         <ComponentRef Id="comp_easyhook_doc" />\r
171                 </Feature>\r
172                 <Feature Id="feature_misc"\r
173                         AllowAdvertise="no"\r
174                         Description="!(loc.install_misc_desc)"\r
175                         Display="expand"\r
176                         Level="1"\r
177                         Title="!(loc.install_misc_title)">\r
178                         <Feature Id="feature_service"\r
179                                 AllowAdvertise="no"\r
180                                 Description="!(loc.install_service_desc)"\r
181                                 Level="1"\r
182                                 Title="!(loc.install_service_title)">\r
183                                 <ComponentRef Id="comp_service_32" />\r
184                         \r
185 <?if $(var.Platform) = x64 ?>\r
186                                 <ComponentRef Id="comp_service_64" />\r
187 <?endif ?>\r
188                         </Feature>\r
189                         <Feature Id="feature_shortcut"\r
190                                 AllowAdvertise="no"\r
191                                 Description="!(loc.install_shortcut_desc)"\r
192                                 Level="2"\r
193                                 Title="!(loc.install_shortcut_title)">\r
194                                 <ComponentRef Id="comp_shortcut_32" />\r
195                         \r
196 <?if $(var.Platform) = x64 ?>\r
197                                 <ComponentRef Id="comp_shortcut_64" />\r
198 <?endif ?>\r
199                         </Feature>\r
200                 </Feature>\r
202                 <WixVariable Id="WixUILicenseRtf" Value="License.rtf" />\r
203                 \r
204                 <CustomAction Id="start_svc_32_cmdline" Property="QtExecCmdLine" Value='"[SystemFolder]cmd.exe" /c sc start gdipp_svc_32' />\r
205                 <CustomAction Id="start_svc_32_exec" BinaryKey="WixCA" DllEntry="CAQuietExec" Return="ignore" />\r
207 <?if $(var.Platform) = x64 ?>\r
208                 <CustomAction Id="start_svc_64_cmdline" Property="QtExec64CmdLine" Value='"[System64Folder]cmd.exe" /c sc start gdipp_svc_64' />\r
209                 <CustomAction Id="start_svc_64_exec" BinaryKey="WixCA" DllEntry="CAQuietExec64" Return="ignore" />\r
210 <?endif ?>\r
212                 <Property Id="START_SERVICE" Value="1" />\r
213                 \r
214                 <UI>\r
215                         <UIRef Id="WixUI_FeatureTree" />\r
216                         <DialogRef Id="gdipp_ExitDialog" />\r
217                         \r
218                         <Publish Control="Finish"\r
219                                 Dialog="gdipp_ExitDialog"\r
220                                 Event="DoAction"\r
221                                 Value="start_svc_32_cmdline" Order="1">\r
222                                 <![CDATA[START_SERVICE = 1 AND &feature_service >= 3]]>\r
223                         </Publish>\r
224                         <Publish Control="Finish"\r
225                                 Dialog="gdipp_ExitDialog"                               \r
226                                 Event="DoAction"\r
227                                 Value="start_svc_32_exec" Order="2">\r
228                                 <![CDATA[START_SERVICE = 1 AND &feature_service >= 3]]>\r
229                         </Publish> \r
231 <?if $(var.Platform) = x64 ?>\r
232                         <Publish Control="Finish"\r
233                                 Dialog="gdipp_ExitDialog"\r
234                                 Event="DoAction"\r
235                                 Value="start_svc_64_cmdline" Order="3">\r
236                                 <![CDATA[START_SERVICE = 1 AND &feature_service >= 3]]>\r
237                         </Publish>\r
238                         <Publish Control="Finish"\r
239                                 Dialog="gdipp_ExitDialog"\r
240                                 Event="DoAction"\r
241                                 Value="start_svc_64_exec" Order="4">\r
242                                 <![CDATA[START_SERVICE = 1 AND &feature_service >= 3]]>\r
243                         </Publish>\r
244 <?endif ?>\r
245                 </UI>\r
246         </Product>\r
247 </Wix>