Skip to content

Commit ac23ad1

Browse files
First pass windows installer
1 parent 9ec3e3b commit ac23ad1

5 files changed

Lines changed: 50 additions & 3 deletions

File tree

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*.txt text
1616
*.in text
1717
*.rst text
18+
*.nsh text
1819

1920
# Declare files that will always have CRLF line endings on checkout.
2021
*.sln text eol=crlf

CMakeLists.txt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,3 +267,31 @@ endif()
267267
#add_subdirectory (third_party)
268268
#add_subdirectory (windows)
269269
#add_subdirectory (Windows_extra)
270+
271+
#
272+
# set CPack packaging options
273+
#
274+
275+
# needed for windows NSIS installer
276+
file(TO_NATIVE_PATH ${PROJECT_SOURCE_DIR} PROJECT_SOURCE_DIR_NATIVE)
277+
file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR} PROJECT_BINARY_DIR_NATIVE)
278+
string(REPLACE "\\" "\\\\" PROJECT_SOURCE_DIR_NATIVE_D ${PROJECT_SOURCE_DIR_NATIVE})
279+
string(REPLACE "\\" "\\\\" PROJECT_BINARY_DIR_NATIVE_D ${PROJECT_BINARY_DIR_NATIVE})
280+
281+
configure_file("${PROJECT_SOURCE_DIR}/CPackOptions.cmake.in" "${PROJECT_BINARY_DIR}/CPackOptions.cmake" @ONLY)
282+
set (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CPackOptions.cmake")
283+
set (CPACK_GENERATOR TGZ) # not use ZIP on UNIX as problem with symlinks
284+
set (CPACK_SOURCE_GENERATOR TGZ) # not use ZIP on UNIX as problem with symlinks
285+
if(WIN32)
286+
set (CPACK_GENERATOR ${CPACK_GENERATOR};ZIP;NSIS)
287+
set (CPACK_SOURCE_GENERATOR ${CPACK_SOURCE_GENERATOR};ZIP)
288+
elseif(APPLE)
289+
set (CPACK_GENERATOR ${CPACK_GENERATOR};PackageMaker)
290+
elseif(CYGWIN)
291+
set (CPACK_GENERATOR ${CPACK_GENERATOR};CygwinBinary)
292+
set (CPACK_SOURCE_GENERATOR ${CPACK_SOURCE_GENERATOR};CygwinSource)
293+
elseif(UNIX)
294+
set (CPACK_GENERATOR ${CPACK_GENERATOR};DEB;RPM)
295+
endif()
296+
# Include of CPack must always be last
297+
include(CPack)

CPackOptions.cmake.in

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ set (CPACK_PACKAGE_FILE_NAME "nexus-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKA
5353
set (CPACK_SOURCE_PACKAGE_FILE_NAME "nexus-source-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
5454
set (CPACK_PACKAGE_INSTALL_DIRECTORY "NeXus Data Format")
5555

56-
set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/InstallerBits/Licences/COPYING.txt")
56+
set (CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/InstallerBits/Licences/COPYING.rtf")
5757
set (CPACK_RESOURCE_FILE_README "@PROJECT_SOURCE_DIR@/cmake_include/nexus_description.txt")
5858
set (CPACK_RESOURCE_FILE_WELCOME "@PROJECT_SOURCE_DIR@/cmake_include/WELCOME.txt")
5959
set (CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR@/InstallerBits/nexus.ico")
@@ -129,8 +129,8 @@ if (${CPACK_GENERATOR} STREQUAL "NSIS")
129129
set(CPACK_NSIS_URL_INFO_ABOUT "http://www.nexusformat.org/")
130130
set(CPACK_NSIS_CONTACT "${CPACK_PACKAGE_CONTACT}")
131131
set(CPACK_NSIS_MODIFY_PATH OFF)
132-
set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE@\nsis_install.nsh'")
133-
set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE@\nsis_uninstall.nsh'")
132+
## set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nsis_install.nsh'")
133+
## set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include '@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nsis_uninstall.nsh'")
134134
# set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
135135
set(CPACK_PACKAGE_ICON "@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico")
136136
set(CPACK_NSIS_MUI_ICON "@PROJECT_SOURCE_DIR_NATIVE_D@\\InstallerBits\\nexus.ico")

InstallerBits/nsis_install.nsh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
;;;;;;;;; !include "EnvVarUpdate.nsh"
2+
${EnvVarUpdate} $0 "NEXUSDIR" "A" "HKLM" "$INSTDIR"
3+
${EnvVarUpdate} $0 "NEXUSDIR${NEXUSDIRENVSUFFIX}" "A" "HKLM" "$INSTDIR"
4+
${EnvVarUpdate} $0 "PATH" "A" "HKLM" "$INSTDIR\bin"
5+
${EnvVarUpdate} $0 "LIB" "A" "HKLM" "$INSTDIR\lib"
6+
${EnvVarUpdate} $0 "INCLUDE" "A" "HKLM" "$INSTDIR\include"
7+
${EnvVarUpdate} $0 "PYTHONPATH" "A" "HKLM" "$INSTDIR\python"
8+
${EnvVarUpdate} $0 "PYTHONPATH" "A" "HKLM" "$INSTDIR\bin"
9+
${EnvVarUpdate} $0 "CLASSPATH" "A" "HKLM" "$INSTDIR\java\jnexus.jar"

InstallerBits/nsis_uninstall.nsh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
;;;;;;;; !include "EnvVarUpdate.nsh"
2+
${un.EnvVarUpdate} $0 "NEXUSDIR" "R" "HKLM" "$INSTDIR"
3+
${un.EnvVarUpdate} $0 "NEXUSDIR${NEXUSDIRENVSUFFIX}" "R" "HKLM" "$INSTDIR"
4+
${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" "$INSTDIR\bin"
5+
${un.EnvVarUpdate} $0 "LIB" "R" "HKLM" "$INSTDIR\lib"
6+
${un.EnvVarUpdate} $0 "INCLUDE" "R" "HKLM" "$INSTDIR\include"
7+
${un.EnvVarUpdate} $0 "PYTHONPATH" "R" "HKLM" "$INSTDIR\python"
8+
${un.EnvVarUpdate} $0 "PYTHONPATH" "R" "HKLM" "$INSTDIR\bin"
9+
${un.EnvVarUpdate} $0 "CLASSPATH" "R" "HKLM" "$INSTDIR\java\jnexus.jar"

0 commit comments

Comments
 (0)