ProjectDefinition.st
branchjv
changeset 17757 73caeb68bf1f
parent 17754 5322906cdb6a
child 17758 a6670a2296fd
equal deleted inserted replaced
17756:f4d72b8d0d89 17757:73caeb68bf1f
  3107 !
  3107 !
  3108 
  3108 
  3109 generateClassLines:classLineTemplate forClasses:classNames
  3109 generateClassLines:classLineTemplate forClasses:classNames
  3110     "for the init-file: generate class-init-lines for a collection of classes"
  3110     "for the init-file: generate class-init-lines for a collection of classes"
  3111 
  3111 
       
  3112     ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true 
       
  3113 !
       
  3114 
       
  3115 generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
       
  3116     "for the init-file: generate class-init-lines for a collection of classes"
       
  3117 
  3112     ^ String 
  3118     ^ String 
  3113         streamContents:[:s | 
  3119         streamContents:[:s | 
  3114             |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
  3120             |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
  3115 
  3121 
  3116             putLineForClassName := [:className | 
  3122             putLineForClassName := [:className | 
  3130                             cls isNil or:[ cls isLoaded not ]
  3136                             cls isNil or:[ cls isLoaded not ]
  3131                         ].
  3137                         ].
  3132             classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
  3138             classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
  3133             classNamesSorted do:putLineForClassName.
  3139             classNamesSorted do:putLineForClassName.
  3134             classNamesUnloaded do:putLineForClassName.
  3140             classNamesUnloaded do:putLineForClassName.
  3135             self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
  3141 
  3136                 do:[:nm :attr | 
  3142             includeAdditionalClasses ifTrue:[
  3137                     (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
  3143                 self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
  3138                         putLineForClassName value:nm.
  3144                     do:[:nm :attr | 
  3139                     ].
  3145                         (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
  3140                 ].
  3146                             putLineForClassName value:nm.
  3141             #( ('UNIX' unix)
       
  3142                ('WIN32' win32)
       
  3143                ('VMS' vms)
       
  3144                ('BEOS' beos) ) 
       
  3145                     pairsDo:[:ifdef :platformName | 
       
  3146                         |archClassNames archClassesLoaded|
       
  3147 
       
  3148                         archClassNames := self compiled_classNamesForPlatform:platformName.
       
  3149                         archClassNames notEmpty ifTrue:[
       
  3150                             s nextPutLine:'#ifdef ' , ifdef.
       
  3151                             archClassNames do:[:clsName | 
       
  3152                                 putLineForClassName value:clsName
       
  3153                             ].
       
  3154                             s nextPutLine:'#endif /* ' , ifdef , ' */'.
       
  3155                         ].
  3147                         ].
  3156                     ].
  3148                     ].
       
  3149                 #( ('UNIX' unix)
       
  3150                    ('WIN32' win32)
       
  3151                    ('VMS' vms)
       
  3152                    ('BEOS' beos) ) 
       
  3153                         pairsDo:[:ifdef :platformName | 
       
  3154                             |archClassNames archClassesLoaded|
       
  3155 
       
  3156                             archClassNames := self compiled_classNamesForPlatform:platformName.
       
  3157                             archClassNames notEmpty ifTrue:[
       
  3158                                 s nextPutLine:'#ifdef ' , ifdef.
       
  3159                                 archClassNames do:[:clsName | 
       
  3160                                     putLineForClassName value:clsName
       
  3161                                 ].
       
  3162                                 s nextPutLine:'#endif /* ' , ifdef , ' */'.
       
  3163                             ].
       
  3164                         ].
       
  3165             ]
  3157         ]
  3166         ]
  3158 
  3167 
  3159     "
  3168     "
  3160      bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
  3169      bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
  3161      bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
  3170      bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
  3523     "for the init-file: generate a single class-init-line for the definition class itself"
  3532     "for the init-file: generate a single class-init-line for the definition class itself"
  3524 
  3533 
  3525     ^ self 
  3534     ^ self 
  3526         generateClassLines:(self classLine_libInit_dot_cc) 
  3535         generateClassLines:(self classLine_libInit_dot_cc) 
  3527         forClasses:(Array with:self name)
  3536         forClasses:(Array with:self name)
  3528 
  3537         includeAdditionalClasses:false 
  3529     "
  3538 
  3530      stx_libbasic3 generate_definitionClassNameLines_libInit_dot_cc
  3539     "
       
  3540      stx_libbasic generate_definitionClassLine_libInit_dot_cc
  3531     "
  3541     "
  3532 !
  3542 !
  3533 
  3543 
  3534 headerFileOutputArg
  3544 headerFileOutputArg
  3535 "/    "all stx stuff goes to the common include directory.
  3545 "/    "all stx stuff goes to the common include directory.
  5364 ! !
  5374 ! !
  5365 
  5375 
  5366 !ProjectDefinition class methodsFor:'documentation'!
  5376 !ProjectDefinition class methodsFor:'documentation'!
  5367 
  5377 
  5368 version
  5378 version
  5369     ^ '$Id: ProjectDefinition.st 10505 2010-03-08 21:39:02Z vranyj1 $'
  5379     ^ '$Id: ProjectDefinition.st 10510 2010-04-08 17:25:02Z vranyj1 $'
  5370 !
  5380 !
  5371 
  5381 
  5372 version_CVS
  5382 version_CVS
  5373     ^ 'Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.310 2010/03/08 11:06:20 cg Exp §'
  5383     ^ 'Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.311 2010/03/24 11:21:23 sr Exp §'
  5374 !
  5384 !
  5375 
  5385 
  5376 version_SVN
  5386 version_SVN
  5377     ^ '$Id: ProjectDefinition.st 10505 2010-03-08 21:39:02Z vranyj1 $'
  5387     ^ '$Id: ProjectDefinition.st 10510 2010-04-08 17:25:02Z vranyj1 $'
  5378 ! !
  5388 ! !
  5379 
  5389 
  5380 ProjectDefinition initialize!
  5390 ProjectDefinition initialize!
  5381 
  5391 
  5382 
  5392 
       
  5393