From 803fd7c95d784059014ea687a7855eb460d3e8e7 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Sat, 28 Jun 2014 18:43:18 +0200 Subject: [PATCH] Windows: Generate an nsis package on the fly with "make package" --- CMakeLists.txt | 6 ++++++ nsis/NSIS.definitions.nsh.in | 3 +++ nsis/NSIS.template.in | 17 +++++++++-------- 3 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 nsis/NSIS.definitions.nsh.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f19f769..b8bba102 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -140,6 +140,12 @@ elseif(WIN32) set(CPACK_NSIS_URL_INFO_ABOUT "https://github.com/Daenyth/Cockatrice") set(CPACK_NSIS_CONTACT "Daenyth+github@gmail.com") set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/nsis") + + # Configure file with custom definitions for NSIS. + configure_file( + ${PROJECT_SOURCE_DIR}/nsis/NSIS.definitions.nsh.in + ${PROJECT_BINARY_DIR}/NSIS.definitions.nsh + ) endif() include(CPack) diff --git a/nsis/NSIS.definitions.nsh.in b/nsis/NSIS.definitions.nsh.in new file mode 100644 index 00000000..0d98b666 --- /dev/null +++ b/nsis/NSIS.definitions.nsh.in @@ -0,0 +1,3 @@ +!define NSIS_PROJECT_NAME "@PROJECT_NAME@" +!define NSIS_SOURCE_PATH "@PROJECT_SOURCE_DIR@" +!define NSIS_BINARY_PATH "@PROJECT_BINARY_DIR@" \ No newline at end of file diff --git a/nsis/NSIS.template.in b/nsis/NSIS.template.in index dde353e9..8deb40ea 100644 --- a/nsis/NSIS.template.in +++ b/nsis/NSIS.template.in @@ -1,27 +1,28 @@ +!include ..\..\..\NSIS.definitions.nsh !include "MUI2.nsh" !include "FileFunc.nsh" !define /date TIMESTAMP "%Y%m%d" !searchparse /file ../../../cockatrice/version_string.cpp '= "' VERSION '";' -Name "Cockatrice" -OutFile "cockatrice_win32_${TIMESTAMP}_git-${VERSION}.exe" +Name "${NSIS_PROJECT_NAME}" +OutFile "@CPACK_TOPLEVEL_DIRECTORY@/@CPACK_OUTPUT_FILE_NAME@" SetCompressor /SOLID lzma InstallDir "$PROGRAMFILES\Cockatrice" !define MUI_ABORTWARNING -!define MUI_WELCOMEFINISHPAGE_BITMAP "..\..\..\..\nsis\leftimage.bmp" -!define MUI_UNWELCOMEFINISHPAGE_BITMAP "..\..\..\..\nsis\leftimage.bmp" +!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\leftimage.bmp" +!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\leftimage.bmp" !define MUI_HEADERIMAGE -!define MUI_HEADERIMAGE_BITMAP "..\..\..\..\nsis\headerimage.bmp" -!define MUI_HEADERIMAGE_UNBITMAP "..\..\..\..\nsis\headerimage.bmp" +!define MUI_HEADERIMAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\headerimage.bmp" +!define MUI_HEADERIMAGE_UNBITMAP "${NSIS_SOURCE_PATH}\nsis\headerimage.bmp" !define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Cockatrice.$\r$\n$\r$\nClick Next to continue." !define MUI_FINISHPAGE_RUN "$INSTDIR/oracle.exe" !define MUI_FINISHPAGE_RUN_TEXT "Run card database downloader now" !define MUI_FINISHPAGE_RUN_PARAMETERS "-dlsets" !insertmacro MUI_PAGE_WELCOME -!insertmacro MUI_PAGE_LICENSE "..\..\..\..\COPYING" +!insertmacro MUI_PAGE_LICENSE "${NSIS_SOURCE_PATH}\COPYING" !insertmacro MUI_PAGE_COMPONENTS !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -37,7 +38,7 @@ Section "Application" SecApplication SetShellVarContext all SetOutPath "$INSTDIR" - File /r ..\..\..\Release\*.* + File /r "${NSIS_BINARY_PATH}\Release\*.*" WriteUninstaller "$INSTDIR\uninstall.exe" ${GetSize} "$INSTDIR" "/S=0K" $0 $1 $2