Statistiques
| Révision :

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

Historique | Voir | Annoter | Télécharger (15,25 ko)

1
Unicode True
2

    
3
!include MUI2.nsh
4

    
5
!include nsDialogs.nsh
6

    
7
!include LogicLib.nsh
8

    
9
;general
10

    
11
Name "TXM TXMVERSION"
12

    
13
;!define Version ""
14
!define Version "-TXMVERSION"
15

    
16
OutFile "../TXM_TXMDATEVERSION_Win64_installer.exe"
17

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

    
20
RequestExecutionLevel admin
21

    
22
;compression
23

    
24
;SetCompressor /FINAL /SOLID lzma
25

    
26
;SetCompressorDictSize 64
27

    
28

    
29
;interface configuration
30

    
31
!define MUI_HEADERIMAGE
32

    
33
!define MUI_HEADERIMAGE_RIGHT
34

    
35
!define MUI_HEADERIMAGE_BITMAP "header.bmp"
36

    
37
!define MUI_HEADERIMAGE_UNBITMAP "header.bmp"
38

    
39
!define MUI_ICON "install.ico"
40

    
41
!define MUI_UNICON "uninstall.ico"
42

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

    
45

    
46
;Welcome conf
47

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

    
50
!define MUI_WELCOMEPAGE_TITLE $(WelcomeTitleMessage)
51

    
52
!define MUI_WELCOMEPAGE_TEXT $(WelcomeTextMessage)
53

    
54

    
55
;Finish conf
56

    
57
!define MUI_FINISHPAGE_TITLE $(FinishTitleMessage)
58

    
59
!define MUI_FINISHPAGE_TEXT $(FinishTextMessage)
60

    
61

    
62
;pages
63

    
64

    
65
!insertmacro MUI_PAGE_WELCOME
66

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

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

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

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

    
81
	nsDialogs::Create 1018
82
	Pop $Dialog
83

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

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

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

    
98
	nsDialogs::Show
99
FunctionEnd
100

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

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

    
110
  ${NSD_GetState} $Checkbox2 $CheckState2
111

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

    
119

    
120
!insertmacro MUI_PAGE_INSTFILES
121

    
122
!insertmacro MUI_UNPAGE_CONFIRM
123

    
124
!insertmacro MUI_UNPAGE_INSTFILES
125

    
126
!insertmacro MUI_PAGE_FINISH
127

    
128

    
129
;Languages
130

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

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

    
140
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)."
141

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

    
144
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"
145

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

    
148
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'."
149

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

    
152
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."
153

    
154
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?"
155

    
156
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?"
157

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

    
160

    
161
;Lang Strings FRENCH
162
LangString AdvancedOptionsTitle ${LANG_FRENCH} "Options avanc?es"
163
LangString AdvancedOptionsSubTitle ${LANG_FRENCH} "Ne cocher ces options que pour des configurations Windows particuli?res"
164
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)."
165

    
166
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)."
167

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

    
170
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"
171

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

    
174
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'."
175

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

    
178
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'."
179

    
180
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 ?"
181

    
182
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 ?"
183

    
184
LangString UninstallWindowsMessage ${LANG_FRENCH} "TXM TXMVERSION 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 TXMVERSION n'est pas en cours d'ex?cution pendant l'installation."
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 configuration
231
File /r doc
232
File /r features
233
File /r jre
234
File /r p2
235
File /r plugins
236
File /r readme
237
File /r redist
238
File /r samples
239
File artifacts.xml
240
File cqpjni.dll
241
File header.bmp
242
File IEShims.dll
243
File install.ico
244
File libcharset-1.dll
245
File libglib-2.0-0.dll
246
File libgnurx-0.dll
247
File libiconv-2.dll
248
File libintl-8.dll
249
File libpcre-1.dll
250
File LICENSE.TXT
251
File license_agreement.txt
252
File license_agreement_fr.txt
253
File LICENSE_FR.TXT
254
File OpenAppDataDirectory.bat
255
File pcre3.dll
256
File StartDialog.jar
257
File TXM.bat
258
File launcher.exe
259
File TXM.ico
260
File launcher.ini
261
File "TXM debug.bat"
262
File uninstall.ico
263
	
264
	# hide TXM.exe
265
	SetFileAttributes "$INSTDIR/TXM.exe" HIDDEN
266
	
267
	# the users right on install dir to enable updates
268
	
269
	AccessControl::GrantOnFile "$INSTDIR\TXM" "(S-1-5-32-545)" "FullAccess"
270
	
271
	#we set the shortcuts
272
	
273
	SetShellVarContext all
274
	
275
	CreateDirectory "$SMPROGRAMS\TXM${Version}"
276
	
277
	CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM${Version}.lnk" "$INSTDIR\TXM.bat" "" "$INSTDIR\TXM.ico" 0
278
	CreateShortCut "$SMPROGRAMS\TXM${Version}\TXM${Version} debug.lnk" "$INSTDIR\TXM debug.bat" "" "$INSTDIR\TXM.ico" 0
279
	CreateShortCut "$SMPROGRAMS\TXM${Version}\uninstall TXM${Version}.lnk" "$INSTDIR\uninstall.exe"
280
	#CreateShortCut "$SMPROGRAMS\TXM${Version}\Manuel utilisateur FR.pdf.lnk" "$INSTDIR\doc\Manuel de TXM 0.7 FR.pdf"
281
	#CreateShortCut "$SMPROGRAMS\TXM${Version}\User Manual EN.pdf.lnk" "$INSTDIR\doc\TXM 0.7 Manual EN.pdf"
282
	
283

    
284
	; Store installation folder
285
	
286
	WriteRegStr HKCU "Software\TXM${Version}" "" $INSTDIR
287
	
288
	#register the TXM uninstall to windows programs
289
	
290
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
291
	
292
	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. "
293
	
294
	WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}" "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
295

    
296

    
297
	#we create the uninstaller
298
	
299
	WriteUninstaller "$INSTDIR\uninstall.exe"
300
	
301

    
302

    
303
SectionEnd
304

    
305
Function WriteToFile
306

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

    
327

    
328
### TimeStamp
329

    
330
!ifndef TimeStamp
331

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

    
353

    
354
Function ${UN}__TimeStamp
355

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

    
433
!macroend
434

    
435
!insertmacro __TimeStamp ""
436

    
437
!insertmacro __TimeStamp "un."
438

    
439
!endif
440

    
441
###########
442

    
443

    
444
Section "WriteInstallStamp" secStamp
445

    
446
	${TimeStamp} $0
447
	
448
	Push "$0"
449
	
450
	Push "$INSTDIR\STAMP" ;file to write to 
451
	
452
	Call WriteToFile
453
	
454
SectionEnd
455

    
456

    
457
Section "WriteInstallPrefs" secPrefs
458

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

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

    
494

    
495
;UninstallText "This will uninstall TXM"
496

    
497

    
498

    
499
;uninstaller section start
500

    
501
Section "Uninstall"
502

    
503
	SetShellVarContext all
504
	
505
	# Delete installation key
506
	
507
	DeleteRegKey /ifempty HKCU "Software\TXM${Version}"
508
	
509
	# Delete uninstaller key
510
	
511
	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\TXM${Version}"
512
	
513
	# we remove the software
514
	
515
	RMDir /r $INSTDIR
516
	
517
	RMDir /r "$SMPROGRAMS\TXM${Version}"
518
	
519
SectionEnd
520