Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/cpack/NSISCPack.cmake
3196 views
# 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)