]> git.sesse.net Git - vlc/blob - extras/package/win32/vlc.win32.nsi.in
36590288dace0b0268100ab2681795d472571be1
[vlc] / extras / package / win32 / vlc.win32.nsi.in
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; NSIS installer script for vlc ;
3 ; (http://nsis.sourceforge.net) ;
4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5
6 !include "languages\declaration.nsh"
7
8 !define PRODUCT_NAME "VLC media player"
9 !define VERSION @VERSION@
10 !define PRODUCT_VERSION @VERSION@
11 !define PRODUCT_GROUP "VideoLAN"
12 !define PRODUCT_PUBLISHER "VideoLAN"
13 !define PRODUCT_WEB_SITE "http://www.videolan.org/"
14 !define PRODUCT_DIR_REGKEY "Software\VideoLAN\VLC"
15 !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
16 !define PRODUCT_UNINST_ROOT_KEY "HKLM"
17 !define PRODUCT_ID "{ea92ef52-afe4-4212-bacb-dfe9fca94cd6}"
18
19 !define MUI_LANGDLL_REGISTRY_ROOT "HKLM"
20 !define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_DIR_REGKEY}"
21 !define MUI_LANGDLL_REGISTRY_VALUENAME "Language"
22
23 @BUILD_ACTIVEX_TRUE@ !define INSTALL_ACTIVEX
24 @BUILD_MOZILLA_TRUE@ !define INSTALL_MOZILLA
25
26 @FILE_LIBVLCCORE_DLL@
27 @FILE_LIBVLC_DLL@
28
29 ;;;;;;;;;;;;;;;;;;;;;;;;;
30 ; General configuration ;
31 ;;;;;;;;;;;;;;;;;;;;;;;;;
32
33 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
34 OutFile ..\vlc-${VERSION}-win32.exe
35 InstallDir "$PROGRAMFILES\VideoLAN\VLC"
36 InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
37 !ifdef NSIS_LZMA_COMPRESS_WHOLE
38 SetCompressor lzma
39 !else
40 SetCompressor /SOLID lzma
41 !endif
42
43 SetOverwrite ifnewer
44 CRCCheck on
45 BrandingText "${PRODUCT_GROUP} ${PRODUCT_NAME}"
46
47 InstType $Name_InstTypeRecommended
48 InstType $Name_InstTypeMinimum
49 InstType $Name_InstTypeFull
50
51 RequestExecutionLevel user
52 !addincludedir NSIS
53 !addplugindir NSIS
54 !include UAC.nsh
55
56 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
57 ; NSIS Modern User Interface configuration ;
58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
59
60 ; MUI 1.67 compatible ------
61   !include "MUI.nsh"
62
63 ; MUI Settings
64   !define MUI_ABORTWARNING
65   !define MUI_ICON "vlc.ico"
66   !define MUI_UNICON "vlc.ico"
67   !define MUI_COMPONENTSPAGE_SMALLDESC
68
69 ; Installer pages
70   ; Welcome page
71     !define MUI_WELCOMEPAGE_TITLE_3LINES
72     !insertmacro MUI_PAGE_WELCOME
73   ; License page
74     !define MUI_LICENSEPAGE_BUTTON $(^NextBtn)
75     !insertmacro MUI_PAGE_LICENSE "COPYING.txt"
76   ; Components page
77     !insertmacro MUI_PAGE_COMPONENTS
78   ; Directory page
79     !insertmacro MUI_PAGE_DIRECTORY
80   ; Instfiles page
81     !insertmacro MUI_PAGE_INSTFILES
82   ; Finish page
83
84     Function ExecAppFile
85       Exec '$INSTDIR\vlc.exe'
86     FunctionEnd
87
88     Function AppRunAs
89       !insertmacro UAC.CallFunctionAsUser ExecAppFile
90     FunctionEnd
91
92     !define MUI_FINISHPAGE_RUN
93     !define MUI_FINISHPAGE_RUN_FUNCTION AppRunAs
94     !define MUI_FINISHPAGE_LINK $Link_VisitWebsite
95     !define MUI_FINISHPAGE_LINK_LOCATION "http://www.videolan.org/vlc/"
96     !define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\README.txt"
97     !define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
98     !define MUI_FINISHPAGE_NOREBOOTSUPPORT
99     !insertmacro MUI_PAGE_FINISH
100
101 ; Uninstaller pages
102     !insertmacro MUI_UNPAGE_CONFIRM
103     !insertmacro MUI_UNPAGE_COMPONENTS
104     !insertmacro MUI_UNPAGE_INSTFILES
105     !insertmacro MUI_UNPAGE_FINISH
106
107 ; Language files
108   !insertmacro MUI_LANGUAGE "English" # first language is the default language
109   !insertmacro MUI_LANGUAGE "French"
110   !insertmacro MUI_LANGUAGE "German"
111   !insertmacro MUI_LANGUAGE "Spanish"
112   !insertmacro MUI_LANGUAGE "SimpChinese"
113   !insertmacro MUI_LANGUAGE "TradChinese"
114   !insertmacro MUI_LANGUAGE "Japanese"
115   !insertmacro MUI_LANGUAGE "Korean"
116   !insertmacro MUI_LANGUAGE "Italian"
117   !insertmacro MUI_LANGUAGE "Dutch"
118   !insertmacro MUI_LANGUAGE "Danish"
119   !insertmacro MUI_LANGUAGE "Swedish"
120   !insertmacro MUI_LANGUAGE "Norwegian"
121   !insertmacro MUI_LANGUAGE "Finnish"
122   !insertmacro MUI_LANGUAGE "Greek"
123   !insertmacro MUI_LANGUAGE "Russian"
124   !insertmacro MUI_LANGUAGE "Portuguese"
125   !insertmacro MUI_LANGUAGE "PortugueseBR"
126   !insertmacro MUI_LANGUAGE "Arabic"
127   !insertmacro MUI_LANGUAGE "Polish"
128   !insertmacro MUI_LANGUAGE "Romanian"
129   !insertmacro MUI_LANGUAGE "Slovak"
130   !insertmacro MUI_LANGUAGE "Czech"
131   !insertmacro MUI_LANGUAGE "Hungarian"
132   !insertmacro MUI_LANGUAGE "Catalan"
133   !insertmacro MUI_LANGUAGE "Bulgarian"
134
135 ; Reserve files for solid compression
136   !insertmacro MUI_RESERVEFILE_LANGDLL
137   !insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
138
139 ; MUI end ------
140
141 ;;;;;;;;;;;;;;;;;;;;;;;
142 ; Macro and Functions ;
143 ;;;;;;;;;;;;;;;;;;;;;;;
144
145 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
146 ; 1. File type associations ;
147 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
148
149 ;; Function that register one extension for VLC
150 Function RegisterExtension
151   ; back up old value for extension $R0 (eg. ".opt")
152   ReadRegStr $1 HKCR "$R0" ""
153   StrCmp $1 "" NoBackup
154     StrCmp $1 "VLC$R0" "NoBackup"
155     WriteRegStr HKCR "$R0" "VLC.backup" $1
156 NoBackup:
157   WriteRegStr HKCR "$R0" "" "VLC$R0"
158   ReadRegStr $0 HKCR "VLC$R0" ""
159   WriteRegStr HKCR "VLC$R0" "" "VLC media file ($R0)"
160   WriteRegStr HKCR "VLC$R0\shell" "" "Open"
161   WriteRegStr HKCR "VLC$R0\shell\Open" "" $ShellAssociation_Play
162   WriteRegStr HKCR "VLC$R0\shell\Open\command" "" '"$INSTDIR\vlc.exe" --started-from-file "%1"'
163   WriteRegStr HKCR "VLC$R0\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
164
165 ;;; Vista Only part
166   ; Vista and above detection
167   ReadRegStr $R1 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
168   StrCpy $R2 $R1 1
169   StrCmp $R2 '6' ForVista ToEnd
170 ForVista:
171   WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations" "$R0" "VLC$R0"
172
173 ToEnd:
174 FunctionEnd
175
176 ;; Function that removes one extension that VLC owns.
177 Function un.RegisterExtension
178   ;start of restore script
179   ReadRegStr $1 HKCR "$R0" ""
180   StrCmp $1 "VLC$R0" 0 NoOwn ; only do this if we own it
181     ; Read the old value from Backup
182     ReadRegStr $1 HKCR "$R0" "VLC.backup"
183     StrCmp $1 "" 0 Restore ; if backup="" then delete the whole key
184       DeleteRegKey HKCR "$R0"
185     Goto NoOwn
186 Restore:
187       WriteRegStr HKCR "$R0" "" $1
188       DeleteRegValue HKCR "$R0" "VLC.backup"
189 NoOwn:
190     DeleteRegKey HKCR "VLC$R0" ;Delete key with association settings
191     DeleteRegKey HKLM "Software\Clients\Media\VLC\Capabilities\FileAssociations\VLC$R0" ; for vista
192 FunctionEnd
193
194 !macro RegisterExtensionSection EXT
195   Section ${EXT}
196     SectionIn 1 3
197     Push $R0
198     StrCpy $R0 ${EXT}
199     Call RegisterExtension
200     Pop $R0
201   SectionEnd
202 !macroend
203
204 !macro UnRegisterExtensionSection EXT
205   Push $R0
206   StrCpy $R0 ${EXT}
207   Call un.RegisterExtension
208   Pop $R0
209 !macroend
210
211 !macro WriteRegStrSupportedTypes EXT
212   WriteRegStr HKCR Applications\vlc.exe\SupportedTypes ${EXT} ""
213 !macroend
214
215 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
216 ; Extension lists  Macros                    ;
217 ; Those macros calls the previous functions  ;
218 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
219
220 !macro MacroAudioExtensions _action
221   !insertmacro ${_action} ".a52"
222   !insertmacro ${_action} ".aac"
223   !insertmacro ${_action} ".ac3"
224   !insertmacro ${_action} ".aob"
225   !insertmacro ${_action} ".dts"
226   !insertmacro ${_action} ".flac"
227   !insertmacro ${_action} ".m4a"
228   !insertmacro ${_action} ".m4p"
229   !insertmacro ${_action} ".mka"
230   !insertmacro ${_action} ".mod"
231   !insertmacro ${_action} ".mp1"
232   !insertmacro ${_action} ".mp2"
233   !insertmacro ${_action} ".mp3"
234   !insertmacro ${_action} ".oma"
235   !insertmacro ${_action} ".oga"
236   !insertmacro ${_action} ".spx"
237   !insertmacro ${_action} ".tta"
238   !insertmacro ${_action} ".wav"
239   !insertmacro ${_action} ".wma"
240   !insertmacro ${_action} ".wv"
241   !insertmacro ${_action} ".xm"
242 !macroend
243
244 !macro MacroVideoExtensions _action
245   !insertmacro ${_action} ".asf"
246   !insertmacro ${_action} ".avi"
247   !insertmacro ${_action} ".divx"
248   !insertmacro ${_action} ".dv"
249   !insertmacro ${_action} ".flv"
250   !insertmacro ${_action} ".gxf"
251   !insertmacro ${_action} ".m1v"
252   !insertmacro ${_action} ".m2v"
253   !insertmacro ${_action} ".m2ts"
254   !insertmacro ${_action} ".m4v"
255   !insertmacro ${_action} ".mkv"
256   !insertmacro ${_action} ".mov"
257   !insertmacro ${_action} ".mp4"
258   !insertmacro ${_action} ".mpeg"
259   !insertmacro ${_action} ".mpeg1"
260   !insertmacro ${_action} ".mpeg2"
261   !insertmacro ${_action} ".mpeg4"
262   !insertmacro ${_action} ".mpg"
263   !insertmacro ${_action} ".mts"
264   !insertmacro ${_action} ".mxf"
265   !insertmacro ${_action} ".nuv"
266   !insertmacro ${_action} ".ogg"
267   !insertmacro ${_action} ".ogm"
268   !insertmacro ${_action} ".ogx"
269   !insertmacro ${_action} ".ogv"
270   !insertmacro ${_action} ".rmvb"
271   !insertmacro ${_action} ".ts"
272   !insertmacro ${_action} ".vob"
273   !insertmacro ${_action} ".vro"
274   !insertmacro ${_action} ".webm"
275   !insertmacro ${_action} ".wmv"
276 !macroend
277
278 !macro MacroOtherExtensions _action
279   !insertmacro ${_action} ".asx"
280   !insertmacro ${_action} ".bin"
281   !insertmacro ${_action} ".cue"
282   !insertmacro ${_action} ".ifo"
283   !insertmacro ${_action} ".m3u"
284   !insertmacro ${_action} ".pls"
285   !insertmacro ${_action} ".sdp"
286   !insertmacro ${_action} ".vlc"
287   !insertmacro ${_action} ".xspf"
288 !macroend
289
290 ; One macro to rule them all
291 !macro MacroAllExtensions _action
292   !insertmacro MacroAudioExtensions ${_action}
293   !insertmacro MacroVideoExtensions ${_action}
294   !insertmacro MacroOtherExtensions ${_action}
295 !macroend
296
297 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
298 ; 2. Context menu entries ;
299 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
300
301 ; Generic function for adding the context menu for one ext.
302 !macro AddContextMenuExt EXT
303   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC "" $ContextMenuEntry_PlayWith
304   WriteRegStr HKCR ${EXT}\shell\PlayWithVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --no-playlist-enqueue "%1"'
305
306   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC "" $ContextMenuEntry_AddToPlaylist
307   WriteRegStr HKCR ${EXT}\shell\AddToPlaylistVLC\command "" '"$INSTDIR\vlc.exe" --started-from-file --playlist-enqueue "%1"'
308 !macroend
309
310 !macro AddContextMenu EXT
311   Push $R0
312   ReadRegStr $R0 HKCR ${EXT} ""
313   !insertmacro AddContextMenuExt $R0
314   Pop $R0
315 !macroend
316
317 !macro DeleteContextMenuExt EXT
318   DeleteRegKey HKCR ${EXT}\shell\PlayWithVLC
319   DeleteRegKey HKCR ${EXT}\shell\AddToPlaylistVLC
320 !macroend
321
322 !macro DeleteContextMenu EXT
323   Push $R0
324   ReadRegStr $R0 HKCR ${EXT} ""
325   !insertmacro DeleteContextMenuExt $R0
326   Pop $R0
327 !macroend
328
329 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
330 ; 3. Delete prefs           ;
331 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
332
333 !macro delprefs
334   StrCpy $0 0
335   !define Index 'Line${__LINE__}'
336   "${Index}-Loop:"
337   ; FIXME
338   ; this will loop through all the logged users and "virtual" windows users
339   ; (it looks like users are only present in HKEY_USERS when they are logged in)
340     ClearErrors
341     EnumRegKey $1 HKU "" $0
342     StrCmp $1 "" "${Index}-End"
343     IntOp $0 $0 + 1
344     ReadRegStr $2 HKU "$1\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" AppData
345     StrCmp $2 "" "${Index}-Loop"
346     RMDir /r "$2\vlc"
347     Goto "${Index}-Loop"
348   "${Index}-End:"
349   !undef Index
350 !macroend
351
352 ;;;;;;;;;;;;;;;
353 ; 4. Logging  ;
354 ;;;;;;;;;;;;;;;
355 Var UninstallLog
356 !macro OpenUninstallLog
357   FileOpen $UninstallLog "$INSTDIR\uninstall.log" a
358   FileSeek $UninstallLog 0 END
359 !macroend
360
361 !macro CloseUninstallLog
362   FileClose $UninstallLog
363   SetFileAttributes "$INSTDIR\uninstall.log" HIDDEN
364 !macroend
365
366 ;;;;;;;;;;;;;;;;;;;;
367 ; 5. Installations ;
368 ;;;;;;;;;;;;;;;;;;;;
369 !macro InstallFile FILEREGEX
370   File "${FILEREGEX}"
371   !define Index 'Line${__LINE__}'
372   FindFirst $0 $1 "$INSTDIR\${FILEREGEX}"
373   StrCmp $0 "" "${Index}-End"
374   "${Index}-Loop:"
375     StrCmp $1 "" "${Index}-End"
376     FileWrite $UninstallLog "$1$\r$\n"
377     FindNext $0 $1
378     Goto "${Index}-Loop"
379   "${Index}-End:"
380   !undef Index
381 !macroend
382
383 !macro InstallFolder FOLDER
384   File /r "${FOLDER}"
385   Push "${FOLDER}"
386   Call InstallFolderInternal
387 !macroend
388
389 Function InstallFolderInternal
390   Pop $9
391   !define Index 'Line${__LINE__}'
392   FindFirst $0 $1 "$INSTDIR\$9\*"
393   StrCmp $0 "" "${Index}-End"
394   "${Index}-Loop:"
395     StrCmp $1 "" "${Index}-End"
396     StrCmp $1 "." "${Index}-Next"
397     StrCmp $1 ".." "${Index}-Next"
398     IfFileExists "$9\$1\*" 0 "${Index}-Write"
399       Push $0
400       Push $9
401       Push "$9\$1"
402       Call InstallFolderInternal
403       Pop $9
404       Pop $0
405       Goto "${Index}-Next"
406     "${Index}-Write:"
407     FileWrite $UninstallLog "$9\$1$\r$\n"
408     "${Index}-Next:"
409     FindNext $0 $1
410     Goto "${Index}-Loop"
411   "${Index}-End:"
412   !undef Index
413 FunctionEnd
414 ;;; End of Macros
415
416
417 ;;;;;;;;;;;;;;;;;;;;;;
418 ; Installer sections ;
419 ; The CORE of the    ;
420 ; installer          ;
421 ;;;;;;;;;;;;;;;;;;;;;;
422
423 Section $Name_Section01 SEC01
424   SectionIn 1 2 3 RO
425   SetShellVarContext all
426   SetOutPath "$INSTDIR"
427
428   !insertmacro OpenUninstallLog
429
430   ; VLC.exe, libvlc.dll
431   !insertmacro InstallFile vlc.exe
432   !insertmacro InstallFile vlc.exe.manifest
433   !insertmacro InstallFile vlc-cache-gen.exe
434
435   ; All dlls
436   !insertmacro InstallFile *.dll
437
438   ; Text files
439   !insertmacro InstallFile *.txt
440
441   ; Subfolders
442   !insertmacro InstallFolder plugins
443   !insertmacro InstallFolder locale
444 @BUILD_OSDMENU_TRUE@ !insertmacro InstallFolder osdmenu
445 @BUILD_SKINS_TRUE@   !insertmacro InstallFolder skins
446 @BUILD_HTTPD_TRUE@   !insertmacro InstallFolder http
447 @BUILD_LUA_TRUE@     !insertmacro InstallFolder lua
448
449   ; Generate the cache and add it to uninstall.log
450   ExecWait "$INSTDIR\vlc-cache-gen.exe $INSTDIR\plugins"
451   FindFirst $0 $1 "$INSTDIR\plugins\*.dat"
452   FileWrite $UninstallLog "plugins\$1$\r$\n"
453   FindClose $0
454
455
456
457   ; URLs
458   WriteIniStr "$INSTDIR\${PRODUCT_GROUP} Website.url" "InternetShortcut" "URL" \
459     "${PRODUCT_WEB_SITE}"
460   FileWrite $UninstallLog "${PRODUCT_GROUP} Website.url$\r$\n"
461   WriteIniStr "$INSTDIR\Documentation.url" "InternetShortcut" "URL" \
462     "${PRODUCT_WEB_SITE}/doc/"
463   FileWrite $UninstallLog "Documentation.url$\r$\n"
464   WriteIniStr "$INSTDIR\New_Skins.url" "InternetShortcut" "URL" \
465     "${PRODUCT_WEB_SITE}/vlc/skins.php"
466   FileWrite $UninstallLog "New_Skins.url$\r$\n"
467
468   !insertmacro CloseUninstallLog
469
470   ; Add VLC to "recommended programs" for the following extensions
471   WriteRegStr HKCR Applications\vlc.exe "" ""
472   WriteRegStr HKCR Applications\vlc.exe "FriendlyAppName" "VLC media player"
473   WriteRegStr HKCR Applications\vlc.exe\shell\Open "" $ContextMenuEntry_PlayWith
474   WriteRegStr HKCR Applications\vlc.exe\shell\Open\command "" \
475     '"$INSTDIR\vlc.exe" --started-from-file "%1"'
476   !insertmacro MacroAllExtensions WriteRegStrSupportedTypes
477
478 ; Windows default programs Registration
479   ; Vista and above detection
480   ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
481   StrCpy $R1 $R0 1
482   StrCmp $R1 '6' lbl_vista lbl_done
483
484   lbl_vista:
485   WriteRegStr HKLM "Software\RegisteredApplications" "VLC" "Software\Clients\Media\VLC\Capabilities"
486   WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationName" "VLC media player"
487   WriteRegStr HKLM "Software\Clients\Media\VLC\Capabilities" "ApplicationDescription" "VLC - The video swiss knife"
488   WriteRegStr HKLM "Software\Clients\Media\VLC" "" "VLC media player"
489   WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "HideIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /HideIcons /S"
490   WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ShowIconsCommand" "$\"$INSTDIR\spad-setup.exe$\" /ShowIcons /S"
491   WriteRegStr HKLM "Software\Clients\Media\VLC\InstallInfo" "ReinstallCommand" "$\"$INSTDIR\spad-setup.exe$\" /Reinstall /S"
492   WriteRegDWORD HKLM "Software\Clients\Media\VLC\InstallInfo" "IconsVisible" 0x001
493
494   lbl_done:
495 SectionEnd
496
497 Section $Name_Section02a SEC02a
498   SectionIn 1 2 3
499   CreateDirectory "$SMPROGRAMS\VideoLAN"
500   CreateShortCut "$SMPROGRAMS\VideoLAN\Reset VLC media player preferences and cache files.lnk" \
501     "$INSTDIR\vlc.exe" "--reset-config --reset-plugins-cache vlc://quit"
502   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player.lnk" \
503     "$INSTDIR\vlc.exe" ""
504   CreateShortCut "$SMPROGRAMS\VideoLAN\VLC media player skinned.lnk" \
505     "$INSTDIR\vlc.exe" "-Iskins"
506   CreateShortCut "$SMPROGRAMS\VideoLAN\Documentation.lnk" \
507     "$INSTDIR\Documentation.url"
508   CreateShortCut "$SMPROGRAMS\VideoLAN\Release Notes.lnk" \
509     "$INSTDIR\NEWS.txt" ""
510   CreateShortCut "$SMPROGRAMS\VideoLAN\${PRODUCT_GROUP} Website.lnk" \
511     "$INSTDIR\${PRODUCT_GROUP} Website.url"
512 SectionEnd
513
514 Section $Name_Section02b SEC02b
515   SectionIn 1 2 3
516   CreateShortCut "$DESKTOP\VLC media player.lnk" \
517     "$INSTDIR\vlc.exe" ""
518 SectionEnd
519
520 !ifdef INSTALL_MOZILLA
521 Section /o $Name_Section03 SEC03
522   SectionIn 3
523
524   SetOutPath "$INSTDIR"
525   !insertmacro OpenUninstallLog
526   !insertmacro InstallFile mozilla\npvlc.dll
527   !insertmacro InstallFile mozilla\npvlc.dll.manifest
528   !insertmacro CloseUninstallLog
529
530   !define Moz "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
531   WriteRegStr HKLM ${Moz} "Description" "VLC Multimedia Plugin"
532   WriteRegStr HKLM ${Moz} "Path" "$INSTDIR\npvlc.dll"
533   WriteRegStr HKLM ${Moz} "Product" "VLC media player"
534   WriteRegStr HKLM ${Moz} "Vendor" "VideoLAN"
535   WriteRegStr HKLM ${Moz} "Version" "${VERSION}"
536 SectionEnd
537 !endif
538
539 !ifdef INSTALL_ACTIVEX
540 Section $Name_Section04 SEC04
541   SectionIn 3
542
543   SetOutPath "$INSTDIR"
544   !insertmacro OpenUninstallLog
545   !insertmacro InstallFile activex\axvlc.dll
546   !insertmacro InstallFile activex\axvlc.dll.manifest
547   !insertmacro CloseUninstallLog
548   RegDLL "$INSTDIR\axvlc.dll"
549 SectionEnd
550 !endif
551
552
553 Section $Name_Section05 SEC05
554   SectionIn 1 2 3
555   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
556   WriteRegStr HKCR "AudioCD\shell\PlayWithVLC\command" "" \
557     '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
558   WriteRegStr HKCR "DVD\shell\PlayWithVLC" "" $ContextMenuEntry_PlayWith
559   WriteRegStr HKCR "DVD\shell\PlayWithVLC\command" "" \
560     '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
561
562   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival" ""
563   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Action" $Action_OnArrivalDVD
564   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
565   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeProgID" "VLC.DVDMovie"
566   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "InvokeVerb" "Open"
567   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival" "Provider" "VideoLAN VLC media player"
568
569   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival" ""
570   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Action" $Action_OnArrivalAudioCD
571   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "DefaultIcon" '"$INSTDIR\vlc.exe",0'
572   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeProgID" "VLC.CDAudio"
573   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "InvokeVerb" "Open"
574   WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival" "Provider" "VideoLAN VLC media player"
575   WriteRegStr HKCR "VLC.DVDMovie" "" "VLC DVD Movie"
576   WriteRegStr HKCR "VLC.DVDMovie\shell" "" "Open"
577   WriteRegStr HKCR "VLC.DVDMovie\shell\Open\command" "" \
578     '"$INSTDIR\vlc.exe" --started-from-file dvd://%1'
579   WriteRegStr HKCR "VLC.DVDMovie\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
580   WriteRegStr HKCR "VLC.CDAudio" "" "VLC CD Audio"
581   WriteRegStr HKCR "VLC.CDAudio\shell" "" "Open"
582   WriteRegStr HKCR "VLC.CDAudio\shell\Open\command" "" \
583     '"$INSTDIR\vlc.exe" --started-from-file cdda://%1'
584   WriteRegStr HKCR "VLC.CDAudio\DefaultIcon" "" '"$INSTDIR\vlc.exe",0'
585
586 SectionEnd
587
588
589 SectionGroup /e !$Name_Section06 SEC06
590   SectionGroup $Name_SectionGroupAudio
591     !insertmacro MacroAudioExtensions RegisterExtensionSection
592   SectionGroupEnd
593   SectionGroup $Name_SectionGroupVideo
594     !insertmacro MacroVideoExtensions RegisterExtensionSection
595   SectionGroupEnd
596   SectionGroup $Name_SectionGroupOther
597     !insertmacro MacroOtherExtensions RegisterExtensionSection
598   SectionGroupEnd
599 SectionGroupEnd
600
601 Section $Name_Section07 SEC07
602   SectionIn 1 3
603   !insertmacro MacroAllExtensions AddContextMenu
604   !insertmacro AddContextMenuExt "Directory"
605 SectionEnd
606
607 Section $Name_Section08 SEC08
608   !insertmacro delprefs
609 SectionEnd
610
611 ; Installer section descriptions
612 !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
613   !insertmacro MUI_DESCRIPTION_TEXT ${SEC01} $Desc_Section01
614   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02a} $Desc_Section02a
615   !insertmacro MUI_DESCRIPTION_TEXT ${SEC02b} $Desc_Section02b
616 @BUILD_MOZILLA_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC03} $Desc_Section03
617 @BUILD_ACTIVEX_TRUE@ !insertmacro MUI_DESCRIPTION_TEXT ${SEC04} $Desc_Section04
618   !insertmacro MUI_DESCRIPTION_TEXT ${SEC05} $Desc_Section05
619   !insertmacro MUI_DESCRIPTION_TEXT ${SEC06} $Desc_Section06
620   !insertmacro MUI_DESCRIPTION_TEXT ${SEC07} $Desc_Section07
621   !insertmacro MUI_DESCRIPTION_TEXT ${SEC08} $Desc_Section08
622 !insertmacro MUI_FUNCTION_DESCRIPTION_END
623
624 ;;; Start function
625 Function .onInit
626
627 UAC_Elevate:
628     UAC::RunElevated
629     StrCmp 1223 $0 UAC_ElevationAborted
630     StrCmp 0 $0 0 UAC_Err
631     StrCmp 1 $1 0 UAC_Success
632     Quit
633
634 UAC_Err:
635     MessageBox mb_iconstop "Unable to elevate, error $0"
636     Abort
637
638 UAC_ElevationAborted:
639     MessageBox mb_iconstop "This installer requires admin access, aborting!"
640     Abort
641
642 UAC_Success:
643     StrCmp 1 $3 +4
644     StrCmp 3 $1 0 UAC_ElevationAborted
645     MessageBox mb_iconstop "This installer requires admin access, try again"
646     goto UAC_Elevate
647   !insertmacro MUI_LANGDLL_DISPLAY
648
649   !include "languages\english.nsh"
650   StrCmp $LANGUAGE ${LANG_FRENCH} French 0
651   StrCmp $LANGUAGE ${LANG_GERMAN} German 0
652   StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
653   StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
654   StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
655   StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
656   StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
657   StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
658   StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
659   StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
660   StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
661   StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
662   StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0
663 ;  StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0
664 ;  StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0
665 ;  StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0
666   StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0
667   StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
668   French:
669   !include "languages\french.nsh"
670   Goto EndLanguageCmp
671   German:
672   !include "languages\german.nsh"
673   Goto EndLanguageCmp
674   Italian:
675   !include "languages\italian.nsh"
676   Goto EndLanguageCmp
677   Hungarian:
678   !include "languages\hungarian.nsh"
679   Goto EndLanguageCmp
680   Romanian:
681   !include "languages\romanian.nsh"
682   Goto EndLanguageCmp
683   Catalan:
684   !include "languages\catalan.nsh"
685   Goto EndLanguageCmp
686   Bulgarian:
687   !include "languages\bulgarian.nsh"
688   Goto EndLanguageCmp
689   Slovak:
690   !include "languages\slovak.nsh"
691   Goto EndLanguageCmp
692   Polish:
693   !include "languages\polish.nsh"
694   Goto EndLanguageCmp
695   Dutch:
696   !include "languages\dutch.nsh"
697   Goto EndLanguageCmp
698   Schinese:
699   !include "languages\schinese.nsh"
700   Goto EndLanguageCmp
701   Finnish:
702   !include "languages\finnish.nsh"
703   Goto EndLanguageCmp
704   Japanese:
705   !include "languages\japanese.nsh"
706   Goto EndLanguageCmp
707   Bengali:
708   !include "languages\bengali.nsh"
709   Goto EndLanguageCmp
710   Punjabi:
711   !include "languages\punjabi.nsh"
712   Goto EndLanguageCmp
713   Slovenian:
714   !include "languages\slovenian.nsh"
715   Goto EndLanguageCmp
716   Spanish:
717   !include "languages\spanish.nsh"
718   Goto EndLanguageCmp
719   Brazilian:
720   !include "languages\brazilian_portuguese.nsh"
721   EndLanguageCmp:
722
723   ReadRegStr $R0  ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
724   "UninstallString"
725   StrCmp $R0 "" done
726
727   MessageBox MB_YESNO|MB_ICONEXCLAMATION $Message_AlreadyInstalled IDNO done
728
729   ;Run the uninstaller
730   ;uninst:
731     ClearErrors
732     ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
733   done:
734
735 FunctionEnd
736
737 Function .OnInstFailed
738     UAC::Unload
739 FunctionEnd
740
741 Function .OnInstSuccess
742     UAC::Unload
743 FunctionEnd
744
745 ;; End function
746 Section -Post
747   WriteUninstaller "$INSTDIR\uninstall.exe"
748   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "InstallDir" $INSTDIR
749   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "Version" "${VERSION}"
750   WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\vlc.exe"
751
752   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
753     "DisplayName" "$(^Name)"
754   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
755     "UninstallString" "$INSTDIR\uninstall.exe"
756   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
757     "InstallLocation" "$INSTDIR"
758   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
759     "DisplayIcon" "$INSTDIR\vlc.exe"
760   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
761     "DisplayVersion" "${PRODUCT_VERSION}"
762   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
763     "URLInfoAbout" "${PRODUCT_WEB_SITE}"
764   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
765     "Publisher" "${PRODUCT_PUBLISHER}"
766   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
767     "VersionMajor"  "@VERSION_MAJOR@"
768   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" \
769     "VersionMinor" "@VERSION_MINOR@"
770 SectionEnd
771
772 ;;;;;;;;;;;;;;;;;;;;;;;;
773 ; Uninstaller sections ;
774 ;;;;;;;;;;;;;;;;;;;;;;;;
775
776 ; TrimNewlines (copied from NSIS documentation)
777 ; input, top of stack  (e.g. whatever$\r$\n)
778 ; output, top of stack (replaces, with e.g. whatever)
779 ; modifies no other variables.
780
781 Function un.TrimNewlines
782  Exch $R0
783  Push $R1
784  Push $R2
785  StrCpy $R1 0
786
787  loop:
788    IntOp $R1 $R1 - 1
789    StrCpy $R2 $R0 1 $R1
790    StrCmp $R2 "$\r" loop
791    StrCmp $R2 "$\n" loop
792    IntOp $R1 $R1 + 1
793    IntCmp $R1 0 no_trim_needed
794    StrCpy $R0 $R0 $R1
795
796  no_trim_needed:
797    Pop $R2
798    Pop $R1
799    Exch $R0
800 FunctionEnd
801
802 Function un.RemoveEmptyDirs
803   Pop $9
804   !define Index 'Line${__LINE__}'
805   FindFirst $0 $1 "$INSTDIR$9*"
806   StrCmp $0 "" "${Index}-End"
807   "${Index}-Loop:"
808     StrCmp $1 "" "${Index}-End"
809     StrCmp $1 "." "${Index}-Next"
810     StrCmp $1 ".." "${Index}-Next"
811       Push $0
812       Push $1
813       Push $9
814       Push "$9$1\"
815       Call un.RemoveEmptyDirs
816       Pop $9
817       Pop $1
818       Pop $0
819     "${Index}-Remove:"
820     RMDir "$INSTDIR$9$1"
821     "${Index}-Next:"
822     FindNext $0 $1
823     Goto "${Index}-Loop"
824   "${Index}-End:"
825   FindClose $0
826   !undef Index
827 FunctionEnd
828
829 Section "un.$Name_Section91" SEC91
830   SectionIn 1 2 3 RO
831   SetShellVarContext all
832
833   !insertmacro MacroAllExtensions DeleteContextMenu
834   !insertmacro MacroAllExtensions UnRegisterExtensionSection
835   !insertmacro DeleteContextMenuExt "Directory"
836
837   ;remove activex plugin
838   UnRegDLL "$INSTDIR\axvlc.dll"
839   Delete /REBOOTOK "$INSTDIR\axvlc.dll"
840   Delete /REBOOTOK "$INSTDIR\axvlc.dll.manifest"
841
842   ;remove mozilla plugin
843   Push $R0
844   Push $R1
845   Push $R2
846
847   !define Index 'Line${__LINE__}'
848   StrCpy $R1 "0"
849
850   "${Index}-Loop:"
851
852     ; Check for Key
853     EnumRegKey $R0 HKLM "SOFTWARE\Mozilla" "$R1"
854     StrCmp $R0 "" "${Index}-End"
855     IntOp $R1 $R1 + 1
856     ReadRegStr $R2 HKLM "SOFTWARE\Mozilla\$R0\Extensions" "Plugins"
857     StrCmp $R2 "" "${Index}-Loop" ""
858
859     ; old files (0.8.5 and before) that may be lying around
860     Delete /REBOOTOK "$R2\npvlc.dll"
861     Delete /REBOOTOK "$R2\libvlc.dll"
862     Delete /REBOOTOK "$R2\vlcintf.xpt"
863     Goto "${Index}-Loop"
864
865   "${Index}-End:"
866   !undef Index
867   Delete /REBOOTOK "$INSTDIR\npvlc.dll"
868   Delete /REBOOTOK "$INSTDIR\npvlc.dll.manifest"
869
870   RMDir "$SMPROGRAMS\VideoLAN"
871   RMDir /r $SMPROGRAMS\VideoLAN
872
873   FileOpen $UninstallLog "$INSTDIR\uninstall.log" r
874   UninstallLoop:
875     ClearErrors
876     FileRead $UninstallLog $R0
877     IfErrors UninstallEnd
878     Push $R0
879     Call un.TrimNewLines
880     Pop $R0
881     Delete "$INSTDIR\$R0"
882     Goto UninstallLoop
883   UninstallEnd:
884   FileClose $UninstallLog
885   Delete "$INSTDIR\uninstall.log"
886   Delete "$INSTDIR\uninstall.exe"
887   Push "\"
888   Call un.RemoveEmptyDirs
889   RMDir "$INSTDIR"
890
891   DeleteRegKey HKLM Software\VideoLAN
892
893   DeleteRegKey HKCR Applications\vlc.exe
894   DeleteRegKey HKCR AudioCD\shell\PlayWithVLC
895   DeleteRegKey HKCR DVD\shell\PlayWithVLC
896   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayDVDMovieOnArrival" "VLCPlayDVDMovieOnArrival"
897   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayDVDMovieOnArrival
898   DeleteRegValue HKLM "Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\EventHandlers\PlayCDAudioOnArrival" "VLCPlayCDAudioOnArrival"
899   DeleteRegKey HKLM Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers\VLCPlayCDAudioOnArrival
900   DeleteRegKey HKLM Software\Clients\Media\VLC
901   DeleteRegValue HKLM "Software\RegisteredApplications" "VLC"
902   DeleteRegKey HKCR "VLC.MediaFile"
903
904   DeleteRegKey HKLM \
905     "SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=${VERSION}"
906
907   DeleteRegKey HKLM \
908     "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
909
910   Delete "$DESKTOP\VLC media player.lnk"
911
912   DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
913   DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
914   SetAutoClose true
915 SectionEnd
916
917 Section /o "un.$Name_Section92" SEC92
918   !insertmacro delprefs
919 SectionEnd
920
921 ; Uninstaller section descriptions
922 !insertmacro MUI_UNFUNCTION_DESCRIPTION_BEGIN
923   !insertmacro MUI_DESCRIPTION_TEXT ${SEC91} $Desc_Section91
924   !insertmacro MUI_DESCRIPTION_TEXT ${SEC92} $Desc_Section92
925 !insertmacro MUI_UNFUNCTION_DESCRIPTION_END
926
927 Function un.OnUnInstFailed
928     UAC::Unload
929 FunctionEnd
930
931 Function un.OnUnInstSuccess
932     UAC::Unload
933     Delete "$INSTDIR\UAC.dll"
934 FunctionEnd
935
936 Function un.onInit
937
938 UAC_Elevate:
939     UAC::RunElevated
940     StrCmp 1223 $0 UAC_ElevationAborted
941     StrCmp 0 $0 0 UAC_Err
942     StrCmp 1 $1 0 UAC_Success
943     Quit
944
945 UAC_Err:
946     MessageBox mb_iconstop "Unable to elevate, error $0"
947     Abort
948
949 UAC_ElevationAborted:
950     MessageBox mb_iconstop "This installer requires admin access, aborting!"
951     Abort
952
953 UAC_Success:
954     StrCmp 1 $3 +4
955     StrCmp 3 $1 0 UAC_ElevationAborted
956     MessageBox mb_iconstop "This installer requires admin access, try again"
957     goto UAC_Elevate
958
959   !insertmacro MUI_UNGETLANGUAGE
960
961   !include "languages\english.nsh"
962   StrCmp $LANGUAGE ${LANG_FRENCH} French 0
963   StrCmp $LANGUAGE ${LANG_GERMAN} German 0
964   StrCmp $LANGUAGE ${LANG_ITALIAN} Italian 0
965   StrCmp $LANGUAGE ${LANG_HUNGARIAN} Hungarian 0
966   StrCmp $LANGUAGE ${LANG_ROMANIAN} Romanian 0
967   StrCmp $LANGUAGE ${LANG_CATALAN} Catalan 0
968   StrCmp $LANGUAGE ${LANG_BULGARIAN} Bulgarian 0
969   StrCmp $LANGUAGE ${LANG_SLOVAK} Slovak 0
970   StrCmp $LANGUAGE ${LANG_POLISH} Polish 0
971   StrCmp $LANGUAGE ${LANG_DUTCH} Dutch 0
972   StrCmp $LANGUAGE ${LANG_SIMPCHINESE} SChinese 0
973   StrCmp $LANGUAGE ${LANG_FINNISH} Finnish 0
974   StrCmp $LANGUAGE ${LANG_JAPANESE} Japanese 0
975 ;  StrCmp $LANGUAGE ${LANG_BENGALI} Bengali 0
976 ;  StrCmp $LANGUAGE ${LANG_PUNJABI} Punjabi 0
977 ;  StrCmp $LANGUAGE ${LANG_SLOVENIAN} Slovenian 0
978   StrCmp $LANGUAGE ${LANG_SPANISH} Spanish 0
979   StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} Brazilian EndLanguageCmp
980   French:
981   !include "languages\french.nsh"
982   Goto EndLanguageCmp
983   German:
984   !include "languages\german.nsh"
985   Goto EndLanguageCmp
986   Italian:
987   !include "languages\italian.nsh"
988   Goto EndLanguageCmp
989   Hungarian:
990   !include "languages\hungarian.nsh"
991   Goto EndLanguageCmp
992   Romanian:
993   !include "languages\romanian.nsh"
994   Goto EndLanguageCmp
995   Catalan:
996   !include "languages\catalan.nsh"
997   Goto EndLanguageCmp
998   Bulgarian:
999   !include "languages\bulgarian.nsh"
1000   Goto EndLanguageCmp
1001   Slovak:
1002   !include "languages\slovak.nsh"
1003   Goto EndLanguageCmp
1004   Polish:
1005   !include "languages\polish.nsh"
1006   Goto EndLanguageCmp
1007   Dutch:
1008   !include "languages\dutch.nsh"
1009   Goto EndLanguageCmp
1010   Schinese:
1011   !include "languages\schinese.nsh"
1012   Goto EndLanguageCmp
1013   Finnish:
1014   !include "languages\finnish.nsh"
1015   Goto EndLanguageCmp
1016   Japanese:
1017   !include "languages\japanese.nsh"
1018   Goto EndLanguageCmp
1019   Bengali:
1020   !include "languages\bengali.nsh"
1021   Goto EndLanguageCmp
1022   Punjabi:
1023   !include "languages\punjabi.nsh"
1024   Goto EndLanguageCmp
1025   Slovenian:
1026   !include "languages\slovenian.nsh"
1027   Goto EndLanguageCmp
1028   Spanish:
1029   !include "languages\spanish.nsh"
1030   Goto EndLanguageCmp
1031   Brazilian:
1032   !include "languages\brazilian_portuguese.nsh"
1033   EndLanguageCmp:
1034   
1035 FunctionEnd