Files
harbour-core/harbour/package/mpkg_win.nsi
Viktor Szakats 411e468e81 2012-06-17 15:59 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbrun/hbrun.hbp
  * utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/Makefile
  * package/mpkg_win.nsi
  * package/winuni/mpkg_win_uni.nsi
    ; trying to crawl out from this pool of dynamic mud.
    * enabled all embedded headers for both hbmk2 and hbrun
      so we're back to square one with this, except that
      now hbmk2 also holds the full set of core headers not
      just a minimal selection. The reason is to keep hbmk2
      as the distributable runner tool. It also syncs all
      C compilers and platforms.
    * hbmk2 built in -static mode again. It will fix the
      'make clean' problem, it will make it distributable.
    * hbrun changed to be built in -shared mode to allow
      to load dynamic modules.
    ; so this is the state right now (if I didn't make any mistake):
        hbmk2:
           all embedded core headers
           no contrib modules
           static build
           no dynamic modules
           fully movable/distributable as a runner
           cannot be self-registered as .hb runner on Windows
        hbrun:
           all embedded core headers
           some contrib modules
           shared build when HB_BUILD_CONTRIB_DYN enabled
           dynamic modules possible
           less movable/distributable, needs harbour dll, dynamic modules need Harbour dir layout
           can be self-registered as .hb runner on Windows
    ; "Ext:" banner on interactive shell will have blue color
      if dynamic modules are enabled and grey if not.

  * utils/hbmk2/hbmk2.prg
    * minor change to show the actual name of the tool
      in the error message requesting a -shared build.
2012-06-17 14:05:24 +00:00

179 lines
5.7 KiB
NSIS

;
; $Id$
;
; ---------------------------------------------------------------
; Copyright 2009 Viktor Szakats (harbour syenar.net)
; See COPYING for licensing terms.
;
; Harbour Nullsoft installer script (for Windows/DOS)
; [ Do not try to use this script directly. It won't work. ]
;
; Please read INSTALL for further information.
; ---------------------------------------------------------------
SetCompressor /solid lzma
!include "MUI2.nsh"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\win.bmp"
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\doc\readme.txt"
!define MUI_ICON "harb_win.ico"
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
SetDateSave on
SetDatablockOptimize on
CRCCheck on
RequestExecutionLevel user
; The name of the installer
Name "Harbour"
; The file to write
OutFile "$%HB_TOP%\$%HB_PKGNAME%.exe"
InstallDir C:\$%HB_PKGNAMI%
;--------------------------------
; Interface Settings
!define MUI_ABORTWARNING
;--------------------------------
; Pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE $(MUILicense)
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
;--------------------------------
; Languages
!insertmacro MUI_LANGUAGE "English"
;--------------------------------
; License Language String
LicenseLangString MUILicense ${LANG_ENGLISH} "$%HB_INSTALL_PREFIX%\COPYING"
;--------------------------------
; The stuff to install
Section "Main components" hb_main
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR
File /nonfatal "$%HB_INSTALL_PREFIX%\COPYING"
File /nonfatal "$%HB_INSTALL_PREFIX%\INSTALL"
File /nonfatal "$%HB_INSTALL_PREFIX%\NEWS"
File /nonfatal "$%HB_INSTALL_PREFIX%\TODO"
; Let it work also for DOS packages where short filename is used here
File /nonfatal "$%HB_INSTALL_PREFIX%\Change*"
SetOutPath $INSTDIR\bin
File "$%HB_INSTALL_PREFIX%\bin\*.*"
SetOutPath $INSTDIR\lib
File /r "$%HB_INSTALL_PREFIX%\lib\*.*"
SetOutPath $INSTDIR\include
File "$%HB_INSTALL_PREFIX%\include\*.*"
SetOutPath $INSTDIR\doc
File "$%HB_INSTALL_PREFIX%\doc\*.*"
; Write the installation path into the registry
; WriteRegStr HKLM "SOFTWARE\Harbour" "InstallDir" "$INSTDIR"
WriteRegStr HKCU "Software\Harbour" "InstallDir" "$INSTDIR"
; Write the uninstall keys for Windows
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "DisplayName" "Harbour"
; WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "UninstallString" '"$INSTDIR\uninstall.exe"'
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "NoModify" 1
; WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Harbour" "NoRepair" 1
WriteUninstaller "uninstall.exe"
SectionEnd
; The stuff to install
Section "Examples" hb_examples
SectionIn RO
; Set output path to the installation directory.
SetOutPath $INSTDIR\tests
SectionEnd
; Optional section (can be disabled by the user)
Section "Start Menu and Desktop icons" hb_shortcuts
; this will be the working dir for shortcuts
SetOutPath $INSTDIR
CreateShortCut "$DESKTOP\Harbour.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateDirectory "$SMPROGRAMS\Harbour"
CreateShortCut "$SMPROGRAMS\Harbour\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour (Command line).lnk" "cmd.exe" "/k cd $INSTDIR\bin" "cmd.exe" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour.lnk" "$INSTDIR" "" "$INSTDIR" 0
CreateShortCut "$SMPROGRAMS\Harbour\Harbour (Interactive shell).lnk" "$INSTDIR\bin\hbrun.exe" "" "$INSTDIR\bin\hbrun.exe" 0
CreateDirectory "$SMPROGRAMS\Harbour\Links"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Homepage.url" "InternetShortcut" "URL" "http://harbour-project.org/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Sourceforge Page.url" "InternetShortcut" "URL" "http://sourceforge.net/projects/harbour-project/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Users' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-users/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Developers' Mailing List.url" "InternetShortcut" "URL" "http://groups.google.com/group/harbour-devel/"
WriteINIStr "$SMPROGRAMS\Harbour\Links\Development Timeline.url" "InternetShortcut" "URL" "http://sourceforge.net/apps/trac/harbour-project/timeline"
SectionEnd
;--------------------------------
; Descriptions
; Language strings
LangString DESC_hb_main ${LANG_ENGLISH} "Main components"
LangString DESC_hb_shortcuts ${LANG_ENGLISH} "Add icons to Start Menu and Desktop"
LangString DESC_hb_examples ${LANG_ENGLISH} "Samples and tests"
; Assign language strings to sections
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${hb_main} $(DESC_hb_main)
!insertmacro MUI_DESCRIPTION_TEXT ${hb_shortcuts} $(DESC_hb_shortcuts)
!insertmacro MUI_DESCRIPTION_TEXT ${hb_examples} $(DESC_hb_examples)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;--------------------------------
; Uninstaller
Section "Uninstall"
; Remove files and uninstaller
RMDir /r $INSTDIR
; Remove directories used
Delete "$SMPROGRAMS\Harbour\Links\*.*"
RMDir "$SMPROGRAMS\Harbour\Links"
Delete "$SMPROGRAMS\Harbour\*.*"
RMDir "$SMPROGRAMS\Harbour"
RMDir "$INSTDIR"
Delete "$DESKTOP\Harbour.lnk"
; DeleteRegKey HKLM "SOFTWARE\Harbour"
DeleteRegKey HKCU "Software\Harbour"
SectionEnd