From a11e529197f5455bf7cc0bf5c20cd55e1eeda9db Mon Sep 17 00:00:00 2001 From: Freddie Akeroyd Date: Thu, 20 Sep 2012 23:34:53 +0000 Subject: [PATCH] Installer updates Refs #330 git-svn-id: https://svn.nexusformat.org/code/trunk@1846 ff5d1e40-2be0-497f-93bd-dc18237bd3c7 --- CPackOptions.cmake.in | 8 +++++--- cmake_modules/NSIS.template.in | 6 ++++-- nsis_install.nsh | 15 ++++++++------- nsis_uninstall.nsh | 15 ++++++++------- src/CMakeLists.txt | 5 ++++- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/CPackOptions.cmake.in b/CPackOptions.cmake.in index ab975329..42018b53 100644 --- a/CPackOptions.cmake.in +++ b/CPackOptions.cmake.in @@ -134,10 +134,12 @@ if (${CPACK_GENERATOR} STREQUAL "NSIS") set(CPACK_NSIS_MUI_ICON "@CMAKE_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico") set(CPACK_NSIS_MUI_UNIICON "@CMAKE_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico") set(CPACK_NSIS_MENU_LINKS "http://www.nexusformat.org/" "NeXus Web Site") - if (ARCH64) - set(CPACK_NSIS_DEFINES "!define NEXUSENVSUFFIX 64") + if (@ARCH64@) + set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64") + set(CPACK_NSIS_DEFINES "!define NEXUSDIRENVSUFFIX 64") else() - set(CPACK_NSIS_DEFINES "!define NEXUSENVSUFFIX 32") + set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES32") + set(CPACK_NSIS_DEFINES "!define NEXUSDIRENVSUFFIX 32") endif() endif() diff --git a/cmake_modules/NSIS.template.in b/cmake_modules/NSIS.template.in index 0e273e81..379b7aa7 100644 --- a/cmake_modules/NSIS.template.in +++ b/cmake_modules/NSIS.template.in @@ -148,6 +148,7 @@ Function ${UN}EnvVarUpdate ${EndIf} ;; From http://nsis.sourceforge.net/Environmental_Variables:_append,_prepend,_and_remove_entries + ;; faa - remove check for empty original ;; khc - here check if length is going to be greater then max string length ;; and abort if so - also abort if original path empty - may mean ;; it was too long as well- write message to say set it by hand @@ -157,8 +158,9 @@ Function ${UN}EnvVarUpdate StrLen $7 $4 StrLen $6 $5 IntOp $8 $6 + $7 - ${If} $5 == "" - ${OrIf} $8 >= ${NSIS_MAX_STRLEN} +;; ${If} $5 == "" ;; faa +;; ${OrIf} $8 >= ${NSIS_MAX_STRLEN} ;; faa + ${If} $8 >= ${NSIS_MAX_STRLEN} SetErrors DetailPrint "Current $1 length ($6) too long to modify in NSIS; set manually if needed" Pop $8 diff --git a/nsis_install.nsh b/nsis_install.nsh index 809ad5c2..6ba40d0a 100644 --- a/nsis_install.nsh +++ b/nsis_install.nsh @@ -1,8 +1,9 @@ ;;;;;;;;; !include "EnvVarUpdate.nsh" -${EnvVarUpdate} $0 "NEXUSDIR" "P" "HKCU" "$INSTDIR" -${EnvVarUpdate} $0 "NEXUSDIR${NEXUSENVSUFFIX}" "P" "HKCU" "$INSTDIR" -${EnvVarUpdate} $0 "PATH" "P" "HKCU" "$INSTDIR\bin" -${EnvVarUpdate} $0 "LIB" "P" "HKCU" "$INSTDIR\lib" -${EnvVarUpdate} $0 "INCLUDE" "P" "HKCU" "$INSTDIR\include" -${EnvVarUpdate} $0 "PYTHONPATH" "P" "HKCU" "$INSTDIR\python;$INSTDIR\bin" -${EnvVarUpdate} $0 "CLASSPATH" "P" "HKCU" "$INSTDIR\java\jnexus.jar" \ No newline at end of file +${EnvVarUpdate} $0 "NEXUSDIR" "A" "HKLM" "$INSTDIR" +${EnvVarUpdate} $0 "NEXUSDIR${NEXUSDIRENVSUFFIX}" "A" "HKLM" "$INSTDIR" +${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin" +${EnvVarUpdate} $0 "LIB" "A" "HKLM" "$INSTDIR\lib" +${EnvVarUpdate} $0 "INCLUDE" "A" "HKLM" "$INSTDIR\include" +${EnvVarUpdate} $0 "PYTHONPATH" "A" "HKLM" "$INSTDIR\python" +${EnvVarUpdate} $0 "PYTHONPATH" "A" "HKLM" "$INSTDIR\bin" +${EnvVarUpdate} $0 "CLASSPATH" "A" "HKLM" "$INSTDIR\java\jnexus.jar" \ No newline at end of file diff --git a/nsis_uninstall.nsh b/nsis_uninstall.nsh index f979530d..8da92bed 100644 --- a/nsis_uninstall.nsh +++ b/nsis_uninstall.nsh @@ -1,8 +1,9 @@ ;;;;;;;; !include "EnvVarUpdate.nsh" -${un.EnvVarUpdate} $0 "NEXUSDIR" "R" "HKCU" "$INSTDIR" -${un.EnvVarUpdate} $0 "NEXUSDIR${NEXUSENVSUFFIX}" "R" "HKCU" "$INSTDIR" -${un.EnvVarUpdate} $0 "PATH" "R" "HKCU" "$INSTDIR\bin" -${un.EnvVarUpdate} $0 "LIB" "R" "HKCU" "$INSTDIR\lib" -${un.EnvVarUpdate} $0 "INCLUDE" "R" "HKCU" "$INSTDIR\include" -${un.EnvVarUpdate} $0 "PYTHONPATH" "R" "HKCU" "$INSTDIR\python;$INSTDIR\bin" -${un.EnvVarUpdate} $0 "CLASSPATH" "R" "HKCU" "$INSTDIR\java\jnexus.jar" \ No newline at end of file +${un.EnvVarUpdate} $0 "NEXUSDIR" "R" "HKLM" "$INSTDIR" +${un.EnvVarUpdate} $0 "NEXUSDIR${NEXUSDIRENVSUFFIX}" "R" "HKLM" "$INSTDIR" +${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin" +${un.EnvVarUpdate} $0 "LIB" "R" "HKLM" "$INSTDIR\lib" +${un.EnvVarUpdate} $0 "INCLUDE" "R" "HKLM" "$INSTDIR\include" +${un.EnvVarUpdate} $0 "PYTHONPATH" "R" "HKLM" "$INSTDIR\python" +${un.EnvVarUpdate} $0 "PYTHONPATH" "R" "HKLM" "$INSTDIR\bin" +${un.EnvVarUpdate} $0 "CLASSPATH" "R" "HKLM" "$INSTDIR\java\jnexus.jar" \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2f999570..8bc3fb8d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -34,12 +34,16 @@ if (HAVE_HDF4) set (NAPISRC ${NAPISRC} napi4.c) add_definitions(-DHDF4 ${HDF4_DEFINITIONS} ${HDF4_CPP}) include_directories(${HDF4_INCLUDE_DIRS}) + file(GLOB HDF4DLLS "${HDF4_ROOT_DIR}/bin/*.dll") + install (FILES ${HDF4DLLS} DESTINATION bin COMPONENT Runtime) endif (HAVE_HDF4) if (HAVE_HDF5) set (NAPISRC ${NAPISRC} napi5.c) add_definitions(-DHDF5 ${HDF5_DEFINITIONS} ${HDF5_CPP}) include_directories(${HDF5_INCLUDE_DIRS}) + file(GLOB HDF5DLLS "${HDF5_ROOT_DIR}/bin/*.dll") + install (FILES ${HDF5DLLS} DESTINATION bin COMPONENT Runtime) endif (HAVE_HDF5) if(HAVE_MXML) @@ -127,7 +131,6 @@ install (TARGETS NeXus_Static_Library NeXus_Shared_Library RUNTIME DESTINATION bin COMPONENT Runtime LIBRARY DESTINATION lib COMPONENT Runtime ARCHIVE DESTINATION lib/nexus COMPONENT Development) - if(WIN32) install_pdb (NeXus_Shared_Library) endif()