Statistics
| Revision:

root / tmp / org.txm.setups / shared / win / txm.nsi @ 1214

History | View | Annotate | Download (15.1 kB)

1
!include MUI2.nsh
2

    
3
!include nsDialogs.nsh
4

    
5
!include LogicLib.nsh
6

    
7
;general
8

    
9
Name "TXM 0.8.0a3"
10

    
11
;!define Version ""
12
!define Version "_0.8.0a3"
13

    
14

    
15
OutFile "../../TXM${Version}_Win64_installer.exe"
16

    
17
InstallDir "$PROGRAMFILES64\TXM${Version}"
18

    
19
RequestExecutionLevel admin
20

    
21
;compression
22

    
23
;SetCompressor /FINAL /SOLID lzma
24

    
25
;SetCompressorDictSize 64
26

    
27

    
28
;interface configuration
29

    
30
!define MUI_HEADERIMAGE
31

    
32
!define MUI_HEADERIMAGE_RIGHT
33

    
34
!define MUI_HEADERIMAGE_BITMAP "header.bmp"
35

    
36
!define MUI_HEADERIMAGE_UNBITMAP "header.bmp"
37

    
38
!define MUI_ICON "install.ico"
39

    
40
!define MUI_UNICON "uninstall.ico"
41

    
42
!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" ; optional
43

    
44

    
45
;Welcome conf
46

    
47
;!define MUI_WELCOMEFINISHPAGE_BITMAP "welcome.bmp" ; optional
48

    
49
!define MUI_WELCOMEPAGE_TITLE $(WelcomeTitleMessage)
50

    
51
!define MUI_WELCOMEPAGE_TEXT $(WelcomeTextMessage)
52

    
53

    
54
;Finish conf
55

    
56
!define MUI_FINISHPAGE_TITLE $(FinishTitleMessage)
57

    
58
!define MUI_FINISHPAGE_TEXT $(FinishTextMessage)
59

    
60

    
61
;pages
62

    
63

    
64
!insertmacro MUI_PAGE_WELCOME
65

    
66
;!insertmacro MUI_PAGE_LICENSE "license_agreement.txt"  
67
!insertmacro MUI_PAGE_DIRECTORY
68

    
69
Page Custom MyCustomPage MyCustomLeave
70
Var Dialog
71
Var Checkbox1
72

    
73
Var CheckState1 ; Stored globally so we remember the choice if the user presses the back button and goes back to our page
74
Var Checkbox2
75

    
76
Var CheckState2 ; Stored globally so we remember the choice if the user presses the back button and goes back to our page
77
Function MyCustomPage
78
	!insertmacro MUI_HEADER_TEXT $(AdvancedOptionsTitle) $(AdvancedOptionsSubTitle)
79

    
80
	nsDialogs::Create 1018
81
	Pop $Dialog
82

    
83
	${If} $Dialog == error
84
		Abort
85
	${EndIf}
86

    
87
	${NSD_CreateCheckBox} 0 0 100% 30% $(LocalInstallMessage)
88
	Pop $Checkbox1
89
	
90
;	${NSD_Check} $Checkbox1
91

    
92
	${NSD_CreateCheckBox} 0 30% 100% 30% $(AskUserDirMessage)
93
	Pop $Checkbox2
94
	
95
;	${NSD_Check} $Checkbox2
96

    
97
	nsDialogs::Show
98
FunctionEnd
99

    
100
Function MyCustomLeave
101
  ${NSD_GetState} $Checkbox1 $CheckState1
102

    
103
  ${If} $CheckState1 <> 0
104
  
105
    file ROAMINGINSTALL
106
    
107
  ${EndIf}
108

    
109
  ${NSD_GetState} $Checkbox2 $CheckState2
110

    
111
  ${If} $CheckState2 <> 0
112
  
113
    file ASKUSERDIRECTORY
114
    
115
  ${EndIf}
116
FunctionEnd
117

    
118

    
119
!insertmacro MUI_PAGE_INSTFILES
120

    
121
!insertmacro MUI_UNPAGE_CONFIRM
122

    
123
!insertmacro MUI_UNPAGE_INSTFILES
124

    
125
!insertmacro MUI_PAGE_FINISH
126

    
127

    
128
;Languages
129

    
130
!insertmacro MUI_LANGUAGE "English"
131
!insertmacro MUI_LANGUAGE "French"
132
!insertmacro MUI_LANGUAGE "Russian"
133

    
134
;Lang Strings ENGLISH
135
LangString AdvancedOptionsTitle ${LANG_ENGLISH} "Advanced options"
136
LangString AdvancedOptionsSubTitle ${LANG_ENGLISH} "Check these options only for specific Windows configurations"
137
LangString LocalInstallMessage ${LANG_ENGLISH} "Do not use local user directory (check this option to use a roaming Windows account home directory)."
138

    
139
LangString AskUserDirMessage ${LANG_ENGLISH} "Do not use the user directory to store the TXM working directory (check this option to store corpora on a USB stick or on a remote directory. In this case, the working directory path will be asked at each TXM launch)."
140

    
141
LangString InfosTitleMessage ${LANG_ENGLISH} "For your information"
142

    
143
LangString InfosTextMessage ${LANG_ENGLISH} "If TXM is already installed on this machine, it will first be removed by this installer (TXM corpora will NOT be removed).$\nClose the window to cancel installation.$\n$\nMinimum requirements: Windows 7 64bit"
144

    
145
LangString WelcomeTitleMessage ${LANG_ENGLISH} "Welcome to TXM setup"
146

    
147
LangString WelcomeTextMessage ${LANG_ENGLISH} "TXM is provided to you free of charge. In return, in the spirit of open-source software development, you are invited to participate in its improvement. To do this, you don't have to be a software developer, you can:$\n * send us your publications or course materials related to your use of TXM;$\n * suggest corrections or improvements;$\n * translate in your language the interface or documentation;$\n * Setup a research project involving TXM adaptation and use;$\n * etc.$\n$\n See the 'Contribute' page on the TXM users' wiki: https://groupes.renater.fr/wiki/txm-users/public/contribuer $\n$\n Don't hesitate to contact us for more information at 'textometrie AT groupes.renater DOT fr'."
148

    
149
LangString FinishTitleMessage ${LANG_ENGLISH} "Installation done"
150

    
151
LangString FinishTextMessage ${LANG_ENGLISH} "The installation is done. A 'TXM' entry has been added to the 'Start' menu.$\nIf you want to automatically tag and lemmatize your corpora with the TreeTagger software during import, you need to follow additional installation instructions given in the 'Help > Install TreeTagger' menu."
152

    
153
LangString ErrorArch32Message ${LANG_ENGLISH} "This setup is for 32bit systems but your system seems to be 64bit. Please download and install the 64bit version of TXM for this machine. Continue to install anyway?"
154

    
155
LangString ErrorArch64Message ${LANG_ENGLISH} "This setup is for 64bit systems but your system seems to be 32bit. Please download and install the 32bit version of TXM for this machine. Continue to install anyway?"
156

    
157
LangString UninstallWindowsMessage ${LANG_ENGLISH} "TXM is already installed on this machine.$\n$\nClick `OK` to uninstall the previous version first (TXM corpora will NOT be removed).$\nOr click `Cancel` to abort this installation.$\nPlease ensure that no TXM is running during the installation process."
158

    
159

    
160
;Lang Strings FRENCH
161
LangString AdvancedOptionsTitle ${LANG_FRENCH} "Options avanc?es"
162
LangString AdvancedOptionsSubTitle ${LANG_FRENCH} "Ne cocher ces options que pour des configurations Windows particuli?res"
163
LangString LocalInstallMessage ${LANG_FRENCH} "Ne pas utiliser le r?pertoire utilisateur local (cocher cette option si vous souhaitez utiliser un r?pertoire de connexion de compte itin?rant)."
164

    
165
LangString AskUserDirMessage ${LANG_FRENCH} "Ne pas utiliser le r?pertoire utilisateur comme r?pertoire de travail de TXM (cocher cette option pour stocker les corpus sur une cl? USB ou sur un disque distant. Dans ce cas, le chemin du r?pertoire de travail sera demand? chaque lancement de TXM)."
166

    
167
LangString InfosTitleMessage ${LANG_FRENCH} "Pour votre information"
168

    
169
LangString InfosTextMessage ${LANG_FRENCH} "Si TXM est d?j? install? sur cette machine, cet installeur le supprimera pour commencer (les corpus existants ne seront pas supprim?s). Pour annuler l'installation, vous pouvez fermer cette fen?tre.$\n$\nConfiguration minimum: Windows Vista 64bit"
170

    
171
LangString WelcomeTitleMessage ${LANG_FRENCH} "Bienvenue dans l'installeur de TXM"
172

    
173
LangString WelcomeTextMessage ${LANG_FRENCH} "TXM vous est fourni gracieusement. En contre-partie, dans l'esprit du logiciel libre, vous ?tes invit? ? participer ? son am?lioration. Pour cela, vous n'?tes pas oblig? d'?tre d?veloppeur informatique, vous pouvez :$\n * transmettre vos publications ou supports de cours ;$\n * proposer des corrections ou am?liorations ;$\n *  traduire l'interface ou la documentation ;$\n * monter un projet pour adapter TXM ? vos besoins ;$\n * etc.$\n$\n Voir la rubrique 'Contribuer' du wiki des utilisateurs de TXM : https://groupes.renater.fr/wiki/txm-users/public/contribuer $\n$\n N'h?sitez pas ? nous contacter pour de plus amples informations : 'textometrie AT groupes.renater DOT fr'."
174

    
175
LangString FinishTitleMessage ${LANG_FRENCH} "Installation termin?e."
176

    
177
LangString FinishTextMessage ${LANG_FRENCH} "L'installation s'est correctement termin?e. Une entr?e 'TXM' a ?t? ajout?e au menu D?marrer.$\n$\nSi vous souhaitez ?tiqueter et lemmatiser automatiquement vos corpus avec le logiciel TreeTagger lors de l'import, vous devez suivre les instructions d'installation suppl?mentaires fournies dans le menu 'Aide > Installer TreeTagger'."
178

    
179
LangString ErrorArch32Message ${LANG_FRENCH} "La version de TXM que vous allez installer est pour un syst?me 32 bits, or votre syst?me semble ?tre 64 bits. Il faudrait t?l?charger et installer la version 64 bits de TXM. Voulez-vous malgr? tout continuer cette installation ?"
180

    
181
LangString ErrorArch64Message ${LANG_FRENCH} "La version de TXM que vous allez installer est pour un syst?me 64 bits, or votre syst?me semble ?tre 32 bits. Il faudrait t?l?charger et installer la version 32 bits de TXM. Voulez-vous malgr? tout continuer cette installation ?"
182

    
183
LangString UninstallWindowsMessage ${LANG_FRENCH} "TXM est d?j? install? sur cette machine. Veuillez cliquer sur 'OK' pour d?sinstaller cette version au pr?alable (les corpus seront conserv?s). Ou cliquez sur 'Annuler' pour interrompre l'installation. Merci de vous assurer que TXM n'est pas en cours d'ex?cution pendant l'installation."
184

    
185

    
186
;END OF LANG MESSAGES
187

    
188

    
189
Function .onInit
190

    
191
	;!insertmacro MUI_LANGDLL_DISPLAY
192
	
193

    
194
	setOutPath $INSTDIR
195
	
196

    
197
		ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "UninstallString"
198
		
199
		StrCmp $R0 "" done
200
		
201

    
202
		MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION $(UninstallWindowsMessage) IDOK uninst
203

    
204
		Abort
205

    
206

    
207

    
208
	;Run the uninstaller
209
	
210
	uninst:
211
	
212
		ClearErrors
213
		
214
		ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
215
		
216
		IfErrors no_remove_uninstaller done
217
		
218
		no_remove_uninstaller:
219
		
220
	done:
221
	
222
FunctionEnd
223

    
224
Section "Copy files" SecFiles
225
	
226
	#we install txm in INSTDIR
227
	
228
	SetOutPath $INSTDIR
229
	
230
	File /r ..\..\exportRCP\win32.win32.x86_64\TXM\*.*
231
	
232
	;File /r plugins
233
	;File /r features
234
	;File /r configuration
235
	;File /r jre
236
	;File /r p2
237
	;File /r doc
238
	;File /r schema
239
	;File /r scripts
240
	;File /r samples
241
	;File /r xsl
242
	;File /r css
243
	;File TXM.ico
244
	;File TXM.bat
245
	;File TXM.vbs
246
	;File StartDialog.jar
247
	;File OpenStartUpLogsDirectory.bat
248
	;File IEShims.dll
249
	;File libcharset-1.dll
250
	;File libglib-2.0-0.dll
251
	;File libgnurx-0.dll
252
	;File libiconv-2.dll
253
	;File libintl-8.dll
254
	;File libpcre-1.dll
255
	;File pcre3.dll
256
	
257
	# hide TXM.exe
258
	SetFileAttributes "$INSTDIR/TXM.exe" HIDDEN
259
	
260
	# the users right on install dir to enable updates
261
	
262
	AccessControl::GrantOnFile "$INSTDIR\TXM" "(S-1-5-32-545)" "FullAccess"
263
	
264
	#we set the shortcuts
265
	
266
	SetShellVarContext all
267
	
268
	CreateDirectory "$SMPROGRAMS\TXM${Version}"
269
	
270
	;CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM.lnk" "$INSTDIR\TXM.bat" "$INSTDIR\TXM.ico"
271
	CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM.lnk" "$INSTDIR\TXM.bat" "" "$INSTDIR\TXM.ico" 0
272
	
273
	CreateShortCut "$SMPROGRAMS\TXM${Version}\uninstall.lnk" "$INSTDIR\uninstall.exe"
274
	
275
	#CreateShortCut "$SMPROGRAMS\TXM${Version}\Manuel utilisateur FR.pdf.lnk" "$INSTDIR\doc\Manuel de TXM 0.7 FR.pdf"
276
	
277
	#CreateShortCut "$SMPROGRAMS\TXM${Version}\User Manual EN.pdf.lnk" "$INSTDIR\doc\TXM 0.7 Manual EN.pdf"
278
	
279

    
280
	; Store installation folder
281
	
282
	WriteRegStr HKCU "Software\TXM${Version}" "" $INSTDIR
283
	
284
	#register the TXM uninstall to windows programs
285
	
286
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
287
	
288
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "DisplayName" "TXM${Version}  - The Textometrie project builds the new generation of modular and open-source textometry platform and application. The scientific project web site is http://textometrie.ens-lsh.fr/?lang=en. "
289
	
290
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
291

    
292

    
293
	#we create the uninstaller
294
	
295
	WriteUninstaller "$INSTDIR\uninstall.exe"
296
	
297

    
298

    
299
SectionEnd
300

    
301
Function WriteToFile
302

    
303
	Exch $0 ;file to write to
304
	
305
	Exch
306
	
307
	Exch $1 ;text to write
308
	
309
	FileOpen $0 $0 a #open file
310
	
311
	FileSeek $0 0 END #go to end
312
	
313
	FileWrite $0 $1 #write to file
314
	
315
	FileClose $0
316
	
317
	Pop $1
318
	
319
	Pop $0
320
	
321
FunctionEnd
322

    
323

    
324
### TimeStamp
325

    
326
!ifndef TimeStamp
327

    
328
    !define TimeStamp "!insertmacro _TimeStamp"
329
    
330
    !macro _TimeStamp FormatedString
331
    
332
        !ifdef __UNINSTALL__
333
	
334
            Call un.__TimeStamp
335
	    
336
        !else
337
	
338
            Call __TimeStamp
339
	    
340
        !endif
341
	
342
        Pop ${FormatedString}
343
	
344
    !macroend
345
    
346
 
347
!macro __TimeStamp UN
348

    
349

    
350
Function ${UN}__TimeStamp
351

    
352
    ClearErrors
353
    
354
    ## Store the needed Registers on the stack
355
    
356
        Push $0 ; Stack $0
357
	
358
        Push $1 ; Stack $1 $0
359
	
360
        Push $2 ; Stack $2 $1 $0
361
	
362
        Push $3 ; Stack $3 $2 $1 $0
363
	
364
        Push $4 ; Stack $4 $3 $2 $1 $0
365
	
366
        Push $5 ; Stack $5 $4 $3 $2 $1 $0
367
	
368
        Push $6 ; Stack $6 $5 $4 $3 $2 $1 $0
369
	
370
        Push $7 ; Stack $7 $6 $5 $4 $3 $2 $1 $0
371
	
372
        ;Push $8 ; Stack $8 $7 $6 $5 $4 $3 $2 $1 $0
373
	
374
 
375
    ## Call System API to get the current system Time
376
    
377
        System::Alloc 16
378
	
379
        Pop $0
380
	
381
        System::Call 'kernel32::GetLocalTime(i) i(r0)'
382
	
383
        System::Call '*$0(&i2, &i2, &i2, &i2, &i2, &i2, &i2, &i2)i (.r1, .r2, n, .r3, .r4, .r5, .r6, .r7)'
384
	
385
        System::Free $0
386
	
387
 
388
        IntFmt $2 "%02i" $2
389
	
390
        IntFmt $3 "%02i" $3
391
	
392
        IntFmt $4 "%02i" $4
393
	
394
        IntFmt $5 "%02i" $5
395
	
396
        IntFmt $6 "%02i" $6
397
	
398
 
399
    ## Generate Timestamp
400
    
401
        ;StrCpy $0 "YEAR=$1$\nMONTH=$2$\nDAY=$3$\nHOUR=$4$\nMINUITES=$5$\nSECONDS=$6$\nMS$7"
402
	
403
        StrCpy $0 "$1$2$3$4$5$6.$7"
404
	
405
 
406
    ## Restore the Registers and add Timestamp to the Stack
407
    
408
        ;Pop $8  ; Stack $7 $6 $5 $4 $3 $2 $1 $0
409
	
410
        Pop $7  ; Stack $6 $5 $4 $3 $2 $1 $0
411
	
412
        Pop $6  ; Stack $5 $4 $3 $2 $1 $0
413
	
414
        Pop $5  ; Stack $4 $3 $2 $1 $0
415
	
416
        Pop $4  ; Stack $3 $2 $1 $0
417
	
418
        Pop $3  ; Stack $2 $1 $0
419
	
420
        Pop $2  ; Stack $1 $0
421
	
422
        Pop $1  ; Stack $0
423
	
424
        Exch $0 ; Stack ${TimeStamp}
425
	
426
 
427
FunctionEnd
428

    
429
!macroend
430

    
431
!insertmacro __TimeStamp ""
432

    
433
!insertmacro __TimeStamp "un."
434

    
435
!endif
436

    
437
###########
438

    
439

    
440
Section "WriteInstallStamp" secStamp
441

    
442
	${TimeStamp} $0
443
	
444
	Push "$0"
445
	
446
	Push "$INSTDIR\STAMP" ;file to write to 
447
	
448
	Call WriteToFile
449
	
450
SectionEnd
451

    
452

    
453
Section "WriteInstallPrefs" secPrefs
454

    
455
	#we set the default preferences
456
	
457
	;!define pathToCqp "$INSTDIR\cwb\bin\win32\cqpserver.exe"
458
	
459
	;!define pathToCqpLib "$INSTDIR\cwb\bin\"
460
	
461
	;!define pathToInit "$INSTDIR\cwb\cqpserver.init"
462
	
463
	;!define pathToR "$INSTDIR\R\bin\x64\Rterm.exe"
464
	
465
	;!define pathToTT "$PROGRAMFILES\treetagger"
466
	
467
	;!define pathToTTMod "$PROGRAMFILES\treetagger\models"
468
	
469

    
470
	;FileOpen $4 "$INSTDIR\install.prefs" a
471
	
472
	;FileSeek $4 0 END
473
	
474
	;FileWrite $4 "$\r$\ncqi_server_path_to_cqplib=${pathToCqpLib}"
475
	
476
	;FileWrite $4 "$\r$\ncqi_server_path_to_executable=${pathToCqp}"
477
	
478
	;FileWrite $4 "$\r$\ncqi_server_path_to_init_file=${pathToInit}"
479
	
480
	;FileWrite $4 "$\r$\nr_path_to_executable=${pathToR}"
481
	
482
	;FileWrite $4 "$\r$\ntreetagger_install_path=${pathToTT}"
483
	
484
	;FileWrite $4 "$\r$\ntreetagger_models_path=${pathToTTMod}"
485
	
486
	;FileClose $4 ; and close the file
487
	
488
SectionEnd
489

    
490

    
491
;UninstallText "This will uninstall TXM"
492

    
493

    
494

    
495
;uninstaller section start
496

    
497
Section "Uninstall"
498

    
499
	SetShellVarContext all
500
	
501
	# Delete installation key
502
	
503
	DeleteRegKey /ifempty HKCU "Software\TXM${Version}"
504
	
505
	# Delete uninstaller key
506
	
507
	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}"
508
	
509
	# we remove the software
510
	
511
	RMDir /r $INSTDIR
512
	
513
	# second, remove the link from the start menu
514
	;Delete "$SMPROGRAMS\TXM${Version}\uninstall.lnk"
515
	
516
	RMDir /r "$SMPROGRAMS\TXM${Version}"
517
	
518
SectionEnd
519