ApplicationDefinition.st
branchjv
changeset 20579 9add81aadb7a
parent 20206 51652e7f46dd
parent 20545 131ea01d7c55
child 20580 bb4e5c4f84ef
equal deleted inserted replaced
20578:39641ba8d6e0 20579:9add81aadb7a
   560 
   560 
   561     "Created: / 12-10-2012 / 10:19:56 / sr"
   561     "Created: / 12-10-2012 / 10:19:56 / sr"
   562 !
   562 !
   563 
   563 
   564 startupClassName
   564 startupClassName
   565     "The name of the class which provides the entry point for the application."
   565     "return he name of the class which provides the entry point for the application;
       
   566      a fully specified symbol or string."
   566 
   567 
   567     self subclassResponsibility
   568     self subclassResponsibility
   568 
   569 
   569     "Modified: / 17-08-2006 / 20:00:22 / cg"
   570     "Modified: / 17-08-2006 / 20:00:22 / cg"
   570 !
   571 !
   904         at: 'CONSOLE_APPLICATION_OR_EMPTY' put:(self makeConsoleApplication ifTrue:['consoleApp'] ifFalse:'');
   905         at: 'CONSOLE_APPLICATION_OR_EMPTY' put:(self makeConsoleApplication ifTrue:['consoleApp'] ifFalse:'');
   905         at: 'NOCONSOLE_APPLICATION_OR_EMPTY' put:(self makeNonConsoleApplication ifTrue:['noConsoleApp'] ifFalse:'');
   906         at: 'NOCONSOLE_APPLICATION_OR_EMPTY' put:(self makeNonConsoleApplication ifTrue:['noConsoleApp'] ifFalse:'');
   906         at: 'APPLICATION' put: (self applicationName);
   907         at: 'APPLICATION' put: (self applicationName);
   907         at: 'NSI_FILENAME' put: self nsiFilename ;
   908         at: 'NSI_FILENAME' put: self nsiFilename ;
   908         at: 'PRODUCT_NAME' put: (self productName);
   909         at: 'PRODUCT_NAME' put: (self productName);
       
   910         at: 'PRODUCT_FILENAME' put: (self productFilename);
   909         at: 'CONSOLE_APPLICATION' put: (self applicationNameConsole);
   911         at: 'CONSOLE_APPLICATION' put: (self applicationNameConsole);
   910         at: 'NOCONSOLE_APPLICATION' put: (self applicationNameNoConsole);
   912         at: 'NOCONSOLE_APPLICATION' put: (self applicationNameNoConsole);
   911         at: 'NOCONSOLE_LOGFILE' put:(self logFilenameNoConsole);
   913         at: 'NOCONSOLE_LOGFILE' put:(self logFilenameNoConsole);
   912         at: 'RESFILENAME' put: (self resourceFilename );
   914         at: 'RESFILENAME' put: (self resourceFilename );
   913         at: 'RCFILENAME' put: (self rcFilename );
   915         at: 'RCFILENAME' put: (self rcFilename );
   996 
   998 
   997 dmgImageSetupLines
   999 dmgImageSetupLines
   998     "generate (unix) copy commands to generate a directory holding the dmg prototype image directory.
  1000     "generate (unix) copy commands to generate a directory holding the dmg prototype image directory.
   999      This is used to generate a macOS deployable package"
  1001      This is used to generate a macOS deployable package"
  1000 
  1002 
  1001     |genLine product dmgVolume dmgDir appDir contentsDir macOSDir resourcesDir dirsMade|
  1003     |genLine product productFile dmgVolume dmgDir appDir contentsDir macOSDir resourcesDir dirsMade|
  1002 
  1004 
  1003     product := self productName.
  1005     product := self productName.
  1004 
  1006     productFile := self productFilename.
  1005     dmgVolume := product,'.dmg'.
  1007 
  1006     dmgDir := product,'_dmg'.
  1008     dmgVolume := productFile,'.dmg'.
  1007     appDir := dmgDir,'/',product,'.app'.
  1009     dmgDir := productFile,'_dmg'.
       
  1010     appDir := dmgDir,'/',productFile,'.app'.
  1008     contentsDir := appDir,'/Contents'.
  1011     contentsDir := appDir,'/Contents'.
  1009     macOSDir := contentsDir,'/MacOS'.
  1012     macOSDir := contentsDir,'/MacOS'.
  1010     resourcesDir := contentsDir,'/Resources'.
  1013     resourcesDir := contentsDir,'/Resources'.
  1011     dirsMade := Set new.
  1014     dirsMade := Set new.
  1012 
  1015 
  1031         s tab; nextPutLine:('@-rm -rf "%1"' bindWith:dmgDir).
  1034         s tab; nextPutLine:('@-rm -rf "%1"' bindWith:dmgDir).
  1032         s tab; nextPutLine:('@-mkdir "%1"' bindWith:dmgDir).  dirsMade add:dmgDir.
  1035         s tab; nextPutLine:('@-mkdir "%1"' bindWith:dmgDir).  dirsMade add:dmgDir.
  1033         s tab; nextPutLine:('@-mkdir "%1"' bindWith:appDir).  dirsMade add:appDir.
  1036         s tab; nextPutLine:('@-mkdir "%1"' bindWith:appDir).  dirsMade add:appDir.
  1034         s tab; nextPutLine:('@-mkdir "%1"' bindWith:contentsDir).  dirsMade add:contentsDir.
  1037         s tab; nextPutLine:('@-mkdir "%1"' bindWith:contentsDir).  dirsMade add:contentsDir.
  1035         s tab; nextPutLine:('@-mkdir "%1"' bindWith:macOSDir).  dirsMade add:macOSDir.
  1038         s tab; nextPutLine:('@-mkdir "%1"' bindWith:macOSDir).  dirsMade add:macOSDir.
  1036         s tab; nextPutLine:('cp "',self applicationName,'" "',macOSDir,'/',product,'"').
  1039         s tab; nextPutLine:('cp "',self applicationName,'" "',macOSDir,'/',productFile,'"').
  1037         self commonFilesToInstall_unix do:[:eachPair | genLine value:s value:'MacOS' value:eachPair].
  1040         self commonFilesToInstall_unix do:[:eachPair | genLine value:s value:'MacOS' value:eachPair].
  1038         self additionalFilesToInstall_unix do:[:eachPair | genLine value:s value:'MacOS' value:eachPair].
  1041         self additionalFilesToInstall_unix do:[:eachPair | genLine value:s value:'MacOS' value:eachPair].
  1039     ].
  1042     ].
  1040 !
  1043 !
  1041 
  1044 
  1855 # This uses the Nullsoft Installer Package and works in Windows only
  1858 # This uses the Nullsoft Installer Package and works in Windows only
  1856 
  1859 
  1857 !!if defined(USEMINGW64)
  1860 !!if defined(USEMINGW64)
  1858 
  1861 
  1859 setup: $(PROJECT) postBuildCleanup %(NSI_FILENAME) 
  1862 setup: $(PROJECT) postBuildCleanup %(NSI_FILENAME) 
  1860         $(MAKENSIS) /DOBJ_DIR=objmingw /DSETUP_NAME=%(PRODUCT_NAME)Setup64 %(NSI_FILENAME)
  1863         $(MAKENSIS) /DOBJ_DIR=objmingw /DSETUP_NAME=%(PRODUCT_FILENAME)Setup64 %(NSI_FILENAME)
  1861         %(ADDITIONAL_POSTNSISRULES64)
  1864         %(ADDITIONAL_POSTNSISRULES64)
  1862 
  1865 
  1863 !!else
  1866 !!else
  1864 
  1867 
  1865 setup: $(PROJECT) postBuildCleanup %(NSI_FILENAME)
  1868 setup: $(PROJECT) postBuildCleanup %(NSI_FILENAME)
  1866         $(MAKENSIS) /DOBJ_DIR=objbc /DSETUP_NAME=%(PRODUCT_NAME)Setup %(NSI_FILENAME)
  1869         $(MAKENSIS) /DOBJ_DIR=objbc /DSETUP_NAME=%(PRODUCT_FILENAME)Setup %(NSI_FILENAME)
  1867         %(ADDITIONAL_POSTNSISRULES)
  1870         %(ADDITIONAL_POSTNSISRULES)
  1868 
  1871 
  1869 !!endif
  1872 !!endif
  1870 
  1873 
  1871 newBuildDate:
  1874 newBuildDate:
  2499         fi
  2502         fi
  2500 
  2503 
  2501 #
  2504 #
  2502 # for mac, a dmg is generated
  2505 # for mac, a dmg is generated
  2503 #
  2506 #
  2504 setup_macosx:   "%(PRODUCT_NAME)_dmg"
  2507 setup_macosx:   "%(PRODUCT_FILENAME)_dmg"
  2505         -rm "%(PRODUCT_NAME).dmg"
  2508         -rm "%(PRODUCT_FILENAME).dmg"
  2506         hdiutil create -fs HFSX -layout SPUD "%(PRODUCT_NAME).dmg" -srcfolder "%(PRODUCT_NAME)_dmg" -format UDZO -volname "%(PRODUCT_NAME)" -quiet
  2509         hdiutil create -fs HFSX -layout SPUD "%(PRODUCT_FILENAME).dmg" -srcfolder "%(PRODUCT_FILENAME)_dmg" -format UDZO -volname "%(PRODUCT_NAME)" -quiet
  2507 
  2510 
  2508 app: "%(PRODUCT_NAME)_dmg"
  2511 app: "%(PRODUCT_FILENAME)_dmg"
  2509 
  2512 
  2510 "%(PRODUCT_NAME)_dmg": $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) 
  2513 "%(PRODUCT_FILENAME)_dmg": $(SUBPROJECT_LIBS) $(REQUIRED_SUPPORT_DIRS) 
  2511 %(DMG_IMAGE_SETUP)
  2514 %(DMG_IMAGE_SETUP)
  2512 
  2515 
  2513 SOURCEFILES: %(APPLICATION)_SOURCES \
  2516 SOURCEFILES: %(APPLICATION)_SOURCES \
  2514         stx_SOURCES
  2517         stx_SOURCES
  2515 
  2518 
  2928   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  2931   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
  2929   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  2932   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
  2930   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  2933   WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
  2931 SectionEnd
  2934 SectionEnd
  2932 
  2935 
  2933 LangString appOpen ${LANG_GERMAN}  "Mit %(PRODUCT_NAME) öffnen"
  2936 LangString appOpen ${LANG_GERMAN}  "Mit %(PRODUCT_NAME) ffnen"
  2934 LangString appOpen ${LANG_ENGLISH} "Open with %(PRODUCT_NAME)"
  2937 LangString appOpen ${LANG_ENGLISH} "Open with %(PRODUCT_NAME)"
  2935 
  2938 
  2936 LangString DESC_Section1 ${LANG_ENGLISH} "Program components of %(PRODUCT_NAME)"
  2939 LangString DESC_Section1 ${LANG_ENGLISH} "Program components of %(PRODUCT_NAME)"
  2937 LangString DESC_Section1 ${LANG_GERMAN}  "Alle Programmkomponenten von %(PRODUCT_NAME)"
  2940 LangString DESC_Section1 ${LANG_GERMAN}  "Alle Programmkomponenten von %(PRODUCT_NAME)"
  2938 %(SEMI_IF_NO_DOC_EXISTS)LangString DESC_Section2 ${LANG_ENGLISH} "Online-Documentation of %(PRODUCT_NAME)"
  2941 %(SEMI_IF_NO_DOC_EXISTS)LangString DESC_Section2 ${LANG_ENGLISH} "Online-Documentation of %(PRODUCT_NAME)"
  2962   MessageBox MB_ICONINFORMATION|MB_OK "%(PRODUCT_NAME) wurde erfolgreich deinstalliert"
  2965   MessageBox MB_ICONINFORMATION|MB_OK "%(PRODUCT_NAME) wurde erfolgreich deinstalliert"
  2963 FunctionEnd
  2966 FunctionEnd
  2964 
  2967 
  2965 Function un.onInit
  2968 Function un.onInit
  2966 !!insertmacro MUI_UNGETLANGUAGE
  2969 !!insertmacro MUI_UNGETLANGUAGE
  2967   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Möchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
  2970   MessageBox MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 "Mchten Sie %(PRODUCT_NAME) und alle seine Komponenten deinstallieren?" IDYES +2
  2968   Abort
  2971   Abort
  2969 FunctionEnd
  2972 FunctionEnd
  2970 
  2973 
  2971 Section Uninstall
  2974 Section Uninstall
  2972   Delete "$INSTDIR\${PRODUCT_FILENAME}.url"
  2975   Delete "$INSTDIR\${PRODUCT_FILENAME}.url"