-
Notifications
You must be signed in to change notification settings - Fork 331
/
Copy pathNSISCPack.cmake
48 lines (44 loc) · 2.38 KB
/
NSISCPack.cmake
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
# CPack configuration for NSIS installer
IF(WIN32)
SET(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} Elmer")
SET(CPACK_NSIS_HELP_LINK "http://www.elmerfem.org")
#SET(CPACK_NSIS_CONTACT "TODO: [email protected]")
SET(CPACK_NSIS_CONTACT "")
LIST(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS
" !include \\\"winmessages.nsh\\\"
; HKLM (all users) vs HKCU (current user) defines
!define env_hklm 'HKLM \\\"SYSTEM\\\\CurrentControlSet\\\\Control\\\\Session Manager\\\\Environment\\\"'
!define env_hkcu 'HKCU \\\"Environment\\\"'
StrCmp \\\$ADD_TO_PATH_ALL_USERS \\\"1\\\" WriteAllElmerHomeKey
DetailPrint \\\"Selected environment for current user\\\"
WriteRegExpandStr \\\${env_hkcu} ELMER_HOME \\\$INSTDIR
WriteRegExpandStr \\\${env_hkcu} ELMERGUI_HOME \\\$INSTDIR\\\\share\\\\ElmerGUI
Goto DoSendElmerHome
WriteAllElmerHomeKey:
DetailPrint \\\"Selected environment for all users\\\"
WriteRegExpandStr \\\${env_hklm} ELMER_HOME \\\$INSTDIR
WriteRegExpandStr \\\${env_hklm} ELMERGUI_HOME \\\$INSTDIR\\\\share\\\\ElmerGUI
DoSendElmerHome:
SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 \\\"STR:Environment\\\" /TIMEOUT=5000 ")
SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS
" ; delete variable
StrCmp \\\${ADD_TO_PATH_ALL_USERS} \\\"1\\\" unWriteAllElmerHome
DeleteRegValue \\\${env_hkcu} ELMER_HOME
DeleteRegValue \\\${env_hkcu} ELMERGUI_HOME
Goto unDoSendElmerHome
unWriteAllElmerHome:
DeleteRegValue \\\${env_hklm} ELMER_HOME
DeleteRegValue \\\${env_hklm} ELMERGUI_HOME
unDoSendElmerHome:
SendMessage \\\${HWND_BROADCAST} \\\${WM_WININICHANGE} 0 \\\"STR:Environment\\\" /TIMEOUT=5000")
SET(CPACK_NSIS_MODIFY_PATH "ON")
SET(CPACK_COMPONENT_UNSPECIFIED_DISPLAY_NAME "Elmerfem solver")
SET(CPACK_COMPONENT_UNSPECIFIED_DESCRIPTION "The main application: ElmerSolver, ElmerGrid, matc and runtime binaries.")
SET(CPACK_COMPONENT_ELMERGUI_DISPLAY_NAME "ElmerGUI")
SET(CPACK_COMPONENT_ELMERGUI_SAMPLES_DISPLAY_NAME "ElmerGUI samples")
SET(CPACK_COMPONENT_ELMERGUI_SAMPLES_DESCRIPTION "Geometry samples for ElmerGUI")
SET(CPACK_COMPONENT_ELMERPOST_DISPLAY_NAME "ElmerPost")
SET(CPACK_COMPONENT_ELMERPOST_DESCRIPTION "A post processor for Elmer")
SET(CPACK_NSIS_COMPONENT_INSTALL TRUE)
SET(CPACK_COMPONENT_INSTALL_ALL "elmergui gfortran_minimal Unspecified elmergui_samples ElmerPost")
ENDIF(WIN32)