- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
617
Gem/build/win-nsis/Gem.nsi
Normal file
617
Gem/build/win-nsis/Gem.nsi
Normal file
|
@ -0,0 +1,617 @@
|
|||
; TODO
|
||||
; - check whether Pd is installed
|
||||
; this is where Pd stores it's settings:
|
||||
; HKEY_LOCAL_MACHINE\SOFTWARE\Pd
|
||||
; this is the uninstaller-information of Pd-extended
|
||||
; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\pd_is1 InstallLocation
|
||||
|
||||
; - ask to set env-variables
|
||||
; GEM_SINGLE_CONTEXT /* ??? */
|
||||
; GEM_RECTANGLE_TEXTURE /* unneeded since glew? */
|
||||
; GEM_NO_TABLET /* unneeded as [gemtablet] was dropped */
|
||||
; GEM_DEFAULT_FONT /* "$INSTDIR/examples/data/vera.ttf" */
|
||||
; system-envvars:
|
||||
; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
|
||||
; user-envvars:
|
||||
; HKEY_CURRENT_USER\Environment
|
||||
|
||||
; Script generated by the HM NIS Edit Script Wizard.
|
||||
; HM NIS Edit Wizard helper defines
|
||||
!define PRODUCT_NAME "Gem"
|
||||
!ifndef PRODUCT_VERSION
|
||||
!define PRODUCT_VERSION "0.93"
|
||||
!endif
|
||||
!define PRODUCT_ARCH "-W32-i686"
|
||||
!define PRODUCT_PUBLISHER "iem et al."
|
||||
!define PRODUCT_WEB_SITE "http://gem.iem.at"
|
||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||
|
||||
OutFile "Gem-${PRODUCT_VERSION}${PRODUCT_ARCH}.exe"
|
||||
|
||||
!define BASE_INDIR "..\.."
|
||||
!define BUILD_INDIR "..\win-vs2003"
|
||||
|
||||
|
||||
; MUI 1.67 compatible ------
|
||||
!include "MUI.nsh"
|
||||
|
||||
; MUI Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico"
|
||||
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\modern-uninstall.ico"
|
||||
|
||||
; Welcome page
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
; License page
|
||||
!insertmacro MUI_PAGE_LICENSE "..\..\GnuGPL.LICENSE.txt"
|
||||
; Components page
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
; Directory page
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
; Instfiles page
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
; Finish page
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
; Uninstaller pages
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
; Language files
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
; MUI end ------
|
||||
|
||||
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
|
||||
|
||||
;InstallDir "$PROGRAMFILES\pd\extra\Gem"
|
||||
InstallDir "$%COMMONPROGRAMFILES%\Pd\Gem"
|
||||
|
||||
ShowInstDetails show
|
||||
ShowUnInstDetails show
|
||||
|
||||
Var /GLOBAL GEM_OUTDIR
|
||||
Var /GLOBAL GEMDEV_OUTDIR
|
||||
Var /GLOBAL EXTRA_OUTDIR
|
||||
|
||||
; the sections for the library itself (binary+abstractions)
|
||||
|
||||
SectionGroup "Gem" SEC_Gem
|
||||
Section "Gem-binary" SEC_GemBinary
|
||||
StrCpy $EXTRA_OUTDIR "$INSTDIR\.."
|
||||
StrCpy $GEM_OUTDIR "$INSTDIR"
|
||||
StrCpy $GEMDEV_OUTDIR "$GEM_OUTDIR\dev"
|
||||
|
||||
|
||||
SetOverwrite ifnewer
|
||||
SectionIn RO
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\Gem.dll"
|
||||
|
||||
File "${BASE_INDIR}\GnuGPL.LICENSE.txt"
|
||||
File "${BASE_INDIR}\COPYING.txt"
|
||||
File "${BASE_INDIR}\ChangeLog"
|
||||
File "${BASE_INDIR}\README.txt"
|
||||
SectionEnd
|
||||
Section "Gem-abstractions" SEC_GemAbs
|
||||
SectionIn RO
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BASE_INDIR}\abstractions\*.pd"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
SectionGroup "Documentation" SEC_documentation
|
||||
Section "reference" SEC_ref
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File /r /x .svn "${BASE_INDIR}\help\*.pd"
|
||||
SectionEnd
|
||||
Section "examples" SEC_examples
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR\examples\"
|
||||
File /r /x .svn /x "Makefile*" "${BASE_INDIR}\examples\*.*"
|
||||
; this should only be set if there is no entry yet
|
||||
WriteRegStr SHCTX "Environment" "GEM_DEFAULT_FONT" "$GEM_OUTDIR\examples\data\vera.ttf"
|
||||
SectionEnd
|
||||
Section "manual" SEC_manual
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR\manual"
|
||||
File /r /x .svn "${BASE_INDIR}\doc\manual\*.*"
|
||||
SectionEnd
|
||||
Section "doc" SEC_doc
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BASE_INDIR}\doc\cMatrix.html"
|
||||
File "${BASE_INDIR}\doc\gem.known_bugs.txt"
|
||||
File "${BASE_INDIR}\doc\GemPrimer.pdf"
|
||||
File "${BASE_INDIR}\doc\gem.release_notes.txt"
|
||||
File "${BASE_INDIR}\doc\gem.todo.txt"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
SectionGroup "plugins" SEC_plugin
|
||||
|
||||
SectionGroup "film" SEC_plugin_film
|
||||
Section "DirectShow movies" SEC_plugin_filmDS
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_filmDS.dll"
|
||||
SectionEnd
|
||||
Section "QuickTime movies" SEC_plugin_filmQT
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_filmQT.dll"
|
||||
SectionEnd
|
||||
Section /o "AVI movies" SEC_plugin_filmAVI
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_filmAVI.dll"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
SectionGroup "image" SEC_plugin_image
|
||||
Section "ImageMagick images" SEC_plugin_imageMAGICK
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_imageMAGICK.dll"
|
||||
SectionEnd
|
||||
Section /o "QuickTime images" SEC_plugin_imageQT
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_imageQT.dll"
|
||||
SectionEnd
|
||||
Section /o "SGI images" SEC_plugin_imageSGI
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_imageSGI.dll"
|
||||
SectionEnd
|
||||
Section /o "JPEG images" SEC_plugin_imageJPEG
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_imageJPEG.dll"
|
||||
SectionEnd
|
||||
Section /o "TIFF images" SEC_plugin_imageTIFF
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_imageTIFF.dll"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
SectionGroup "record" SEC_plugin_record
|
||||
Section "QuickTime recording" SEC_plugin_recordQT
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_recordQT.dll"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
SectionGroup "video" SEC_plugin_video
|
||||
Section "DirectShow capturing" SEC_plugin_videoDS
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_videoDS.dll"
|
||||
SectionEnd
|
||||
Section /o "VFW capturing" SEC_plugin_videoVFW
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_videoVFW.dll"
|
||||
SectionEnd
|
||||
; Section /o "Allied Vision Technologies capturing" SEC_plugin_videoAVT
|
||||
; SetOverwrite ifnewer
|
||||
; SetOutPath "$GEM_OUTDIR"
|
||||
; File "${BUILD_INDIR}\gem_videoAVT.dll"
|
||||
; SectionEnd
|
||||
Section /o "MVTec/HALCON capturing" SEC_plugin_videoHALCON
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$GEM_OUTDIR"
|
||||
File "${BUILD_INDIR}\gem_videoHALCON.dll"
|
||||
SectionEnd
|
||||
; Section /o "Basler/PYLON capturing" SEC_plugin_videoPYLON
|
||||
; SetOverwrite ifnewer
|
||||
; SetOutPath "$GEM_OUTDIR"
|
||||
; File "${BUILD_INDIR}\gem_videoPYLON.dll"
|
||||
; SectionEnd
|
||||
SectionGroupEnd
|
||||
SectionGroupEnd
|
||||
|
||||
SectionGroup "extra" SEC_extra
|
||||
Section "pix_drum" SEC_extra_pix_drum
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$EXTRA_OUTDIR\pix_drum"
|
||||
File "${BASE_INDIR}\extra\pix_drum\pix_drum.dll"
|
||||
File "${BASE_INDIR}\extra\pix_drum\pix_drum-help.pd"
|
||||
File "${BASE_INDIR}\extra\pix_drum\LICENSE.txt"
|
||||
SectionEnd
|
||||
Section "pix_mano" SEC_extra_pix_mano
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$EXTRA_OUTDIR\pix_mano"
|
||||
File "${BASE_INDIR}\extra\pix_mano\pix_mano.dll"
|
||||
File "${BASE_INDIR}\extra\pix_mano\pix_mano-help.pd"
|
||||
File "${BASE_INDIR}\extra\pix_mano\LICENSE.txt"
|
||||
SectionEnd
|
||||
Section "pix_fiducialtrack" SEC_extra_pix_fiducialtrack
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$EXTRA_OUTDIR\pix_fiducialtrack"
|
||||
File "${BASE_INDIR}\extra\pix_fiducialtrack\pix_fiducialtrack.dll"
|
||||
File "${BASE_INDIR}\extra\pix_fiducialtrack\pix_fiducialtrack-help.pd"
|
||||
File "${BASE_INDIR}\extra\pix_fiducialtrack\all.trees"
|
||||
SectionEnd
|
||||
Section "pix_artoolkit" SEC_extra_pix_artoolkit
|
||||
SetOverwrite ifnewer
|
||||
SetOutPath "$EXTRA_OUTDIR\pix_artoolkit"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\pix_artoolkit.dll"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\pix_artoolkit-help.pd"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\README.txt"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\camera_para.dat"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\patt.hiro"
|
||||
File "${BASE_INDIR}\extra\pix_artoolkit\pattHiro.pdf"
|
||||
SectionEnd
|
||||
SectionGroupEnd
|
||||
|
||||
Section "Development" SEC_dev
|
||||
SetOverwrite ifnewer
|
||||
|
||||
SetOutPath "$GEMDEV_OUTDIR"
|
||||
File "${BUILD_INDIR}\Gem.lib"
|
||||
|
||||
SetOutPath "$GEMDEV_OUTDIR\RTE"
|
||||
File ${BASE_INDIR}\src\RTE\MessageCallbacks.h
|
||||
File ${BASE_INDIR}\src\RTE\Array.h
|
||||
SetOutPath "$GEMDEV_OUTDIR\Gem"
|
||||
File ${BASE_INDIR}\src\Gem\ThreadSemaphore.h
|
||||
File ${BASE_INDIR}\src\Gem\ThreadMutex.h
|
||||
File ${BASE_INDIR}\src\Gem\SynchedWorkerThread.h
|
||||
File ${BASE_INDIR}\src\Gem\WorkerThread.h
|
||||
File ${BASE_INDIR}\src\Gem\PixConvert.h
|
||||
File ${BASE_INDIR}\src\Gem\ImageIO.h
|
||||
File ${BASE_INDIR}\src\Gem\Image.h
|
||||
File ${BASE_INDIR}\src\Gem\GLStack.h
|
||||
File ${BASE_INDIR}\src\Gem\wglew.h
|
||||
File ${BASE_INDIR}\src\Gem\glxew.h
|
||||
File ${BASE_INDIR}\src\Gem\glew.h
|
||||
File ${BASE_INDIR}\src\Gem\GemGL.h
|
||||
File ${BASE_INDIR}\src\Gem\Event.h
|
||||
File ${BASE_INDIR}\src\Gem\PBuffer.h
|
||||
File ${BASE_INDIR}\src\Gem\Manager.h
|
||||
File ${BASE_INDIR}\src\Gem\Loaders.h
|
||||
File ${BASE_INDIR}\src\Gem\Settings.h
|
||||
File ${BASE_INDIR}\src\Gem\Properties.h
|
||||
File ${BASE_INDIR}\src\Gem\ContextData.h
|
||||
File ${BASE_INDIR}\src\Gem\Files.h
|
||||
File ${BASE_INDIR}\src\Gem\Dylib.h
|
||||
File ${BASE_INDIR}\src\Gem\Exception.h
|
||||
File ${BASE_INDIR}\src\Gem\Cache.h
|
||||
File ${BASE_INDIR}\src\Gem\State.h
|
||||
File ${BASE_INDIR}\src\Gem\RTE.h
|
||||
File ${BASE_INDIR}\src\Gem\Version.h
|
||||
File ${BASE_INDIR}\src\Gem\ExportDef.h
|
||||
SetOutPath "$GEMDEV_OUTDIR\Utils"
|
||||
File ${BASE_INDIR}\src\Utils\Vector.h
|
||||
File ${BASE_INDIR}\src\Utils\SIMD.h
|
||||
File ${BASE_INDIR}\src\Utils\PixPete.h
|
||||
File ${BASE_INDIR}\src\Utils\Matrix.h
|
||||
File ${BASE_INDIR}\src\Utils\GemMath.h
|
||||
File ${BASE_INDIR}\src\Utils\GLUtil.h
|
||||
File ${BASE_INDIR}\src\Utils\Functions.h
|
||||
File ${BASE_INDIR}\src\Utils\any.h
|
||||
SetOutPath "$GEMDEV_OUTDIR\Base"
|
||||
File ${BASE_INDIR}\src\Base\GemContext.h
|
||||
File ${BASE_INDIR}\src\Base\GemWindow.h
|
||||
File ${BASE_INDIR}\src\Base\TextBase.h
|
||||
File ${BASE_INDIR}\src\Base\GemShape.h
|
||||
File ${BASE_INDIR}\src\Base\GemPixDualObj.h
|
||||
File ${BASE_INDIR}\src\Base\GemPixObj.h
|
||||
File ${BASE_INDIR}\src\Base\GemPathBase.h
|
||||
File ${BASE_INDIR}\src\Base\GemGluObj.h
|
||||
File ${BASE_INDIR}\src\Base\GemGLBase.h
|
||||
File ${BASE_INDIR}\src\Base\GemBase.h
|
||||
File ${BASE_INDIR}\src\Base\CPPExtern.h
|
||||
SetOutPath "$GEMDEV_OUTDIR\plugins"
|
||||
File ${BASE_INDIR}\src\plugins\video.h
|
||||
File ${BASE_INDIR}\src\plugins\record.h
|
||||
File ${BASE_INDIR}\src\plugins\imagesaver.h
|
||||
File ${BASE_INDIR}\src\plugins\imageloader.h
|
||||
File ${BASE_INDIR}\src\plugins\film.h
|
||||
File ${BASE_INDIR}\src\plugins\PluginFactoryTimple.h
|
||||
File ${BASE_INDIR}\src\plugins\PluginFactory.h
|
||||
SetOutPath "$GEMDEV_OUTDIR\Base"
|
||||
File ${BASE_INDIR}\src\deprecated\Base\Matrix.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemVersion.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemVector.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemState.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemSIMD.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPixUtil.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPixPete.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPixImageSave.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPixImageLoad.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPixConvert.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemPBuffer.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemMath.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemMan.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemLoaders.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemGLUtil.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemGL.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemFuncUtil.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemExportDef.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemEvent.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemContextData.h
|
||||
File ${BASE_INDIR}\src\deprecated\Base\GemCache.h
|
||||
|
||||
|
||||
WriteRegStr SHCTX "Environment" "GemDevDir" "$GEMDEV_OUTDIR"
|
||||
SectionEnd
|
||||
|
||||
|
||||
Function .onInit
|
||||
; prevent multiple instances running at the same time
|
||||
System::Call 'kernel32::CreateMutexA(i 0, i 0, t "gemInstallerMutex") i .r1 ?e'
|
||||
Pop $R0
|
||||
StrCmp $R0 0 +3
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "The installer is already running."
|
||||
Abort
|
||||
FunctionEnd
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) has been successfully uninstalled."
|
||||
FunctionEnd
|
||||
|
||||
Function un.onInit
|
||||
MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Do you really want to uninstall $(^Name) and all it's components?" IDYES +2
|
||||
Abort
|
||||
StrCpy $EXTRA_OUTDIR "$INSTDIR\.."
|
||||
StrCpy $GEM_OUTDIR "$INSTDIR"
|
||||
StrCpy $GEMDEV_OUTDIR "$GEM_OUTDIR\dev"
|
||||
FunctionEnd
|
||||
|
||||
; uäh: isn't there a way to only delete the files we actually installed?
|
||||
; that is: without having to enumerate them here
|
||||
Section Uninstall
|
||||
Delete "$GEM_OUTDIR\manual\*.*"
|
||||
RMDir "$GEM_OUTDIR\manual"
|
||||
|
||||
Delete "$GEM_OUTDIR\cMatrix.html"
|
||||
Delete "$GEM_OUTDIR\gem.known_bugs.txt"
|
||||
Delete "$GEM_OUTDIR\GemPrimer.pdf"
|
||||
Delete "$GEM_OUTDIR\gem.release_notes.txt"
|
||||
Delete "$GEM_OUTDIR\gem.todo.txt"
|
||||
|
||||
Delete "$GEM_OUTDIR\examples\data\*.*"
|
||||
Delete "$GEM_OUTDIR\examples\99.games\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\13.recursion\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\13.recursion\README"
|
||||
Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.frag"
|
||||
Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\*.vert"
|
||||
Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\config.txt"
|
||||
Delete "$GEM_OUTDIR\examples\12.multi_screen_projection\grid.jpg"
|
||||
Delete "$GEM_OUTDIR\examples\11.obj-exporter\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\10.glsl\*.frag"
|
||||
Delete "$GEM_OUTDIR\examples\10.glsl\*.vert"
|
||||
Delete "$GEM_OUTDIR\examples\10.glsl\*.geom"
|
||||
Delete "$GEM_OUTDIR\examples\10.glsl\*.jpg"
|
||||
Delete "$GEM_OUTDIR\examples\10.glsl\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\09.openGL\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\08.io\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\07.texture\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\06.particle\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\05.text\*.ttf"
|
||||
Delete "$GEM_OUTDIR\examples\05.text\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\04.video\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\04.pix\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\03.lighting\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\02.advanced\*.pd"
|
||||
Delete "$GEM_OUTDIR\examples\01.basic\*.pd"
|
||||
RMDir "$GEM_OUTDIR\examples\data"
|
||||
RMDir "$GEM_OUTDIR\examples\99.games"
|
||||
RMDir "$GEM_OUTDIR\examples\13.recursion"
|
||||
RMDir "$GEM_OUTDIR\examples\12.multi_screen_projection"
|
||||
RMDir "$GEM_OUTDIR\examples\11.obj-exporter"
|
||||
RMDir "$GEM_OUTDIR\examples\10.glsl"
|
||||
RMDir "$GEM_OUTDIR\examples\09.openGL"
|
||||
RMDir "$GEM_OUTDIR\examples\08.io"
|
||||
RMDir "$GEM_OUTDIR\examples\07.texture"
|
||||
RMDir "$GEM_OUTDIR\examples\06.particle"
|
||||
RMDir "$GEM_OUTDIR\examples\05.text"
|
||||
RMDir "$GEM_OUTDIR\examples\04.video"
|
||||
RMDir "$GEM_OUTDIR\examples\04.pix"
|
||||
RMDir "$GEM_OUTDIR\examples\03.lighting"
|
||||
RMDir "$GEM_OUTDIR\examples\02.advanced"
|
||||
RMDir "$GEM_OUTDIR\examples\01.basic"
|
||||
RMDir "$GEM_OUTDIR\examples"
|
||||
|
||||
Delete "$GEM_OUTDIR\pix_*.pd"
|
||||
Delete "$GEM_OUTDIR\*-help.pd"
|
||||
Delete "$GEM_OUTDIR\*.pd"
|
||||
|
||||
Delete "$GEM_OUTDIR\gem_filmAVI.dll"
|
||||
Delete "$GEM_OUTDIR\gem_filmDS.dll"
|
||||
Delete "$GEM_OUTDIR\gem_filmQT.dll"
|
||||
Delete "$GEM_OUTDIR\gem_imageJPEG.dll"
|
||||
Delete "$GEM_OUTDIR\gem_imageMAGICK.dll"
|
||||
Delete "$GEM_OUTDIR\gem_imageQT.dll"
|
||||
Delete "$GEM_OUTDIR\gem_imageSGI.dll"
|
||||
Delete "$GEM_OUTDIR\gem_imageTIFF.dll"
|
||||
Delete "$GEM_OUTDIR\gem_recordQT.dll"
|
||||
; Delete "$GEM_OUTDIR\gem_videoAVT.dll"
|
||||
Delete "$GEM_OUTDIR\gem_videoDS.dll"
|
||||
Delete "$GEM_OUTDIR\gem_videoHALCON.dll"
|
||||
; Delete "$GEM_OUTDIR\gem_videoPYLON.dll"
|
||||
Delete "$GEM_OUTDIR\gem_videoVFW.dll"
|
||||
Delete "$GEM_OUTDIR\Gem.dll"
|
||||
Delete "$GEM_OUTDIR\GnuGPL.LICENSE.txt"
|
||||
Delete "$GEM_OUTDIR\COPYING.txt"
|
||||
Delete "$GEM_OUTDIR\ChangeLog"
|
||||
Delete "$GEM_OUTDIR\README.txt"
|
||||
|
||||
/* Development */
|
||||
Delete "$GEMDEV_OUTDIR\Gem.lib"
|
||||
Delete "$GEMDEV_OUTDIR\RTE\MessageCallbacks.h"
|
||||
Delete "$GEMDEV_OUTDIR\RTE\Array.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\ThreadSemaphore.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\ThreadMutex.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\SynchedWorkerThread.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\WorkerThread.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\PixConvert.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\ImageIO.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Image.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\GLStack.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\wglew.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\glxew.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\glew.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\GemGL.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Event.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\PBuffer.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Manager.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Loaders.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Settings.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Properties.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\ContextData.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Files.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Dylib.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Exception.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Cache.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\State.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\RTE.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\Version.h"
|
||||
Delete "$GEMDEV_OUTDIR\Gem\ExportDef.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\Vector.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\SIMD.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\PixPete.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\Matrix.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\GemMath.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\GLUtil.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\Functions.h"
|
||||
Delete "$GEMDEV_OUTDIR\Utils\any.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemContext.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemWindow.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\TextBase.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemShape.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixDualObj.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixObj.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPathBase.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemGluObj.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemGLBase.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemBase.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\CPPExtern.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\video.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\record.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\imagesaver.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\imageloader.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\film.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\PluginFactoryTimple.h"
|
||||
Delete "$GEMDEV_OUTDIR\plugins\PluginFactory.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\Matrix.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemVersion.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemVector.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemState.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemSIMD.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixUtil.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixPete.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixImageSave.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixImageLoad.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPixConvert.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemPBuffer.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemMath.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemMan.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemLoaders.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemGLUtil.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemGL.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemFuncUtil.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemExportDef.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemEvent.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemContextData.h"
|
||||
Delete "$GEMDEV_OUTDIR\Base\GemCache.h"
|
||||
RMDir "$GEMDEV_OUTDIR\RTE"
|
||||
RMDir "$GEMDEV_OUTDIR\Gem"
|
||||
RMDir "$GEMDEV_OUTDIR\Utils"
|
||||
RMDir "$GEMDEV_OUTDIR\Base"
|
||||
RMDir "$GEMDEV_OUTDIR\plugins"
|
||||
RMDir "$GEMDEV_OUTDIR\Base"
|
||||
RMDir "$GEMDEV_OUTDIR"
|
||||
|
||||
/* extra */
|
||||
Delete "$EXTRA_OUTDIR\pix_drum\pix_drum.dll"
|
||||
Delete "$EXTRA_OUTDIR\pix_drum\pix_drum-help.pd"
|
||||
Delete "$EXTRA_OUTDIR\pix_drum\LICENSE.txt"
|
||||
Delete "$EXTRA_OUTDIR\pix_mano\pix_mano.dll"
|
||||
Delete "$EXTRA_OUTDIR\pix_mano\pix_mano-help.pd"
|
||||
Delete "$EXTRA_OUTDIR\pix_mano\LICENSE.txt"
|
||||
Delete "$EXTRA_OUTDIR\pix_fiducialtrack\pix_fiducialtrack.dll"
|
||||
Delete "$EXTRA_OUTDIR\pix_fiducialtrack\pix_fiducialtrack-help.pd"
|
||||
Delete "$EXTRA_OUTDIR\pix_fiducialtrack\all.trees"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\pix_artoolkit.dll"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\pix_artoolkit-help.pd"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\README.txt"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\camera_para.dat"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\patt.hiro"
|
||||
Delete "$EXTRA_OUTDIR\pix_artoolkit\pattHiro.pdf"
|
||||
|
||||
RMDir "$EXTRA_OUTDIR\pix_drum"
|
||||
RMDir "$EXTRA_OUTDIR\pix_mano"
|
||||
RMDir "$EXTRA_OUTDIR\pix_fiducialtrack"
|
||||
RMDir "$EXTRA_OUTDIR\pix_artoolkit"
|
||||
|
||||
Delete "$GEM_OUTDIR\uninst.exe"
|
||||
RMDir "$GEM_OUTDIR"
|
||||
|
||||
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||
; try to delete SHCTX \"Environment"\"GEM_DEFAULT_FONT" if it is "$GEM_OUTDIR\examples\data\vera.ttf"
|
||||
|
||||
SetAutoClose true
|
||||
SectionEnd
|
||||
|
||||
Section -Post
|
||||
WriteUninstaller "$GEM_OUTDIR\uninst.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$GEM_OUTDIR\uninst.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||
SectionEnd
|
||||
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_Gem} "Graphical Environment for Multimedia"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_GemBinary} "the Gem binary"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_GemAbs} "Gem-abstractions"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_documentation} "Gem documentation: patches, HTML, PDFs,..."
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_ref} "reference patches for Gem-objects"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_examples} "a large number of patches showing what to do with GEM"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_manual} "HTML-manual"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_doc} "Gem primer,..."
|
||||
|
||||
#plugins
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin} "plugins to enhance Gem's capabilities"
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_film} "plugins for movie loading"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmDS} "allows to read movies using DirectShow filters"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmQT} "allows to read movies using Apple's QuickTime library (if present)"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_filmAVI} "allows to read movies using Microsoft's old (and deprecated) AVI library"
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_record} "plugins for video output"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_recordQT} "allows to output Gem-pixes into QuickTime MOVie files"
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_image} "plugins for image loading/saving"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageMAGICK} "allows to read/write still images using ImageMagick (this can virtually read/write any image format, including but not limited to JPEG, TIFF and SGI, so it's probably the only 'image' plugin you need)"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageQT} "allows to read/write still images using Apple's QuickTime; NOTE that this will disable threaded loading of images"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageSGI} "allows to read SGI images"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageJPEG} "allows to read/write JPEG images"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_imageTIFF} "allows to read/write TIFF images"
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_video} "plugins for live video capturing"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoDS} "allows to capture live video sources using DirectShow filters"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoVFW} "allows to capture live video using Microsoft's old (and deprecated) Video-For-Windows method"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoAVT} "allows to capture live video from GigE-cameras using AVT (Allied Vision Technologies); supported cameras include the Prosilica family (http://www.alliedvisiontec.com) "
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoHALCON} "allows to capture live video from a number of devices (including GigE-cameras and industry grade frame grabbers) using MVTec's HALCON library; you will need to purchase a license from MVTec in order to be able to use this plugin (http://www.mvtec.com) "
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_plugin_videoPYLON} "allows to capture live video from GigE-cameras using Basler's PYLON library; mainly supports Basler cameras; you might need to download additional software in order to use this plugin (http://www.baslerweb.com)"
|
||||
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra} "additional objectclasses"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_drum} "Jaime Olivier's [pix_drum] object for his 'Silent Drum'"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_mano} "Jaime Olivier's [pix_mano] object"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_fiducialtrack} "a port of the reactable(tm)'s fiducial tracking algorithm"
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_extra_pix_artoolkit} "fiducial tracking using ARToolkit markers"
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${SEC_dev} "Headers and Library-Files for developing your own Gem objects"
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
11
Gem/build/win-nsis/buildinstaller.bat
Normal file
11
Gem/build/win-nsis/buildinstaller.bat
Normal file
|
@ -0,0 +1,11 @@
|
|||
set NSISDIR=%ProgramFiles%\NSIS\
|
||||
set GEMNSIS=%CD%
|
||||
|
||||
cd %NSISDIR%
|
||||
|
||||
set PROD=/DPRODUCT_VERSION=%1
|
||||
if "%1"=="" set PROD="/DBLABLA"
|
||||
|
||||
makensis %PROD% %GEMNSIS%\Gem.nsi
|
||||
|
||||
cd %GEMNSIS%
|
91
Gem/build/win-nsis/uninstaller1.nsi
Normal file
91
Gem/build/win-nsis/uninstaller1.nsi
Normal file
|
@ -0,0 +1,91 @@
|
|||
;
|
||||
; uninstall only (and all) installed files
|
||||
; ripped from http://nsis.sourceforge.net/Uninstall_only_installed_files
|
||||
;
|
||||
; Part 1/2: THIS HAS TO GO DIRECTLY BEFORE THE "SECTIONS"
|
||||
;
|
||||
; Instead of using SetOutPath, CreateDirectory, File, CopyFiles, Rename and
|
||||
; WriteUninstaller instructions in your sections, use ${SetOutPath},
|
||||
; ${CreateDirectory}, ${File}, ${CopyFiles}, ${Rename} and ${WriteUninstaller}
|
||||
; instead.
|
||||
;
|
||||
; When using ${SetOutPath} to create more than one upper level directory, e.g.:
|
||||
; ${SetOutPath} "$INSTDIR\dir1\dir2\dir3", you need to add entries for each lower
|
||||
; level directory for them all to be deleted:
|
||||
; ${AddItem} "$INSTDIR\dir1"
|
||||
; ${AddItem} "$INSTDIR\dir1\dir2"
|
||||
; ${SetOutPath} "$INSTDIR\dir1\dir2\dir3"
|
||||
|
||||
!define UninstLog "uninstall.log"
|
||||
Var UninstLog
|
||||
|
||||
; Uninstall log file missing.
|
||||
LangString UninstLogMissing ${LANG_ENGLISH} "${UninstLog} not found!$\r$\nUninstallation cannot proceed!"
|
||||
|
||||
; AddItem macro
|
||||
!macro AddItem Path
|
||||
FileWrite $UninstLog "${Path}$\r$\n"
|
||||
!macroend
|
||||
!define AddItem "!insertmacro AddItem"
|
||||
|
||||
; File macro
|
||||
!macro File FilePath FileName
|
||||
IfFileExists "$OUTDIR\${FileName}" +2
|
||||
FileWrite $UninstLog "$OUTDIR\${FileName}$\r$\n"
|
||||
File "${FilePath}${FileName}"
|
||||
!macroend
|
||||
!define File "!insertmacro File"
|
||||
|
||||
; CreateShortcut macro
|
||||
!macro CreateShortcut FilePath FilePointer
|
||||
FileWrite $UninstLog "${FilePath}$\r$\n"
|
||||
CreateShortcut "${FilePath}" "${FilePointer}"
|
||||
!macroend
|
||||
!define CreateShortcut "!insertmacro CreateShortcut"
|
||||
|
||||
; Copy files macro
|
||||
!macro CopyFiles SourcePath DestPath
|
||||
IfFileExists "${DestPath}" +2
|
||||
FileWrite $UninstLog "${DestPath}$\r$\n"
|
||||
CopyFiles "${SourcePath}" "${DestPath}"
|
||||
!macroend
|
||||
!define CopyFiles "!insertmacro CopyFiles"
|
||||
|
||||
; Rename macro
|
||||
!macro Rename SourcePath DestPath
|
||||
IfFileExists "${DestPath}" +2
|
||||
FileWrite $UninstLog "${DestPath}$\r$\n"
|
||||
Rename "${SourcePath}" "${DestPath}"
|
||||
!macroend
|
||||
!define Rename "!insertmacro Rename"
|
||||
|
||||
; CreateDirectory macro
|
||||
!macro CreateDirectory Path
|
||||
CreateDirectory "${Path}"
|
||||
FileWrite $UninstLog "${Path}$\r$\n"
|
||||
!macroend
|
||||
!define CreateDirectory "!insertmacro CreateDirectory"
|
||||
|
||||
; SetOutPath macro
|
||||
!macro SetOutPath Path
|
||||
SetOutPath "${Path}"
|
||||
FileWrite $UninstLog "${Path}$\r$\n"
|
||||
!macroend
|
||||
!define SetOutPath "!insertmacro SetOutPath"
|
||||
|
||||
; WriteUninstaller macro
|
||||
!macro WriteUninstaller Path
|
||||
WriteUninstaller "${Path}"
|
||||
FileWrite $UninstLog "${Path}$\r$\n"
|
||||
!macroend
|
||||
!define WriteUninstaller "!insertmacro WriteUninstaller"
|
||||
|
||||
Section -openlogfile
|
||||
CreateDirectory "$INSTDIR"
|
||||
IfFileExists "$INSTDIR\${UninstLog}" +3
|
||||
FileOpen $UninstLog "$INSTDIR\${UninstLog}" w
|
||||
Goto +4
|
||||
SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
|
||||
FileOpen $UninstLog "$INSTDIR\${UninstLog}" a
|
||||
FileSeek $UninstLog 0 END
|
||||
SectionEnd
|
60
Gem/build/win-nsis/uninstaller2.nsi
Normal file
60
Gem/build/win-nsis/uninstaller2.nsi
Normal file
|
@ -0,0 +1,60 @@
|
|||
;
|
||||
; uninstall only (and all) installed files
|
||||
; ripped from http://nsis.sourceforge.net/Uninstall_only_installed_files
|
||||
;
|
||||
; Part 2/2: THIS HAS TO GO DIRECTLY AFTER THE "SECTIONS"
|
||||
;
|
||||
; LATER: allow the user to proceed uninstallation even without an uninstall.log
|
||||
; (e.g. by deleting the entire tree - at the users own risk!)
|
||||
|
||||
|
||||
|
||||
Section -closelogfile
|
||||
FileClose $UninstLog
|
||||
SetFileAttributes "$INSTDIR\${UninstLog}" READONLY|SYSTEM|HIDDEN
|
||||
SectionEnd
|
||||
|
||||
Section Uninstall
|
||||
|
||||
; Can't uninstall if uninstall log is missing!
|
||||
IfFileExists "$INSTDIR\${UninstLog}" +3
|
||||
MessageBox MB_OK|MB_ICONSTOP "$(UninstLogMissing)"
|
||||
Abort
|
||||
|
||||
Push $R0
|
||||
Push $R1
|
||||
Push $R2
|
||||
SetFileAttributes "$INSTDIR\${UninstLog}" NORMAL
|
||||
FileOpen $UninstLog "$INSTDIR\${UninstLog}" r
|
||||
StrCpy $R1 -1
|
||||
|
||||
GetLineCount:
|
||||
ClearErrors
|
||||
FileRead $UninstLog $R0
|
||||
IntOp $R1 $R1 + 1
|
||||
StrCpy $R0 $R0 -2
|
||||
Push $R0
|
||||
IfErrors 0 GetLineCount
|
||||
|
||||
Pop $R0
|
||||
|
||||
LoopRead:
|
||||
StrCmp $R1 0 LoopDone
|
||||
Pop $R0
|
||||
|
||||
IfFileExists "$R0\*.*" 0 +3
|
||||
RMDir $R0 #is dir
|
||||
Goto +3
|
||||
IfFileExists $R0 0 +2
|
||||
Delete $R0 #is file
|
||||
|
||||
IntOp $R1 $R1 - 1
|
||||
Goto LoopRead
|
||||
LoopDone:
|
||||
FileClose $UninstLog
|
||||
Delete "$INSTDIR\${UninstLog}"
|
||||
RMDir "$INSTDIR"
|
||||
Pop $R2
|
||||
Pop $R1
|
||||
Pop $R0
|
||||
SectionEnd
|
Loading…
Add table
Add a link
Reference in a new issue