Skip to content

Commit

Permalink
First pass windows installer
Browse files Browse the repository at this point in the history
  • Loading branch information
FreddieAkeroyd committed Dec 16, 2015
1 parent 9ec3e3b commit ac23ad1
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*.txt text
*.in text
*.rst text
*.nsh text

# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
Expand Down
28 changes: 28 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -267,3 +267,31 @@ endif()
#add_subdirectory (third_party)
#add_subdirectory (windows)
#add_subdirectory (Windows_extra)

#
# set CPack packaging options
#

# needed for windows NSIS installer
file(TO_NATIVE_PATH ${PROJECT_SOURCE_DIR} PROJECT_SOURCE_DIR_NATIVE)
file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR} PROJECT_BINARY_DIR_NATIVE)
string(REPLACE "\\" "\\\\" PROJECT_SOURCE_DIR_NATIVE_D ${PROJECT_SOURCE_DIR_NATIVE})
string(REPLACE "\\" "\\\\" PROJECT_BINARY_DIR_NATIVE_D ${PROJECT_BINARY_DIR_NATIVE})

configure_file("${PROJECT_SOURCE_DIR}/CPackOptions.cmake.in" "${PROJECT_BINARY_DIR}/CPackOptions.cmake" @ONLY)
set (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CPackOptions.cmake")
set (CPACK_GENERATOR TGZ) # not use ZIP on UNIX as problem with symlinks
set (CPACK_SOURCE_GENERATOR TGZ) # not use ZIP on UNIX as problem with symlinks
if(WIN32)
set (CPACK_GENERATOR ${CPACK_GENERATOR};ZIP;NSIS)
set (CPACK_SOURCE_GENERATOR ${CPACK_SOURCE_GENERATOR};ZIP)
elseif(APPLE)
set (CPACK_GENERATOR ${CPACK_GENERATOR};PackageMaker)
elseif(CYGWIN)
set (CPACK_GENERATOR ${CPACK_GENERATOR};CygwinBinary)
set (CPACK_SOURCE_GENERATOR ${CPACK_SOURCE_GENERATOR};CygwinSource)
elseif(UNIX)
set (CPACK_GENERATOR ${CPACK_GENERATOR};DEB;RPM)
endif()
# Include of CPack must always be last
include(CPack)
6 changes: 3 additions & 3 deletions CPackOptions.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ set (CPACK_PACKAGE_FILE_NAME "nexus-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKA
set (CPACK_SOURCE_PACKAGE_FILE_NAME "nexus-source-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set (CPACK_PACKAGE_INSTALL_DIRECTORY "NeXus Data Format")

set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/InstallerBits/Licences/COPYING.txt")
set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/InstallerBits/Licences/COPYING.rtf")
set (CPACK_RESOURCE_FILE_README "@PROJECT_SOURCE_DIR@/cmake_include/nexus_description.txt")
set (CPACK_RESOURCE_FILE_WELCOME "@PROJECT_SOURCE_DIR@/cmake_include/WELCOME.txt")
set (CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR@/InstallerBits/nexus.ico")
Expand Down Expand Up @@ -129,8 +129,8 @@ if (${CPACK_GENERATOR} STREQUAL "NSIS")
set(CPACK_NSIS_URL_INFO_ABOUT "http://www.nexusformat.org/")
set(CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
set(CPACK_NSIS_MODIFY_PATH OFF)
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE@\nsis_install.nsh'")
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE@\nsis_uninstall.nsh'")
## set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nsis_install.nsh'")
## set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nsis_uninstall.nsh'")
# set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
set(CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico")
set(CPACK_NSIS_MUI_ICON "@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico")
Expand Down
9 changes: 9 additions & 0 deletions InstallerBits/nsis_install.nsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
;;;;;;;;; !include "EnvVarUpdate.nsh"
${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"
9 changes: 9 additions & 0 deletions InstallerBits/nsis_uninstall.nsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
;;;;;;;; !include "EnvVarUpdate.nsh"
${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"

0 comments on commit ac23ad1

Please sign in to comment.