merge branches/2.5 into trunk
[debian/jabref.git] / src / windows / nsis / launcher.nsi
1 ;
2 ; JabRef Application launcher
3 ;
4 ; Script based upon:
5 ; Jelude launcher - http://www.sfu.ca/~tyuen/jelude/ 
6 ; Java Launcher http://nsis.sourceforge.net/archive/nsisweb.php?page=326&instances=0,64
7 ;
8 ; Christopher Oezbek - oezi@oezi.de - 2006
9
10 ;--------- CONFIGURATION ---------
11 !define APPNAME "JabRef"
12 !ifndef JARFILE
13     !define JARFILE "JabRef.jar"
14 !endif
15 !ifdef APPICON
16     Icon "${APPICON}"
17 !endif
18 Name "${APPNAME}"
19 Caption "${APPNAME}"
20 OutFile "dist\${APPNAME}.exe"
21 ;-------- END CONFIGURATION ------
22
23 SilentInstall silent
24 XPStyle on
25 RequestExecutionLevel user
26
27 Section ""
28
29   Call GetJRE
30   Pop $R0
31
32   StrCpy $R1 ""
33   Call GetParameters
34   Pop $R1
35
36   StrCpy $R0 '"$R0" -jar "${JARFILE}" $R1'
37  
38   SetOutPath $EXEDIR
39   Exec "$R0"
40
41   Quit
42 SectionEnd
43
44 Function GetParameters
45   Push $R0
46   Push $R1
47   Push $R2
48   StrCpy $R0 $CMDLINE 1
49   StrCpy $R1 '"'
50   StrCpy $R2 1
51   StrCmp $R0 '"' loop
52   StrCpy $R1 ' '
53   loop:
54     StrCpy $R0 $CMDLINE 1 $R2
55     StrCmp $R0 $R1 loop2
56     StrCmp $R0 "" loop2
57     IntOp $R2 $R2 + 1
58     Goto loop
59   loop2:
60     IntOp $R2 $R2 + 1
61     StrCpy $R0 $CMDLINE 1 $R2
62     StrCmp $R0 " " loop2
63   StrCpy $R0 $CMDLINE "" $R2
64   Pop $R2
65   Pop $R1
66   Exch $R0
67 FunctionEnd
68
69 Function GetJRE
70 ;
71 ;  Find JRE (Java.exe)
72 ;  1 - in .\jre directory (JRE Installed with application)
73 ;  2 - in JAVA_HOME environment variable
74 ;  3 - in the registry
75 ;  4 - assume java.exe in current dir or PATH
76   Push $R0
77   Push $R1
78
79   ClearErrors
80   StrCpy $R0 "$EXEDIR\jre\bin\javaw.exe"
81   IfFileExists $R0 JreFound
82   StrCpy $R0 ""
83
84   ClearErrors
85   ReadEnvStr $R0 "JAVA_HOME"
86   StrCpy $R0 "$R0\bin\javaw.exe"
87   IfErrors 0 JreFound
88
89   ClearErrors
90   ReadRegStr $R1 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
91   ReadRegStr $R0 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\$R1" "JavaHome"
92   StrCpy $R0 "$R0\bin\javaw.exe"
93
94   IfErrors 0 JreFound
95   Sleep 800
96   MessageBox MB_ICONEXCLAMATION|MB_YESNO \
97                'Could not find a Java Runtime Environment installed on your computer. \
98                $\nWithout it you cannot run "${APPNAME}". \
99                $\n$\nWould you like to visit the Java website to download it?' \
100                IDNO +2
101   ExecShell open "http://java.sun.com/getjava"
102   Quit
103         
104  JreFound:
105   Pop $R1
106   Exch $R0
107 FunctionEnd