blob: 0c0243b555c7fddf4200b557e9623a3274d7b979 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
; NSIS Installer script for the Fortran Package Manager
; ---------------- Properties ----------------
; Name used in installer GUI
Name "Fortran Package Manager"
; Name for folder location and reg key
!define INSTALL_NAME "fortran-lang"
; Installer icon
!define MUI_ICON "installer-icon.ico"
; Compress installer
SetCompress auto
; Always produce unicode installer
Unicode true
; ---------------- Setup ----------------
; Use EnVar plugin (https://nsis.sourceforge.io/EnVar_plug-in)
!addplugindir ".\EnVar_plugin\Plugins\x86-unicode"
; Use the 'Modern' Installer UI macros
!include "MUI2.nsh"
; Default installation folder (local)
InstallDir "$LOCALAPPDATA\${INSTALL_NAME}"
; Get installation folder from registry if available
InstallDirRegKey HKCU "Software\${INSTALL_NAME}" ""
; Request application privileges
RequestExecutionLevel user
; ---------------- Installer Pages ----------------
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
; ---------------- Uninstaller Pages ----------------
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
; MUI Language
!insertmacro MUI_LANGUAGE "English"
; ---------------- Component: Core Installation ----------------
Section "-Core" SecCore
SetOutPath "$INSTDIR"
; Store installation folder
WriteRegStr HKCU "Software\${INSTALL_NAME}" "" $INSTDIR
; Create uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
; Add to path
EnVar::SetHKCU
EnVar::AddValue "PATH" "$INSTDIR\fpm"
EnVar::AddValue "PATH" "$INSTDIR\MinGit\mingw64\bin"
SectionEnd
; ---------------- Component: fpm ----------------
Section "FPM" SecFPM
SetOutPath "$INSTDIR\fpm"
File "fpm.exe"
SectionEnd
; ---------------- Component: Git ----------------
Section "Git for Windows" SecGit
SetOutPath "$INSTDIR"
File /r "MinGit"
SectionEnd
; ---------------- Uninstaller ----------------
Section "Uninstall"
RMDir /r "$INSTDIR"
DeleteRegKey /ifempty HKCU "Software\${INSTALL_NAME}"
EnVar::SetHKCU
EnVar::DeleteValue "PATH" "$INSTDIR\fpm"
EnVar::DeleteValue "PATH" "$INSTDIR\MinGit\mingw64\bin"
SectionEnd
; ---------------- Component description Strings (EN) ----------------
LangString DESC_SecFPM ${LANG_ENGLISH} "The Fortran Package Manager"
LangString DESC_SecGit ${LANG_ENGLISH} "Git version control (required for FPM)"
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecFPM} $(DESC_SecFPM)
!insertmacro MUI_DESCRIPTION_TEXT ${SecGit} $(DESC_SecGit)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|