#DOCUMENTATION by cg
authorClaus Gittinger <cg@exept.de>
Fri, 24 Feb 2017 09:59:16 +0100
changeset 21562 1218cac5c5c5
parent 21561 f16f5dd4602d
child 21563 f1041933ad1a
#DOCUMENTATION by cg class: ProjectDefinition comment/format in: #applicationDocumentTypeDescriptions #documentation #osx_info_dot_plist_dictionary
ProjectDefinition.st
--- a/ProjectDefinition.st	Fri Feb 24 02:35:24 2017 +0100
+++ b/ProjectDefinition.st	Fri Feb 24 09:59:16 2017 +0100
@@ -84,20 +84,25 @@
     As ST/X is (still) very tightly bound with stc, we keep the package and project information
     in a class-object (instead of some project object) and all queries about package contents and 
     attributes are implemented as class methods. 
+    (after all: a class is an object, which can be asked by sending it messages...
+     ... so why would one want extra meta-descriptions with extra syntax?)
+    
     This has the advantage, that it can be compiled and included in a compiled class library just like any other class.
+
     Every package includes a subclass of me (an instance of my meta), which provides useful
     information about the versioning and packaging. 
     Me myself, I know how to generate dependency information and can generate makefiles and other build-support 
     files for compilation (see the browser's 'Checkin Build Support File' menu item. For more details, see
-    section 'Build Support Files' below.
+    section 'Build Support Files' below).
 
     When a package is loaded from a binary shared class lib (i.e. a compiled class library is loaded
     via 'Smalltalk loadPackage:'), the loading is done in multiple phases:
         1) the shared object is loaded, but not installed (registered) in Smalltalk
         2) the ProjectDefinition class is registered and initialized.
-        3) the ProjectDefinition class is asked to load its prerequisites. This may lead to other packages
-           to be loaded - either as binary class libraries or from source, whichever is found.
-        4) the remaining classes and extensions are registered
+        3) the ProjectDefinition class is asked to load its prerequisites. 
+           This may recursively lead to other packages to be loaded 
+           - either as binary class libraries, as bytecode or from source; whichever is found.
+        4) the remaining classes and extensions of the package are registered
 
     ## Some special notes about extension methods:
       if a package is loaded (Smalltalk loadPackage:'foo:bar/baz'), any already loaded package of which
@@ -109,21 +114,21 @@
 
       Also, the information about which other package was in charge when a method is overwritten is recorded in
       extensionOverwriteInfo. 
-      This is used to correctly reinstall an overwritten method, whenever a package is unloaded.
+      This is used to correctly reinstall any overwritten method, whenever a package is unloaded.
 
     ## Build Support Files
 
-    To support pre-compilation of a package, ProjectDefinition can generate a set of makefiles and other
+    To support compilation of a package, ProjectDefinition can generate a set of makefiles and other
     support files to allow that. To see the set of files that should be generated, see #fileNamesToGenerate.
     These files are usually generated and saved to the repository upon a commit - the source code management
     does (should) care for this.
 
-    Packages may add more files to this list by defining an (extension) mehtod in project definition class
+    Packages may add more files to this list by defining an (extension) method in project definition class
     and by annotating the method by <file:overwrite:> annotation:
 
         * the first parameter is the file name to generate as String, relative to the package root. As directory
           separator, use slash (as on UNIX), it will be automagically converted to platform's separator.
-        * The second paramterer (true or false) tells the SCM whether the file should be generated (and thus
+        * The second parametrer (true or false) tells the SCM whether the file should be generated (and thus
           overwritten) upon each commit (when true) or only the first time (when false). Important: see the 
           remark below.
         * The method itself should return file's contents a string. If it returns nil, then the file is *not*
@@ -2904,10 +2909,12 @@
      on which documents are handled by the application.
      This is used eg. for double-clicking on a document in OSX.
      If the deployed app can/should handle this, redefine this
-     to return a collection of instances of me."
+     to return a collection of instances of ApplicationDocumentTypeDescription."
 
 
     ^ nil
+
+    "Modified (comment): / 24-02-2017 / 09:36:42 / cg"
 !
 
 applicationIconFileName
@@ -5353,7 +5360,8 @@
     ] ifFalse:[
         plist at:'CFBundleName' put:(self applicationName).
         plist at:'CFBundlePackageType' put:'APPL'.
-    ].    
+    ].
+    
     (icnFilename := self applicationIconFileNameOSX) notNil ifTrue:[    
         plist at:'CFBundleIconFile' put:icnFilename.
     ].
@@ -5375,6 +5383,8 @@
     "
      exept_expecco_application info_dot_plist
     "
+
+    "Modified (format): / 24-02-2017 / 09:35:09 / cg"
 !
 
 packageName_dot_rc
@@ -8427,11 +8437,13 @@
     ^ typeName
 !
 
-typeName:something
-    "something like 'foo Document';
+typeName:aString
+    "aString like 'foo Document';
      eg. 'expecco test suite', 'expecco log file', etc."
 
-    typeName := something.
+    typeName := aString.
+
+    "Modified (comment): / 24-02-2017 / 09:37:26 / cg"
 ! !
 
 !ProjectDefinition class methodsFor:'documentation'!