ProjectDefinition.st
author Claus Gittinger <cg@exept.de>
Wed, 05 Jun 2013 10:40:14 +0200
changeset 15372 2cc4ed16ea63
parent 15371 7b8fc09e7490
child 15376 e7851cc7f340
permissions -rw-r--r--
class: ProjectDefinition added: #loadMandatoryPreRequisitesAsAutoloaded: comment/format in: #initialClassNameForDefinitionOf: changed: #effectiveMandatoryPreRequisites when split-loading a package, after loadig the prjDef, let it ONLY load its mandatory prereqs (i.e. classes from which it inherits). Then load its body, then load the remaining prereqs. Otherwise we might get into trouble, when any of the non-mandatory prereqs requires parts of the body (a subpackage). Was leading to autoloading whith manualtest in expecco
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     1
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
     3
              All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     4
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     5
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     6
 only in accordance with the terms of that license and with the
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     8
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     9
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    10
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    11
"
9671
cb20763db715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9667
diff changeset
    12
"{ Package: 'stx:libbasic' }"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    13
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    14
Object subclass:#ProjectDefinition
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    15
	instanceVariableNames:''
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    16
	classVariableNames:'LibraryType GUIApplicationType NonGUIApplicationType
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    17
		PackagesBeingLoaded Verbose AbbrevDictionary AccessLock'
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    18
	poolDictionaries:''
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    19
	category:'System-Support-Projects'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    20
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    21
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
    22
ProjectDefinition class instanceVariableNames:'safeForOverwrittenMethods extensionOverwriteInfo projectIsLoaded'
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    23
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    24
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    25
 No other class instance variables are inherited by this class.
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    26
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    27
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    28
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    29
Object subclass:#AbbrevEntry
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    30
	instanceVariableNames:'className fileName category numClassInstVars'
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    31
	classVariableNames:''
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    32
	poolDictionaries:''
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
    33
	privateIn:ProjectDefinition
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    34
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    35
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    36
!ProjectDefinition class methodsFor:'documentation'!
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    37
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    38
buildingMakefiles
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    39
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    40
    You can define additional rules and flag settings for use in the makeFile generation:
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    41
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    42
    redefinable build-file attributes:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    43
        stcOptimizationOptions  -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    44
        stcWarningOptions       -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    45
        localIncludes_unix      -> LOCALINCLUDES (Make.proto)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    46
        localIncludes_win32     -> LOCALINCLUDES (bc.mak)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    47
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    48
    for applications:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    49
        startupClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    50
        startupSelector
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    51
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    52
    for libraries:
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    53
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    54
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    55
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    56
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    57
copyright
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    58
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    59
 COPYRIGHT (c) 2006 by eXept Software AG
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    60
              All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    61
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    62
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    63
 only in accordance with the terms of that license and with the
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    64
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    65
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    66
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    67
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    68
"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    69
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    70
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    71
documentation
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    72
"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    73
    As ST/X is (still) very tightly bound with stc, we keep the package and project information
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    74
    in a class-object (instead of some Project-object). This has the advantage, that it can be
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    75
    compiled and included in a compiled class library just like any other class.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    76
    Every package includes an subclass of me (an instance of my meta), which provides useful
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    77
    information about the versioning and packaging. Me myself, I know how to generate dependency
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    78
    information and can generate makefiles and other build-support files for compilation.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    79
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    80
    Some special notes about extension methods:
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    81
    if a package is loaded (Smalltalk loadPackage:'foo:bar/baz'), any already loaded package of which
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    82
    methods are overwritten by an extension of this package, the other package is asked to safe those
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    83
    methods in its safe(ForOverwrittenMethods). Thus, if the other package or any of its classes is asked
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    84
    to file itself out, it can do so using the safe (otherwise, you'D not be able to checkin a class while
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    85
    it has an overriding extension loaded).
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    86
    Also, the information about which other package was in charge when a method is overwritten is recorded in
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    87
    extensionOverwriteInfo. This is used to correctly reinstall an overwritten method, whenever a package is
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    88
    unloaded.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    89
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    90
"
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    91
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    92
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    93
!ProjectDefinition class methodsFor:'instance creation'!
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
    94
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    95
definitionClassForMonticelloPackage:aMonicelloPackagename
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    96
    ^ self definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    97
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    98
    "
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    99
     self definitionClassForMonticelloPackage:'foobar'
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   100
    "
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   101
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   102
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   103
definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:createIfAbsent
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   104
    ^ self allSubclasses
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   105
        detect:[:eachProjectDefinition |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   106
            eachProjectDefinition monticelloPackageName = aMonicelloPackagename ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   107
        ifNone:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   108
            |dfn squeakPackageInfo|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   109
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   110
            createIfAbsent ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   111
                dfn := ApplicationDefinition
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   112
                    definitionClassForPackage:'mc:',aMonicelloPackagename createIfAbsent:true projectType:GUIApplicationType.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   113
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   114
                "/ if the squeak-stuff is loaded, use it.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   115
                PackageInfo notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   116
                    squeakPackageInfo := PackageInfo allSubclasses
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   117
                                            detect:[:pi | pi new packageName = aMonicelloPackagename] ifNone:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   118
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   119
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   120
                squeakPackageInfo notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   121
                    dfn classNames:(squeakPackageInfo new classes collect:[:each | each name]).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   122
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   123
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   124
                nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   125
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   126
        ]
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   127
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   128
    "
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   129
     self definitionClassForMonticelloPackage:'foobar'
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   130
     self definitionClassForMonticelloPackage:'foobar' createIfAbsent:true
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   131
    "
13118
06c6d0c09bb2 changed: #definitionClassForMonticelloPackage:createIfAbsent:
Claus Gittinger <cg@exept.de>
parents: 13090
diff changeset
   132
06c6d0c09bb2 changed: #definitionClassForMonticelloPackage:createIfAbsent:
Claus Gittinger <cg@exept.de>
parents: 13090
diff changeset
   133
    "Modified: / 30-10-2010 / 00:26:07 / cg"
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   134
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   135
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   136
definitionClassForPackage:aPackageID
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   137
    ^ self definitionClassForPackage:aPackageID createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   138
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   139
    "Modified: / 17-08-2006 / 14:33:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   140
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   141
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   142
definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   143
    ^ self definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent projectType:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   144
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   145
    "Modified: / 23-08-2006 / 14:29:15 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   146
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   147
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   148
definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType:typeOrNil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   149
    |packageDefinitionClassName class|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   150
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
   151
    packageDefinitionClassName := self initialClassNameForDefinitionOf:aPackageID.
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   152
    class := Smalltalk classNamed:packageDefinitionClassName.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   153
    class isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   154
        doCreateIfAbsent ifTrue:[
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   155
            typeOrNil = GUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   156
                class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   157
            ] ifFalse:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   158
                typeOrNil = NonGUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   159
                    class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   160
                ] ifFalse:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   161
                    class := LibraryDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   162
                ]
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   163
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   164
            "setup before prerequisites are defined"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   165
            class setupForType:typeOrNil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   166
            "/ look what is there and include it; is this ok ?
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   167
            class compileDescriptionMethods
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   168
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   169
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   170
        typeOrNil notNil ifTrue:[
15371
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   171
            doCreateIfAbsent ifTrue:[
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   172
                class projectType == typeOrNil ifFalse: [
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   173
                    class setupForType:typeOrNil.
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   174
                ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   175
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   176
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   177
    ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   178
    ^ class
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   179
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   180
    "Created: / 23-08-2006 / 14:29:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   181
    "Modified: / 23-08-2006 / 15:35:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   182
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   183
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   184
definitionClassForPackage:newProjectID projectType:typeOrNil createIfAbsent:createIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   185
    ^ (self definitionClassForType:typeOrNil)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   186
            definitionClassForPackage:newProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   187
            createIfAbsent:createIfAbsent
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   188
            projectType:typeOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   189
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   190
    "Created: / 23-08-2006 / 14:28:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   191
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   192
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   193
definitionClassForType: type
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   194
    "answer the class that describes a give project type"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   195
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   196
    (type = LibraryType) ifTrue:[ ^ LibraryDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   197
    (type = GUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   198
    (type = NonGUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   199
    (type = 'Application') ifTrue:[ ^ ApplicationDefinition ].     "/ temporary - for backward compat.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   200
    self error:'unknown project type'.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   201
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   202
    "Created: / 17-08-2006 / 14:46:28 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   203
    "Modified: / 23-08-2006 / 13:49:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   204
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   205
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   206
newForPackage:packageID
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   207
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   208
        newNamed:(self initialClassNameForDefinitionOf:packageID)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   209
        package:packageID.
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   210
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   211
    "Created: / 11-08-2006 / 14:27:19 / cg"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   212
!
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   213
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   214
newNamed:newName package:packageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   215
    |newClass|
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   216
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   217
    "/ for now, we are strict.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   218
    self assert:(self initialClassNameForDefinitionOf:packageID) = newName.
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   219
    self assert:(self ~~ ProjectDefinition).  "ProjectDefinition is abstract"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   220
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   221
    newClass := self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   222
                    subclass:(newName asSymbol)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   223
                    instanceVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   224
                    classVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   225
                    poolDictionaries:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   226
                    category:(self defaultCategory).
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   227
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   228
    newClass package:packageID asSymbol.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   229
    ^ newClass
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   230
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   231
    "Created: / 09-08-2006 / 17:57:37 / fm"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   232
    "Modified: / 09-08-2006 / 19:27:53 / fm"
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   233
    "Modified: / 17-08-2006 / 17:24:23 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   234
! !
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   235
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   236
!ProjectDefinition class methodsFor:'accessing'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   237
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   238
directory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   239
    "for packageId compatibility"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   240
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   241
    ^ self moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   242
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   243
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   244
     bosch_dapasx_datenbasis_Definition moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   245
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   246
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   247
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   248
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   249
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   250
     stx_goodies_xml_vw moduleDirectory
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   251
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   252
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   253
    "Created: / 08-08-2006 / 20:25:39 / fm"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   254
    "Modified: / 18-08-2006 / 12:18:33 / cg"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   255
!
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   256
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   257
extensionsRevisionInfoForManager:managerOrNil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   258
    "return the revisionInfo object for my extensions for a particular source code manager.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   259
     Return nil, if there is either no manager, or I have no extensions"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   260
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   261
    |mgr versionMethod revString|
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   262
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   263
    (mgr := managerOrNil) isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   264
        mgr := SourceCodeManagerUtilities default sourceCodeManagerFor:self.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   265
        mgr isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   266
            ^ nil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   267
        ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   268
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   269
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   270
    versionMethod := mgr nameOfVersionMethodForExtensions.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   271
    (self class implements:versionMethod) ifFalse:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   272
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   273
    revString := self perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   274
    revString isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   275
        ^ nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   276
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   277
    ^ mgr revisionInfoFromString:revString.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   278
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   279
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   280
     (stx_libcomp extensionsRevisionInfoForManager:nil) revision  
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   281
     (stx_libbasic extensionsRevisionInfoForManager:nil) 
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   282
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   284
    "Created: / 25-11-2011 / 14:34:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   285
!
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   286
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   287
initialClassNameForDefinitionOf:aPackageId
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   288
    "given a package-ID, return an appropriate class name for this package"
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   289
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   290
    |s|
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   291
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   292
    s := aPackageId asString copy replaceAny:':/' with:$_.
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   293
    (s endsWith:$_) ifTrue:[
15164
0d122c4ad04a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 15126
diff changeset
   294
        s := s copyButLast:1
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   295
    ].
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   296
    ^ s
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   297
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
   298
    "
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   299
     ProjectDefinition initialClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   300
     ProjectDefinition initialClassNameForDefinitionOf:'stx:libbasic' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   301
     ProjectDefinition initialClassNameForDefinitionOf:'stx:goodies/xml' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   302
     ProjectDefinition initialClassNameForDefinitionOf:'stx/goodies/xml' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   303
     ProjectDefinition initialClassNameForDefinitionOf:'stx_goodies_xml' 
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
   304
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   305
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   306
    "Created: / 09-08-2006 / 17:44:47 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   307
    "Modified: / 11-08-2006 / 14:00:05 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   308
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   309
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   310
libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   311
    ^ self package asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   312
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   313
    "
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   314
     bosch_dapasx_datenbasis libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   315
     stx_libbasic3 libraryName
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   316
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   317
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   318
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   319
    "Modified: / 18-08-2006 / 12:36:45 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   320
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   321
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   322
libraryNameFor:aProjectID
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   323
    ^ aProjectID asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   324
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   325
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   326
     bosch_dapasx_datenbasis libraryName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   327
     stx_libbasic3 libraryNameFor:'stx:libbasic'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   328
     stx_libbasic3 libraryNameFor:'bosch:dapasx/datenbasis'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   329
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   330
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   331
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   332
    "Modified: / 18-08-2006 / 12:37:02 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   333
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   334
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   335
loadDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   336
    "if I was loaded from a directory (as oposed to loaded via a dll or from a scm),
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   337
     return that directory. Otherwise return nil."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   338
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   339
    ^ self getAttribute:#projectDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   340
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   341
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   342
loadDirectory:aDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   343
    "remember the directory from which I was loaded from"
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   344
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   345
    self setAttribute:#projectDirectory to:aDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   346
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   347
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   348
module
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   349
    ^ self moduleOfClass:self
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   350
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   351
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   352
       bosch_dapasx_datenbasis_Definition module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   353
       DapasX_Datenbasis module
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   354
       stx_libbasic3 module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   355
       stx_libbasic3 directory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   356
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   357
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   358
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   359
    "Modified: / 09-08-2006 / 16:16:37 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   360
    "Modified: / 17-08-2006 / 20:50:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   361
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   362
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   363
moduleDirectory
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   364
    ^ (PackageId from:self package) directory
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   365
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   366
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   367
     bosch_dapasx_datenbasis_Definition moduleDirectory
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   368
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   369
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   370
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   371
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   372
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   373
     stx_goodies_xml_vw moduleDirectory
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   374
     cg_demos_demo1 moduleDirectory 
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   375
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   376
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   377
    "Created: / 08-08-2006 / 20:25:39 / fm"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   378
    "Modified (comment): / 05-09-2012 / 10:07:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   379
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   380
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   381
moduleDirectoryFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   382
    ^ (aProjectID subStrings:$:) last
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   383
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   384
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   385
        bosch_dapasx_datenbasis_Definition moduleDirectory
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   386
        bosch_dapasx_parameter_system_Definition moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   387
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   388
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   389
    "Created: / 08-08-2006 / 20:25:39 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   390
    "Modified: / 17-08-2006 / 14:13:41 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   391
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   392
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   393
moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   394
    ^ (PackageId from:self package) directory copy replaceAll:$/ with:$\
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   395
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   396
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   397
     bosch_dapasx_datenbasis moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   398
     bosch_dapasx_parameter_system moduleDirectory_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   399
     stx_libbasic3 moduleDirectory_win32
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   400
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   401
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   402
    "Created: / 14-09-2006 / 20:19:17 / cg"
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   403
!
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   404
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   405
moduleDirectory_win32For: projectID
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   406
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   407
    ^(self moduleDirectoryFor:projectID) copy replaceAll:$/ with:$\
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   408
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   409
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   410
     self moduleDirectory_win32For: #'bosch:dapasx/pav_vergleich'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   411
     self moduleDirectory_win32For: #'stx:goodies/xml/stx'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   412
     self moduleDirectory_win32For: #'stx:libbasic2'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   413
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   414
!
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   415
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   416
moduleFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   417
    ^ (aProjectID subStrings:$:) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   418
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   419
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   420
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   421
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   422
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   423
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   424
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   425
    "Modified: / 17-08-2006 / 14:13:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   426
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   427
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   428
moduleOfClass:aClass
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   429
    ^ self moduleFor:aClass package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   430
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   431
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   432
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   433
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   434
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   435
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   436
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   437
    "Modified: / 17-08-2006 / 14:13:51 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   438
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   439
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   440
monticelloPackageName
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   441
    "hook for packages which have been loaded from monticello"
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   442
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   443
    ^ nil
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   444
!
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   445
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   446
msdosPathToPackage:toPackageID from:fromPackageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   447
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   448
10976
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   449
    |parts1 parts2 common up down|
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   450
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   451
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   452
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   453
    common := parts1 commonPrefixWith:parts2.
10976
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   454
    up := ((1 to:parts1 size - common size) collect:[:p | '..']) asStringWith:'\'.
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   455
    down := (parts2 copyFrom:common size+1) asStringWith:'\'.
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   456
    up isEmpty ifTrue:[
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   457
       down isEmpty ifTrue:[^ '.'].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   458
        ^ down.
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   459
    ].
10976
5696faf1af02 fix #msdosPathToPackage:from: (do not use , since it is relative to the current directory)
Stefan Vogel <sv@exept.de>
parents: 10974
diff changeset
   460
    down isEmpty ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   461
        ^ up.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   462
    ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   463
    ^ up, '\', down
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   464
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   465
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   466
     self msdosPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   467
     self msdosPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   468
     self msdosPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   469
     self msdosPathToPackage:'exept:expecco' from:'exept:expecco/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   470
     self msdosPathToPackage:'exept:expecco/application' from:'exept:expecco'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   471
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   472
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   473
    "Created: / 17-08-2006 / 14:26:39 / cg"
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   474
    "Modified: / 14-09-2006 / 22:04:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   475
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   476
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   477
msdosPathToTopFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   478
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   479
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   480
    |parts|
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   481
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   482
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   483
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   484
    aProjectID asPackageId module = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   485
        parts size == 1 ifTrue:[^ '.'].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   486
        ^ (((2 to:parts size-1) collect:[:p | '..\']) asStringWith:'') , '..'
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   487
    ].
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   488
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   489
    ^ ((parts collect:[:p | '..\']) asStringWith:'') , 'stx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   490
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   491
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   492
     self msdosPathToTopFor: #'bosch'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   493
     self msdosPathToTopFor: #'bosch:dapasx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   494
     self msdosPathToTopFor: #'bosch:dapasx/datenbasis'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   495
     self msdosPathToTopFor: #'stx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   496
     self msdosPathToTopFor: #'stx:libview'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   497
     self msdosPathToTopFor: #'stx:goodies/foo'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   498
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   499
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   500
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   501
    "Modified: / 14-09-2006 / 14:49:17 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   502
!
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   503
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   504
packageDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   505
    "if I was loaded from a directory (as oposed to loaded via a dll or from a scm),
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   506
     return that directory. 
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   507
     Otherwise ask Smalltalk for my package directory a long the package path."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   508
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   509
    |loadDirectory|
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   510
14586
4e6d15f5defc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14585
diff changeset
   511
    (loadDirectory := self loadDirectory) ifNotNil:[ ^ loadDirectory ].
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
   512
    ^ Smalltalk packageDirectoryForPackageId: self package
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   513
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   514
    "Created: / 15-06-2009 / 12:01:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   515
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   516
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   517
packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   518
    "the last component"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   519
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   520
    ^ self packageNameFor: self package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   521
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   522
    "
10810
e62a55885c85 New: #allPreRequisitesSorted
Stefan Vogel <sv@exept.de>
parents: 10806
diff changeset
   523
     stx_libwidg2 packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   524
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   525
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   526
     bosch_dapasx_parameter_system packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   527
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   528
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   529
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   530
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   531
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   532
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   533
packageNameFor: aProjectID
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   534
    ^ (aProjectID asCollectionOfSubstringsSeparatedByAny:':/') last.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   535
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   536
    "
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   537
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   538
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   539
     bosch_dapasx_parameter_system packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   540
     cg_croquet packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   541
     stx_goodies_xml_vw packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   542
     stx_goodies_xml_vw packageDirectory
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   543
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   544
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   545
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   546
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   547
    "Modified: / 11-08-2006 / 14:02:32 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   548
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   549
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   550
parentProject
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   551
    ^ (self parentProjectFor: self package)
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   552
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   553
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   554
    bosch_dapasx_hw_schnittstellen_Definition  parentProject
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   555
    DapasX_Datenbasis parentProject
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   556
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   557
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   558
    "Created: / 07-08-2006 / 20:18:27 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   559
    "Modified: / 08-08-2006 / 10:47:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   560
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   561
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   562
parentProjectFor: aProjectID
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   563
    ^ (aProjectID subStrings: $/) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   564
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   565
"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
   566
    bosch_dapasx_hw_schnittstellen parentProject
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   567
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   568
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   569
    "Created: / 07-08-2006 / 20:18:27 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   570
    "Modified: / 08-08-2006 / 10:47:37 / fm"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
   571
    "Modified: / 23-08-2006 / 15:07:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   572
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   573
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   574
pathSeparator:platformName
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   575
    platformName == #unix ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   576
        ^ self pathSeparator_unix
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   577
    ].
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   578
    platformName == #win32 ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   579
        ^ self pathSeparator_win32
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   580
    ].
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   581
    self error:'unknown operating system platform'.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   582
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   583
    "Created: / 14-09-2006 / 13:38:00 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   584
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   585
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   586
pathSeparator_unix
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   587
    ^ $/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   588
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   589
    "Created: / 14-09-2006 / 13:37:18 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   590
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   591
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   592
pathSeparator_win32
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   593
    ^ $\
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   594
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   595
    "Created: / 14-09-2006 / 13:37:23 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   596
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   597
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   598
pathTo:aBaseFilename inPackage:aPackageID architecture:arch
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   599
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   600
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   601
    |p|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   602
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   603
    arch == #unix ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   604
        p := (self pathToPackage_unix:aPackageID).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   605
        aBaseFilename isNil ifTrue:[^ p].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   606
        ^ p , '/' , aBaseFilename
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   607
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   608
    arch == #win32 ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   609
        p := self pathToPackage_win32:aPackageID.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   610
        aBaseFilename isNil ifTrue:[^ p].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   611
        ^ p , '\' , aBaseFilename
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   612
    ].
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   613
    self error:'unknown operating system platform'.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   614
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   615
    "Created: / 14-09-2006 / 13:29:20 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   616
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   617
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   618
pathToPackage_unix:aPackageID
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   619
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   620
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   621
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   622
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   623
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   624
        ^ self unixPathToPackage:aPackageID from:self package
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   625
    ].
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   626
    rel := self topRelativePathToPackage_unix:aPackageID.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   627
    (rel startsWith:'stx/') ifTrue:[
15223
c90e1ab942ea refactored
Claus Gittinger <cg@exept.de>
parents: 15221
diff changeset
   628
        ^ '$(TOP)/', (rel withoutPrefix:'stx/').
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   629
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   630
        ^ '$(TOP)/../', rel
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   631
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   632
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   633
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   634
     bosch_dapasx_kernel pathToPackage_unix:'bosch:dapasx/kernel'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   635
     bosch_dapasx_kernel pathToPackage_unix:'bosch:dapasx/support'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   636
     stx_libbasic pathToPackage_unix:'bosch:dapasx/kernel'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   637
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   638
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   639
    "Modified: / 16-08-2006 / 18:55:41 / User"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   640
    "Created: / 14-09-2006 / 13:21:23 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   641
    "Modified: / 14-09-2006 / 15:23:59 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   642
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   643
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   644
pathToPackage_win32:aPackageID
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   645
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   646
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   647
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   648
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   649
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   650
        ^ self msdosPathToPackage:aPackageID from:self package
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   651
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   652
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   653
    rel := self topRelativePathToPackage_win32:aPackageID.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   654
    (rel startsWith:'stx\') ifTrue:[
15223
c90e1ab942ea refactored
Claus Gittinger <cg@exept.de>
parents: 15221
diff changeset
   655
        ^ '$(TOP)\', (rel withoutPrefix:'stx\').
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   656
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   657
        ^ '$(TOP)\..\', rel
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   658
    ]
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   659
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   660
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   661
     self pathToPackage_win32:'bosch:dapasx/kernel'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   662
     bosch_dapasx_kernel pathToPackage_win32:'bosch:dapasx/kernel'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   663
     bosch_dapasx_kernel pathToPackage_win32:'bosch:dapasx/support'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   664
     stx_libbasic pathToPackage_win32:'bosch:dapasx/kernel'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   665
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   666
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   667
    "Created: / 14-09-2006 / 13:22:52 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   668
    "Modified: / 14-09-2006 / 15:28:45 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   669
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   670
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   671
pathToTop_unix
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   672
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   673
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   674
    ^ self unixPathToTopFor:self package.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   675
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   676
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   677
     bosch_dapasx_kernel pathToTop_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   678
     stx_goodies_xml pathToTop_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   679
     stx_libhtml pathToTop_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   680
     stx_goodies_refactoryBrowser_changes pathToTop_unix
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   681
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   682
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   683
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   684
    "Modified: / 14-09-2006 / 15:01:47 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   685
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   686
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   687
pathToTop_win32
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   688
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   689
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   690
    ^self msdosPathToTopFor: self package
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   691
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   692
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   693
     bosch_dapasx_datenbasis pathToTop_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   694
     stx_libbasic pathToTop_win32
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   695
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   696
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   697
    "Created: / 09-08-2006 / 15:45:54 / fm"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
   698
    "Modified: / 07-09-2006 / 15:51:00 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   699
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   700
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   701
projectIsLoaded
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   702
    "answer true, if this project is completely loaded into the image"
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   703
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   704
    projectIsLoaded isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   705
        projectIsLoaded := false.
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   706
    ].
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   707
    ^ projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   708
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   709
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   710
      stx_libbasic projectIsLoaded
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   711
      (ProjectDefinition definitionClassForPackage:#'stx:libbasic') projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   712
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   713
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   714
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   715
projectIsLoaded:something
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   716
    projectIsLoaded := something.
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   717
    something ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   718
        "register myself as dependent - I want to get notified on method changes"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   719
        self class addDependent:self.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   720
    ].
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   721
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   722
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   723
topRelativePathTo:aBaseFilename inPackage:aPackageID architecture:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   724
    "Returns the path to stx counting the number of $/ and $: in the package name
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   725
     and adding for each one '../' to get the ST/X top directory"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   726
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   727
    |p|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   728
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   729
    arch == #unix ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   730
        p := (self topRelativePathToPackage_unix:aPackageID).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   731
        aBaseFilename isNil ifTrue:[^ p].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   732
        ^ p , '/' , aBaseFilename
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   733
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   734
    arch == #win32 ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   735
        p := self topRelativePathToPackage_win32:aPackageID.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   736
        aBaseFilename isNil ifTrue:[^ p].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   737
        ^ p , '\' , aBaseFilename
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   738
    ].
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   739
    self error:'unknown operating system platform'.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   740
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   741
    "Created: / 14-09-2006 / 13:34:05 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   742
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   743
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   744
topRelativePathToPackage_unix:aPackageID
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   745
    "Returns the path to the package as specified by aPackageID relative to the top directory"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   746
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   747
    ^ aPackageID asString copy replaceAny:':/' with:$/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   748
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   749
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   750
     self topRelativePathToPackage_unix:'stx:goodies/xml'
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   751
     self topRelativePathToPackage_unix:'bosch:dapasx/kernel'
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   752
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   753
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   754
    "Created: / 14-09-2006 / 13:20:40 / cg"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   755
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   756
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   757
topRelativePathToPackage_win32:aPackageID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   758
    "Returns the path to the package as specified by aPackageID relative to the top directory"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   759
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   760
    ^ aPackageID asString copy replaceAny:':/' with:$\
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   761
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   762
    "
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   763
     self topRelativePathToPackage_win32:'stx:goodies/xml'
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   764
     self topRelativePathToPackage_win32:'bosch:dapasx/kernel'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   765
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   766
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   767
    "Created: / 14-09-2006 / 13:20:12 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   768
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   769
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   770
unixPathToPackage:toPackageID from:fromPackageID
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   771
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   772
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   773
    |parts1 parts2 common up down rel|
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   774
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   775
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   776
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   777
    common := parts1 commonPrefixWith:parts2.
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   778
    common notEmpty ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   779
        up := ((1 to:parts1 size - common size) collect:[:p | '../']) asStringWith:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   780
        down := (parts2 copyFrom:common size+1) asStringWith:'/'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   781
        (up isEmpty and:[down isEmpty]) ifTrue:[^ '.'].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   782
        ^ up , down
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   783
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   784
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   785
    rel := (self topRelativePathToPackage_unix:toPackageID).
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   786
    (rel startsWith:'stx/') ifTrue:[
15223
c90e1ab942ea refactored
Claus Gittinger <cg@exept.de>
parents: 15221
diff changeset
   787
        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the slash remains
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   788
    ].
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   789
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   790
    ^ '$(TOP)/../', rel.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   791
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   792
"/    pTop := self unixPathToTopFor:fromPackageID.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   793
"/    (pTop endsWith:'/stx') ifTrue:[
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   794
"/        pTop := pTop copyButLast:'stx' size.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   795
"/    ] ifFalse:[
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   796
"/        pTop isEmpty ifTrue:[
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   797
"/            pTop := '../'.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   798
"/        ] ifFalse:[
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   799
"/            pTop := pTop, '/../'.
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   800
"/        ].
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   801
"/    ].
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   802
"/    ^ pTop, (self topRelativePathToPackage_unix:toPackageID)
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   803
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   804
    "
10713
5772d2920a27 *** empty log message ***
fm
parents: 10691
diff changeset
   805
     self unixPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   806
     self unixPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   807
     self unixPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   808
    "
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   809
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   810
    "Created: / 14-09-2006 / 15:21:10 / cg"
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   811
!
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   812
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   813
unixPathToTopFor:aProjectID
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   814
    "Returns the path to stx counting the number of $/ and $: in the package name and adding for each one '../' to get the ST/X top directory"
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   815
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   816
    |parts|
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   817
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   818
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   819
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   820
    aProjectID asPackageId module = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   821
        parts size == 1 ifTrue:[^ ''].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   822
        ^ (((2 to:parts size-1) collect:[:p | '../']) asStringWith:'') , '..'
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   823
    ].
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   824
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   825
    ^ ((parts collect:[:p | '../']) asStringWith:'') , 'stx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   826
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   827
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   828
     self unixPathToTopFor: #'bosch'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   829
     self unixPathToTopFor: #'bosch:dapasx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   830
     self unixPathToTopFor: #'bosch:dapasx/datenbasis'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   831
     self unixPathToTopFor: #'stx'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   832
     self unixPathToTopFor: #'stx:libview'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   833
     self unixPathToTopFor: #'stx:goodies/foo'
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   834
    "
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   835
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   836
    "Created: / 14-09-2006 / 14:59:53 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   837
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   838
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   839
!ProjectDefinition class methodsFor:'accessing - packaging'!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   840
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   841
classNames:aCollectionOfClassNames
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   842
    "set the set of classes"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   843
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   844
    self classNamesAndAttributes:aCollectionOfClassNames usingCompiler:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   845
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   846
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   847
classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   848
    "set the set of classes. and attributes
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   849
     Because this requires compilation of my classList-method, a compiler can be passed in,
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   850
     which has to do the job.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   851
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   852
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   853
    |oldSpec newCode|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   854
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   855
    oldSpec := self classNamesAndAttributes.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   856
    newSpec = oldSpec ifTrue: [^ self].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   857
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   858
    newCode := self classNamesAndAttributes_codeFor:newSpec.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   859
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   860
    self compile:newCode categorized:'description - contents' using:compilerOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   861
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   862
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   863
excludeClasses:toExclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   864
    "exclude (remove from classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   865
     Because this requires compilation of my classList-method, a compiler can be passed in,
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   866
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   867
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   868
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   869
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   870
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   871
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   872
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   873
    toExclude do:[:eachClassToExclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   874
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   875
        className := eachClassToExclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   876
        (self allClassNames includes:className) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   877
            |idx|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   878
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   879
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   880
            idx ~~ 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   881
                newSpec := newSpec copyWithoutIndex:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   882
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   883
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   884
    ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   885
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   886
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   887
    "Created: / 30-08-2007 / 18:28:28 / cg"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   888
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   889
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   890
excludeMethodFor:selector inClassNamed:className usingCompiler:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   891
    "exclude (remove from extensionList) a method by name.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   892
     Because this requires compilation of my extensionMethodNames-method, a compiler can be passed in,
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   893
     which has to do the job.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   894
     This is used by the systembrowser to pass in a CodeGeneratorTool with undo support.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   895
     If nil is passed in, the recurlar compiler is used (no undo support)"
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   896
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   897
    |oldSpec newSpec newCode extensionMethods idx|
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   898
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   899
    oldSpec := self extensionMethodNames.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   900
    newSpec := oldSpec copy.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   901
    extensionMethods := self extensionMethods.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   902
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   903
    idx := (1 to:newSpec size-1 by:2) 
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   904
                detect:[:i |
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   905
                    ((newSpec at:i) = className)
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   906
                    and:[ (newSpec at:i+1) = selector ]]
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   907
                ifNone:nil.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   908
    idx isNil ifTrue:[ ^ self ].
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   909
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   910
    "/ attention: there are two spec-elements per method
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   911
    newSpec := newSpec removeFromIndex:idx toIndex:idx+1.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   912
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   913
    newCode := self extensionMethodNames_code_For:newSpec.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   914
    self compile:newCode categorized:'description - contents' using:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   915
!
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   916
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   917
excludeMethods:toRemove usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   918
    "exclude (remove from extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   919
     Because this requires compilation of my extensionMethodNames-method, a compiler can be passed in,
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   920
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   921
     This is used by the systembrowser to pass in a CodeGeneratorTool with undo support.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   922
     If nil is passed in, the recurlar compiler is used (no undo support)"
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   923
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   924
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   925
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   926
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   927
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   928
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   929
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   930
    toRemove do:[:eachMethodToRemove |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   931
        |className selector idx|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   932
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   933
        (extensionMethods includes:eachMethodToRemove) ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   934
            className := eachMethodToRemove mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   935
            selector := eachMethodToRemove selector.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   936
            idx := (1 to:newSpec size-1 by:2) 
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   937
                        detect:[:i |
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   938
                            ((newSpec at:i) = className)
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   939
                            and:[ (newSpec at:i+1) = selector ]]
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   940
                        ifNone:nil.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   941
            idx notNil ifTrue:[
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   942
                "/ attention: there are two spec-elements per method
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   943
                newSpec := newSpec removeFromIndex:idx toIndex:idx+1
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   944
            ]
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   945
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   946
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   947
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   948
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   949
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   950
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   951
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   952
includeClasses:toInclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   953
    "include (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   954
     Because this requires compilation of my classList-method, a compiler can be passed in,
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   955
     which has to do the job.
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   956
     This is used by the systembrowser to pass in a CodeGeneratorTool with undo support.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   957
     If nil is passed in, the recurlar compiler is used (no undo support)"
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   958
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   959
    |oldSpec newSpec|
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   960
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   961
    oldSpec := self classNamesAndAttributes.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   962
    newSpec := oldSpec copy.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   963
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   964
    toInclude do:[:eachClassToInclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   965
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   966
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   967
        className := eachClassToInclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   968
        (self compiled_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   969
            | idx entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   970
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   971
            idx := oldSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   972
            idx == 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   973
                newSpec := newSpec copyWith:(Array with:className)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   974
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   975
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   976
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   977
                    entry := entry copyWithout:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   978
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   979
                newSpec at:idx put:entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   980
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   981
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   982
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   983
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   984
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   985
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   986
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   987
includeMethods:toInclude usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   988
    "include (add to extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   989
     Because this requires compilation of my extensionMethodNames-method, a compiler can be passed in,
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   990
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   991
     This is used by the systembrowser to pass in a CodeGeneratorTool with undo support.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   992
     If nil is passed in, the recurlar compiler is used (no undo support)"
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   993
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   994
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   995
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   996
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   997
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   998
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   999
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1000
    toInclude do:[:eachMethodToInclude |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1001
        (extensionMethods includes:eachMethodToInclude) ifFalse:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1002
            newSpec := newSpec copyWith:eachMethodToInclude mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1003
            newSpec := newSpec copyWith:eachMethodToInclude selector.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1004
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1005
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1006
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1007
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1008
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1009
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1010
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1011
makeClassesAutoloaded:toMakeAutoloaded usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1012
    "include as autoloaded (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1013
     Because this requires compilation of my classList-method, a compiler can be passed in,
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1014
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1015
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1016
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1017
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1018
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1019
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1020
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1021
    toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1022
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1023
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1024
        className := eachClassToMakeAutoloaded theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1025
        (self autoloaded_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1026
            |idx entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1027
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1028
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1029
            idx == 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1030
                newSpec := newSpec copyWith:(Array with:className with:#autoload)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1031
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1032
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1033
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1034
                    entry := (entry copyWithout:#autoload) copyWith:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1035
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1036
                    entry := Array with:entry with:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1037
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1038
                newSpec at:idx put:entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1039
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1040
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1041
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1042
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1043
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1044
!
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1045
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1046
updateContentsMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1047
    "regenerate the contents-describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1048
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1049
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1050
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1051
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1052
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1053
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1054
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1055
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1056
        do:[
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1057
            self 
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1058
                forEachContentsMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1059
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1060
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1061
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1062
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1063
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1064
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1065
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1066
        ].
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1067
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1068
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1069
updateExtensionMethodNamesUsingCompiler:compilerOrNil
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1070
    "set the set of extension methods
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1071
     Because this requires compilation of my extensionMethodNames-method, 
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1072
     a compiler can be passed in, which has to do the job.
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1073
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1074
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1075
    |newCode|
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1076
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1077
    newCode := self extensionMethodNames_code.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1078
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1079
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1080
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1081
updateMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1082
    "regenerate the all contents- plus version describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1083
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1084
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1085
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1086
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1087
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1088
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1089
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1090
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1091
        do:[
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1092
            self 
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1093
                forEachMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1094
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1095
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1096
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1097
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1098
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1099
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1100
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1101
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1102
! !
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1103
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1104
!ProjectDefinition class methodsFor:'accessing - tests'!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1105
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1106
excludedFromTestSuite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1107
    "List of testcases and/or tests excluded from testsuite.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1108
     Entries maybe ClassName or #(ClassName testName)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1109
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1110
    ^ #()
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1111
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1112
    "Created: / 03-06-2011 / 16:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1113
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1114
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1115
testSuite
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1116
    "generate and return a testSuite containing all of my test-classes"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1117
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1118
    |suite classes|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1119
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1120
    suite := TestSuite named:self package.
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1121
    classes := self classes
14877
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1122
                select:[:each |
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1123
                    [
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1124
                    each isLoaded ifFalse:[each autoload].
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1125
                    (each isTestCaseLike) and:[ each isAbstract not ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1126
                    ] on: Autoload autoloadFailedSignal do:[
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1127
                        false
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1128
                    ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1129
                ].
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1130
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1131
    classes := classes asSortedCollection:[:a :b | a name <= b name ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1132
    classes do: [:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1133
        | tests |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1134
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1135
        tests := eachClass suite tests.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1136
        tests := tests reject:[:test|self shouldExcludeTest: test].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1137
        suite addTests: tests
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1138
    ].
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1139
    ^ suite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1140
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1141
    "Created: / 01-04-2011 / 15:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1142
    "Modified: / 03-06-2011 / 17:07:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13568
b11206771e27 changed: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13559
diff changeset
  1143
    "Modified: / 08-08-2011 / 14:59:45 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1144
! !
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1145
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1146
!ProjectDefinition class methodsFor:'class initialization'!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1147
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1148
initialize
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1149
    AccessLock isNil ifTrue:[
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1150
        LibraryType := #Library.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1151
        GUIApplicationType := #'GUI-Application'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1152
        NonGUIApplicationType := #'NonGUI-Application'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1153
        AccessLock := Semaphore forMutualExclusion name:'ProjectDefinition Lock'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1154
        Verbose := false.
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  1155
        PackagesBeingLoaded := Set new.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1156
    ].
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1157
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1158
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1159
     self initialize
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1160
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1161
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1162
    "Modified: / 18-08-2011 / 13:48:31 / cg"
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1163
!
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1164
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1165
initializeAllProjectDefinitions
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1166
    "needs everything else (especially the compiler etc.) to be initialized.
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1167
     Therefore, its not invoked by #initialize, but instead explicitely,
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1168
     by Smalltalk"
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1169
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1170
    |isStandAloneApp|
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1171
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1172
    isStandAloneApp := Smalltalk isStandAloneApp.
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1173
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1174
    self allSubclassesDo:[:eachProjectDefinitionClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1175
        eachProjectDefinitionClass isAbstract ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1176
            isStandAloneApp ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1177
                eachProjectDefinitionClass installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1178
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1179
            eachProjectDefinitionClass projectIsLoaded:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1180
        ]
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1181
    ].
10115
a43005ac7423 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10114
diff changeset
  1182
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1183
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1184
     self initialize
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1185
    "
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1186
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1187
    "Created: / 23-10-2006 / 16:40:53 / cg"
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1188
!
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1189
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1190
installAutoloadedClasses
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1191
    "install all of my autoloaded classes (if any)"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1192
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1193
    |classesToFixClassFileName|
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1194
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1195
    classesToFixClassFileName := OrderedCollection new.
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1196
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1197
    self autoloaded_classNames do:[:className |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1198
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1199
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1200
        "/ 'install as autoloaded: ' errorPrint. className errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1201
        (cls := Smalltalk classNamed:className) isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1202
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1203
                (self name,' [warning]: failed to install autoloaded: ',className) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1204
                (self name,' [info]: reason: ',ex description) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1205
                "/ thisContext fullPrintAll.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1206
            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1207
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1208
                    installAutoloadedClassNamed:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1209
                    category:'* as yet unknown category *'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1210
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1211
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1212
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1213
            cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1214
                classesToFixClassFileName add:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1215
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1216
        ].
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1217
    ].
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1218
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1219
    Smalltalk addStartBlock:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1220
        |abbrevs|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1221
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1222
        abbrevs := self abbrevs.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1223
        "/ patch the classFileNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1224
        classesToFixClassFileName do:[:cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1225
            |entry classFilenameFromAbbreviations|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1226
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1227
            entry := abbrevs at:cls name ifAbsent:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1228
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1229
                classFilenameFromAbbreviations := entry fileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1230
                classFilenameFromAbbreviations notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1231
                    classFilenameFromAbbreviations := classFilenameFromAbbreviations,'.st'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1232
                    (classFilenameFromAbbreviations ~= cls getClassFilename) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1233
                        cls setClassFilename:classFilenameFromAbbreviations
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1234
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1235
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1236
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1237
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1238
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1239
        "/ patch the categories
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1240
        Class withoutUpdatingChangesDo:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1241
            |entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1242
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1243
            self classNames do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1244
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1245
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1246
                ((cls := Smalltalk at: nm) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1247
                        and:[ cls isLoaded not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1248
                        and:[ (entry := abbrevs at:cls name ifAbsent:[nil]) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1249
                ]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1250
                    cls category: (entry category)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1251
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1252
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1253
        ]
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1254
    ].
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1255
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1256
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1257
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1258
     stx_libbasic installAutoloadedClasses
12268
b3cd2af642f2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 12264
diff changeset
  1259
     stx_libhtml installAutoloadedClasses
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1260
     stx_libtool2 installAutoloadedClasses
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1261
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1262
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1263
    "Created: / 23-10-2006 / 16:02:12 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1264
    "Modified: / 06-03-2011 / 18:26:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1265
    "Modified: / 20-08-2011 / 23:32:32 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1266
! !
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1267
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1268
!ProjectDefinition class methodsFor:'code generation'!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1269
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1270
applicationIconFileName_code
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1271
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1272
        s nextPutLine:'applicationIconFileName'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1273
        s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon); will be included in the rc-resource file"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1274
        s cr;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1275
        nextPutLine:'    ^ nil';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1276
        nextPutLine:'    "/ ^ self applicationName'.
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1277
    ].
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1278
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1279
    "
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1280
     self applicationIconFileName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1281
     stx_libbasic3 applicationIconFileName_code
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1282
    "
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1283
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1284
    "Created: / 18-08-2006 / 16:21:01 / cg"
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1285
!
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1286
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1287
classNamesAndAttributes_codeFor:aSpecArray
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1288
    "generate method code returning all classes of the project from the given spec."
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1289
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1290
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1291
        s nextPutLine:'classNamesAndAttributes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1292
        s nextPutLine:'    "lists the classes which are to be included in the project.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1293
        s nextPutLine:'     Each entry in the list may be: a single class-name (symbol),'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1294
        s nextPutLine:'     or an array-literal consisting of class name and attributes.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1295
        s nextPutLine:'     Attributes are: #autoload or #<os> where os is one of win32, unix,..."'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1296
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1297
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1298
        s nextPutLine:'        "<className> or (<className> attributes...) in load order"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1299
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1300
        (self classNamesAndAttributesFromSpecArray:aSpecArray) do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1301
            s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1302
            entry storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1303
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1304
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1305
        s nextPutLine:'    )'
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1306
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1307
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1308
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1309
     stx_libbasic3 classNamesAndAttributes_codeFor:(stx_libbasic3 classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1310
     exept_expecco classNamesAndAttributes_codeFor:(exept_expecco classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1311
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1312
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1313
    "Modified: / 08-08-2006 / 19:24:34 / fm"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1314
    "Created: / 19-02-2007 / 15:43:27 / cg"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1315
!
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1316
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1317
classNamesAndAttributes_code_ignoreOldEntries:ignoreOldEntries ignoreOldDefinition:ignoreOldDefinition
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1318
    "generate method code returning all classes of the project.
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1319
     Platform attributes are kept from the old definition.
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1320
     If ignoreOldEntries is true, the list is completely recreated;
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1321
     if false, existing entries are preserved.
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1322
     If ignoreOldDefinition is true, the autoload attribute is set/reset if
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1323
     the class is installed as autoloaded in the image (i.e. the state in the image is taken).
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1324
     If false, it is taken from an existing definition in #classNamesAndAttributes"
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1325
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1326
    |newSpec oldSpec ignored|
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1327
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1328
    oldSpec := self classNamesAndAttributesAsSpecArray.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1329
    ignored := self ignoredClassNames asSet.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1330
    newSpec := OrderedCollection new.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1331
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1332
    ignoreOldEntries ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1333
        oldSpec do:[:oldEntry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1334
            |newEntry className cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1335
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1336
            newEntry := oldEntry copy.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1337
            className := newEntry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1338
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1339
            (ignored includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1340
                cls := Smalltalk classNamed:className.
14354
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1341
                cls notNil ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1342
                    ignoreOldDefinition ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1343
                        cls isLoaded ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1344
                            (newEntry includes:#autoload) ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1345
                                newEntry := newEntry copyWith:#autoload.
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1346
                            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1347
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1348
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1349
                    "JV @ 2010-06-19
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1350
                     Force merge default class attributes with existing ones"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1351
                    newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1352
                    newSpec add:newEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1353
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1354
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1355
        ].
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1356
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1357
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1358
    self searchForClasses do:[:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1359
        |className attributes oldSpecEntry oldAttributes newEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1360
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1361
        className := eachClass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1362
        (ignored includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1363
            oldSpecEntry := oldSpec detect:[:entry | entry first = className] ifNone:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1364
14354
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1365
            (ignoreOldEntries or:[oldSpecEntry isNil]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1366
                (eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1367
                    (self additionalClassNamesAndAttributes includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1368
                        (oldSpecEntry size > 1) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1369
                            oldAttributes := oldSpecEntry copyFrom:2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1370
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1371
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1372
                        ignoreOldDefinition ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1373
                            "take autoload attribute from classes state in the image"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1374
                            oldAttributes notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1375
                                attributes := oldAttributes copyWithout:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1376
                            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1377
                                attributes := #()
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1378
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1379
                            eachClass isLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1380
                                attributes := attributes copyWith:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1381
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1382
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1383
                            "keep any existing attribute"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1384
                            oldAttributes notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1385
                                attributes := oldAttributes.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1386
                            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1387
                                attributes := eachClass isLoaded ifTrue:[ #() ] ifFalse:[ #(autoload) ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1388
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1389
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1390
                        "JV @ 2010-06-19
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1391
                         Support fo additional class attributes and programming language attribute"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1392
                        attributes := self mergeDefaultClassAttributesFor: eachClass with: attributes.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1393
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1394
                        newEntry := Array with:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1395
                        attributes notEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1396
                            newEntry := newEntry , attributes.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1397
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1398
                        newSpec add:newEntry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1399
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1400
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1401
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1402
        ]
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1403
    ].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1404
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1405
    ^ self classNamesAndAttributes_codeFor:newSpec
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1406
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1407
    "
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1408
     stx_libbasic3 classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1409
     exept_expecco classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1410
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1411
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1412
    "Modified: / 08-08-2006 / 19:24:34 / fm"
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1413
    "Created: / 10-10-2006 / 22:00:50 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1414
    "Modified: / 19-06-2010 / 10:56:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  1415
    "Modified: / 06-09-2011 / 07:48:52 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1416
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1417
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1418
companyName_code
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1419
    ^ self companyName_codeFor:self companyName
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1420
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1421
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1422
     self companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1423
     stx_libbasic3 companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1424
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1425
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1426
    "Created: / 18-08-2006 / 16:20:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1427
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1428
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1429
companyName_codeFor:aString
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1430
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1431
        s nextPutLine:'companyName'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1432
        s nextPutLine:'    "Return a companyname which will appear in <lib>.rc"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1433
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1434
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1435
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1436
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1437
     self companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1438
     stx_libbasic3 companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1439
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1440
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1441
    "Created: / 18-08-2006 / 16:20:42 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1442
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1443
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1444
compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1445
    (self isLibraryDefinition
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1446
    or:[ self isApplicationDefinition ] ) ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1447
        self error:'I am abstract - must be a subclass of Libray- or ApplicationDefinition.'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1448
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1449
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1450
    self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1451
        forEachMethodsCodeToCompileDo:[:code :category |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1452
            self compile:code categorized:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1453
        ].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1454
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1455
"/    self instAndClassMethodsDo:[:m | m package:self package].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1456
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1457
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1458
     DapasXProject compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1459
     DapasX_Datenbasis compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1460
     bosch_dapasx_interactiver_editor compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1461
     stx_libbasic compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1462
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1463
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1464
    "Created: / 09-08-2006 / 18:00:31 / fm"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1465
    "Modified: / 05-09-2006 / 13:46:29 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1466
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1467
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1468
description_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1469
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1470
        s nextPutLine:'description'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1471
        s nextPutLine:'    "Return a description string which will appear in vc.def / bc.def"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1472
        s cr; nextPutLine:'    ^ ',self description asString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1473
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1474
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1475
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1476
     self description_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1477
     stx_libbasic3 description_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1478
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1479
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1480
    "Created: / 17-08-2006 / 21:24:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1481
    "Modified: / 18-08-2006 / 16:16:24 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1482
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1483
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1484
effectiveSubProjects
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1485
    "get the subProjects, that are not excluded"
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1486
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1487
    |subProjects|
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1488
15026
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1489
    subProjects := self subProjects asNewSet.
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1490
    subProjects 
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1491
        removeAllFoundIn:self excludedFromSubProjects;
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1492
        remove:self package ifAbsent:[].
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1493
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1494
    ^ subProjects
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1495
!
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1496
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1497
excludedFromPreRequisites_code
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1498
    "generate the code of the #excludedFromPreRequisites method"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1499
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1500
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1501
        s nextPutLine:'excludedFromPreRequisites'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1502
        s nextPutLine:'    "list all packages which should be ignored in the automatic'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1503
        s nextPutLine:'     preRequisites scan. See #preRequisites for more."'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1504
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1505
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1506
        s nextPutLine:'    )'
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1507
    ].
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1508
!
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1509
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1510
extensionMethodNames_code
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1511
    ^ self extensionMethodNames_code_ignoreOldEntries:true
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1512
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1513
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1514
     self extensionMethodNames_code
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1515
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1516
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1517
    "Created: / 17-08-2006 / 21:21:48 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1518
    "Modified: / 10-10-2006 / 22:02:42 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1519
!
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1520
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1521
extensionMethodNames_code_For:extensionMethodNames
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1522
    ^ String streamContents:[:s |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1523
        |spec|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1524
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1525
        s nextPutLine:'extensionMethodNames'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1526
        s nextPutLine:'    "lists the extension methods which are to be included in the project.'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1527
        s nextPutLine:'     Entries are pairwise elements, consisting of class-name and selector."'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1528
        s nextPutLine:''.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1529
        s nextPutLine:'    ^ #('.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1530
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1531
        spec := extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1532
        spec do:[:entry |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1533
            |mclassName mselector|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1534
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1535
            mclassName := entry key asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1536
            (mclassName endsWith:' class') ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1537
                mclassName := mclassName asString.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1538
            ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1539
            mselector := entry value asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1540
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1541
            s spaces:8.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1542
            mclassName storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1543
            s space.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1544
            mselector storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1545
            s cr.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1546
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1547
        s nextPutLine:'    )'
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1548
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1549
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1550
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1551
extensionMethodNames_code_ignoreOldEntries:ignoreOldEntries
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1552
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1553
        |oldSpec|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1554
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1555
        s nextPutLine:'extensionMethodNames'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1556
        s nextPutLine:'    "lists the extension methods which are to be included in the project.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1557
        s nextPutLine:'     Entries are 2-element array literals, consisting of class-name and selector."'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1558
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1559
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1560
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1561
        oldSpec := self extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1562
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1563
        ignoreOldEntries ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1564
            oldSpec do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1565
                |mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1566
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1567
                mclassName := entry key asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1568
                (mclassName endsWith:' class') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1569
                    mclassName := mclassName asString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1570
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1571
                mselector := entry value asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1572
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1573
                s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1574
                mclassName storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1575
                s space.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1576
                mselector storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1577
                s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1578
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1579
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1580
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1581
        self searchForExtensions do:[:eachMethod |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1582
            |attributes oldSpecEntry mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1583
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1584
            mclassName := eachMethod mclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1585
            mselector := eachMethod selector.
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1586
            "JV@2012-09-07: Do not list Java methods in extensionMethodNames.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1587
             They are loaded lazily by JavaClassReader and if listed here,
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1588
             they would cause an error if the package is loaded from source.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1589
             Sort of a HACK, indeed"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1590
            eachMethod mclass theNonMetaclass isJavaClass ifFalse:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1591
                oldSpecEntry := oldSpec detect:[:entry | entry key = mclassName and:[ entry value = mselector]] ifNone:nil.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1592
                (ignoreOldEntries or:[ oldSpecEntry isNil]) ifTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1593
                    s spaces:8.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1594
                    mclassName storeArrayElementOn:s.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1595
                    s space.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1596
                    mselector storeArrayElementOn:s.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1597
                    s cr.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1598
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1599
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1600
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1601
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1602
        s nextPutLine:'    )'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1603
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1604
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1605
    "
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1606
     self extensionMethodNames_code_ignoreOldEntries:false
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1607
     stx_libjava extensionMethodNames_code_ignoreOldEntries:false
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1608
     stx_libtool extensionMethodNames_code_ignoreOldEntries:true
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1609
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1610
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1611
    "Created: / 10-10-2006 / 22:02:36 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1612
    "Modified: / 23-10-2006 / 11:07:29 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1613
    "Modified: / 18-11-2012 / 19:41:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1614
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1615
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1616
forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1617
    "generate code for each contents-specifying method
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1618
     (classesAndAttributes, extensionMethodNames, etc.),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1619
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1620
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1621
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1622
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1623
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1624
        value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1625
        value:'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1626
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1627
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1628
        value: (self extensionMethodNames_code_ignoreOldEntries:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1629
        value: 'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1630
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1631
    aTwoArgBlock
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1632
        value: self mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1633
        value: 'description'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1634
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1635
    aTwoArgBlock
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1636
        value: self referencedPreRequisites_code
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1637
        value: 'description'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1638
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1639
    ((self class includesSelector:#excludedFromPreRequisites) not or:[ignoreOldDefinition]) ifTrue:[
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1640
        aTwoArgBlock
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1641
            value: self excludedFromPreRequisites_code
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1642
            value: 'description'.
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1643
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1644
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1645
    aTwoArgBlock
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1646
        value: self subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1647
        value: 'description'.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1648
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1649
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1650
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1651
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1652
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1653
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1654
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1655
    "Modified: / 09-11-2010 / 18:41:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1656
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1657
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1658
forEachMethodsCodeToCompileDo:aTwoArgBlock
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1659
    "update code for each method (contents plus version info),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1660
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1661
     New items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1662
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1663
    self forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:false
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1664
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1665
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1666
forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1667
    "generate code for each method (contents plus version info),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1668
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1669
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1670
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1671
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1672
    self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1673
        forEachContentsMethodsCodeToCompileDo:aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1674
        ignoreOldDefinition:ignoreOldDefinition.
10013
c6cd8f035693 pretty format of generated methods
Stefan Vogel <sv@exept.de>
parents: 10011
diff changeset
  1675
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1676
    "/  code like:
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1677
    "/
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1678
    "/ (self class includesSelector:#productName) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1679
    "/     aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1680
    "/         value: self productName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1681
    "/         value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1682
    "/ ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1683
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1684
    #(
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1685
        (productName productName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1686
        (description description_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1687
        (companyName companyName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1688
        (legalCopyright legalCopyright_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1689
    ) pairsDo:[:selector :codeMethodSelector |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1690
        (self class includesSelector:selector) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1691
            aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1692
                value: (self perform:codeMethodSelector)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1693
                value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1694
        ].
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1695
    ].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1696
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1697
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1698
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1699
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1700
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1701
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1702
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1703
    "Created: / 18-08-2006 / 16:22:37 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1704
    "Modified: / 09-11-2010 / 18:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1705
    "Modified: / 21-12-2011 / 16:42:41 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1706
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1707
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1708
legalCopyright_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1709
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1710
        s nextPutLine:'legalCopyright'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1711
        s nextPutLine:'    "Return a copyright string which will appear in <lib>.rc"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1712
        s cr; nextPutLine:'    ^ ', self legalCopyright storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1713
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1714
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1715
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1716
     self legalCopyright_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1717
     stx_libbasic3 legalCopyright_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1718
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1719
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1720
    "Created: / 18-08-2006 / 16:21:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1721
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1722
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1723
mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1724
    "generate the code of the #mandatoryPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1725
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1726
    |preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1727
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1728
    preRequisites := self searchForPreRequisites first.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1729
    preRequisites removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1730
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1731
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1732
        s nextPutLine:'mandatoryPreRequisites'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1733
        s nextPutLine:'    "list all required mandatory packages.'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1734
        s nextPutLine:'     Packages are mandatory, if they contain superclasses of the package''s classes'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1735
        s nextPutLine:'     or classes which are extended by this package.'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1736
        s nextPutLine:'     This list can be maintained manually or (better) generated and'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1737
        s nextPutLine:'     updated by scanning the superclass hierarchies'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1738
        s nextPutLine:'     (the browser has a menu function for that)'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1739
        s nextPutLine:'     However, often too much is found, and you may want to explicitely'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1740
        s nextPutLine:'     exclude individual packages in the #excludedFromPreRequisites method."'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1741
        s nextPutLine:''.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1742
        s nextPutLine:'    ^ #('.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1743
        preRequisites keys asSortedCollection do:[:eachPackageID |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1744
            |reason|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1745
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1746
            s spaces:8.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1747
            eachPackageID asSymbol storeOn:s.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1748
            reason := preRequisites at:eachPackageID ifAbsent:nil.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1749
            reason notEmptyOrNil ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1750
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPutAll:' "'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1751
            ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1752
            s cr.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1753
        ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1754
        s nextPutLine:'    )'
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1755
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1756
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1757
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1758
     demo_demoApp1 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1759
     stx_libbasic3 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1760
     stx_libtool2 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1761
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1762
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1763
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1764
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1765
    "Modified: / 09-10-2006 / 14:27:20 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1766
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1767
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1768
productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1769
    ^ String streamContents:[:s |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1770
        s nextPutLine:'productInstallDirBaseName'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1771
        s nextPutLine:'    "Returns a default installDir which will appear in <app>.nsi.'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1772
        s nextPutLine:'     This is usually not the one you want to keep"'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1773
        s cr;
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1774
        nextPutLine:'    ^ (self package asCollectionOfSubstringsSeparatedByAny:'':/'') last'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1775
    ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1776
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1777
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1778
     self productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1779
     stx_libbasic3 productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1780
     stx_clients_Clock_QlockTwoWatchApplication productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1781
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1782
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1783
    "Created: / 21-12-2011 / 16:38:11 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1784
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1785
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1786
productName_code
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1787
    ^ self productName_codeFor:(self productName)
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1788
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1789
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1790
     self productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1791
     stx_libbasic3 productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1792
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1793
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1794
    "Created: / 18-08-2006 / 16:14:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1795
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1796
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1797
productName_codeFor:aString
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1798
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1799
        s nextPutLine:'productName'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1800
        s nextPutLine:'    "Return a product name which will appear in <lib>.rc"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1801
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1802
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1803
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1804
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1805
     self productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1806
     stx_libbasic3 productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1807
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1808
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1809
    "Created: / 18-08-2006 / 16:14:19 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1810
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1811
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1812
referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1813
    "generate the code of the #referencedPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1814
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1815
    |preRequisitesColl preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1816
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1817
    preRequisitesColl := self searchForPreRequisites.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  1818
    preRequisites := preRequisitesColl second.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1819
    preRequisites 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1820
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1821
        removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1822
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1823
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1824
        s nextPutLine:'referencedPreRequisites'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1825
        s nextPutLine:'    "list all packages containing classes referenced by the packages''s members.'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1826
        s nextPutLine:'     This list can be maintained manually or (better) generated and'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1827
        s nextPutLine:'     updated by looking for global variable accesses'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1828
        s nextPutLine:'     (the browser has a menu function for that)'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1829
        s nextPutLine:'     However, often too much is found, and you may want to explicitely'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1830
        s nextPutLine:'     exclude individual packages in the #excludedFromPreRequisites method."'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1831
        s nextPutLine:''.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1832
        s nextPutLine:'    ^ #('.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1833
        preRequisites keys asSortedCollection do:[:eachPackageID |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1834
            |reason|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1835
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1836
            s spaces:8.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1837
            eachPackageID asSymbol storeOn:s.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1838
            reason := preRequisites at:eachPackageID ifAbsent:nil.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1839
            reason notEmptyOrNil ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1840
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPutAll:' "'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1841
            ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1842
            s cr.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1843
        ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1844
        s nextPutLine:'    )'
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1845
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1846
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1847
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1848
     demo_demoApp1 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1849
     stx_libbasic3 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1850
     stx_libtool2 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1851
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1852
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1853
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1854
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1855
    "Modified: / 09-10-2006 / 14:27:20 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1856
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1857
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1858
subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1859
    "generate the code of the #subProjects method.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1860
     Returns nil if no such code is needed (because there are none)"
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1861
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1862
    ^ String streamContents:[:s |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1863
        s nextPutLine:'subProjects'.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1864
        s nextPutLine:'    "list packages which are known as subprojects.'. 
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1865
        s nextPutLine:'     The generated makefile will enter those and make there as well.'.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1866
        s nextPutLine:'     However: they are not forced to be loaded when a package is loaded;'. 
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1867
        s nextPutLine:'     for those, redefine requiredPrerequisites"'.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1868
        s nextPutLine:''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1869
        s nextPutLine:'    ^ #('.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1870
        ProjectDefinition allSubclassesDo:[:each |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1871
            (each package startsWith:(self package,'/')) ifTrue:[
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1872
                s nextPutLine:'        #''',each package,''''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1873
            ]
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1874
        ].
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1875
        s nextPutLine:'    )'
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1876
    ].
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1877
!
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1878
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1879
svnRevisionNr_code: revisionNrOrNil
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1880
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1881
        s nextPutLine:'svnRevisionNr'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1882
        s nextPutLine:'    "Return a SVN revision number of myself.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1883
        s nextPutLine:'     This number is updated after a commit"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1884
        s cr;
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1885
        nextPutLine:'    ^ "$SVN-Revision:"''', ('%-16s' printf: (Array with: revisionNrOrNil printString)) , '''"$"'.
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1886
    ].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1887
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1888
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1889
     self svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1890
     stx_libbasic3 svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1891
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1892
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1893
    "Created: / 16-06-2009 / 12:12:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1894
    "Modified: / 22-08-2009 / 09:05:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1895
    "Modified: / 29-03-2012 / 18:43:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1896
! !
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1897
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  1898
!ProjectDefinition class methodsFor:'defaults'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1899
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1900
applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1901
    GUIApplicationType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1902
    ^ Array with:GUIApplicationType with:NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1903
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1904
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1905
     self applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1906
    "
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1907
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1908
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1909
defaultCategory
10466
aa61cdb54299 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10434
diff changeset
  1910
    ^'* Projects & Packages *'
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1911
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1912
    "Created: / 11-08-2006 / 14:16:49 / cg"
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1913
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1914
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1915
defaultProjectType
9745
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  1916
    ^ self libraryTypes first
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  1917
    "/ ^ self applicationTypes first
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1918
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1919
    "Created: / 23-08-2006 / 14:27:32 / cg"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1920
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1921
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1922
defaultProjectTypeForGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1923
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1924
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1925
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1926
defaultProjectTypeForNonGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1927
    ^ NonGUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1928
!
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1929
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1930
guiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1931
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1932
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1933
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1934
libraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1935
    ^ LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1936
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1937
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1938
libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1939
    LibraryType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1940
    ^ Array with:LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1941
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1942
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1943
     self libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1944
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1945
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1946
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1947
nonGuiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1948
    ^ NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1949
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1950
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1951
projectTypeSelectors
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1952
    "a list of possible project type selectors"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1953
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1954
    ^ #( libraryType guiApplicationType nonGuiApplicationType )
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1955
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1956
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1957
     self libraryType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1958
     self guiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1959
     self nonGuiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1960
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1961
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1962
    "Created: / 23-08-2006 / 14:27:32 / cg"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1963
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1964
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1965
projectTypes
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1966
    "a list of possible project types"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1967
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1968
    ^ self libraryTypes , self applicationTypes
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1969
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1970
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1971
     self projectTypes
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1972
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1973
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1974
    "Created: / 23-08-2006 / 14:27:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1975
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1976
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  1977
!ProjectDefinition class methodsFor:'description'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1978
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1979
excludedFromPreRequisites
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1980
    "list packages which are to be explicitely excluded from the automatic constructed
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1981
     prerequisites list. If empty, everything that is found along the inheritance of any of
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1982
     my classes is considered to be a prerequisite package."
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1984
    ^ #()
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1985
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1986
    "Modified: / 17-08-2006 / 19:48:59 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1987
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1988
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1989
excludedFromSubProjects
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1990
    "list packages which are to be explicitely excluded from the automatic constructed
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1991
     subProjects list. If empty, every sub-package is included as a prerequisite."
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1992
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1993
    ^ #()
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1994
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1995
    "Modified: / 17-08-2006 / 19:49:40 / cg"
10039
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  1996
!
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  1997
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1998
includedInPreRequisites
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1999
    "list packages which are to be explicitely included in the prerequisites list,
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2000
     even if not found by the automatic search.
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2001
     Redefine this, if classes from other packages are referred to via reflection
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2002
     or by constructing names dynamically (i.e. the search cannot find it)"
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2003
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2004
    ^ #()
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2005
!
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2006
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2007
mandatoryPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2008
    "list packages which are mandatory as a prerequisite.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2009
     This are packages containing superclasses of my classes and classes which
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2010
     are extended by myself.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2011
     They are mandatory, beacuse we need these packages as a prerequisite for loading and compiling.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2012
     This method is generated automatically,
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2013
     by searching along the inheritance chain of all of my classes."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2014
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2015
    ^ #()
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2016
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2017
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2018
preRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2019
    "list packages which are required as a prerequisite."
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2020
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2021
    "use an OrderedSet here, so that mandatory prerequisites come first"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2022
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2023
    ^ OrderedSet new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2024
        addAll:self mandatoryPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2025
        addAll:self referencedPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2026
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2027
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2028
        yourself.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2029
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2030
    "Modified: / 17-08-2006 / 19:54:21 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2031
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2032
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2033
preRequisitesFor:packageId 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2034
    |def|
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2035
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2036
    def := self definitionClassForPackage:packageId.
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2037
    def isNil ifTrue:[
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2038
        "Maybe the package is not loaded? Try to load it..."
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2039
        (Smalltalk loadPackage:packageId) ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2040
            def := self definitionClassForPackage:packageId
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2041
        ]
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2042
    ].
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2043
    ^ def isNil 
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2044
        ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2045
            "Still no project definition - maybe it does not exist?"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2046
            Transcript showCR:'Warning: no definition class for package: ', packageId.
14866
dc4ca8598270 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14860
diff changeset
  2047
            ((self searchForPreRequisites:packageId) 
dc4ca8598270 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14860
diff changeset
  2048
                fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2049
        ]
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2050
        ifFalse:[ def effectivePreRequisites ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2051
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2052
    "Created: / 24-02-2011 / 22:47:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2053
    "Modified: / 18-11-2011 / 14:52:43 / cg"
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2054
    "Modified (format): / 19-11-2011 / 11:25:36 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2055
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2056
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2057
referencedPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2058
    "list packages which are a prerequisite, because the contain
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2059
     classes which are referenced by my classes.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2060
     We do not need these packages as a prerequisite for loading or compiling.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2061
     This method is generated automatically,
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2062
     by searching along the inheritance chain of all of my classes."
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2063
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2064
    ^ #()
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2065
!
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2066
9685
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2067
siblingsAreSubProjects
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2068
    ^ false
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2069
!
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2070
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2071
splashFileName
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2072
    "answer the base-name of the splash bitmap.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2073
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2074
     Default is nil, for no splash. If non-nil, it must be a bmp file's name"
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2075
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2076
    ^ nil.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2077
!
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2078
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2079
subProjects
14959
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2080
    "list packages which are known as subprojects. 
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2081
     The generated makefile will enter those and make there as well.
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2082
     However: they are not forced to be loaded when a package is loaded; 
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2083
     for those, redefine requiredPrerequisites."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2084
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2085
    ^ #()
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2086
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2087
    "Modified: / 17-08-2006 / 19:57:46 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2088
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2089
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2090
!ProjectDefinition class methodsFor:'description - actions'!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2091
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2092
postLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2093
    "invoked after loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2094
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2095
    "/ intentionally left blank, to be redefined by subclasses (i.e. real projects)
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2096
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2097
    "Modified: / 17-08-2006 / 19:59:17 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2098
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2099
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2100
preLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2101
    "invoked before loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2102
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2103
    "/ intentionally left blank, to be redefined by subclasses (i.e. real projects)
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2104
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2105
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2106
preUnloadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2107
    "invoked before unloading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2108
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2109
    "/ intentionally left blank, to be redefined by subclasses (i.e. real projects)
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2110
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2111
    "Modified: / 17-08-2006 / 19:59:26 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2112
! !
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2113
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2114
!ProjectDefinition class methodsFor:'description - classes'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2115
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2116
additionalClassNamesAndAttributes
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  2117
    "a List of classes, that belong to the project, but may not be included
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  2118
     in the image (someone may have removed it by purpose)"
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  2119
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2120
    ^ #()
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2121
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2122
    "Created: / 21-08-2006 / 19:53:04 / cg"
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2123
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2124
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  2125
classNamesAndAttributes
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2126
    "a correponding method with real names must be present in my concrete subclasses"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2127
12202
99295d0c6e3f changed:
Claus Gittinger <cg@exept.de>
parents: 12201
diff changeset
  2128
    "/ should this be a subclassResponsibility here ?
9595
016b493d0fe8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9592
diff changeset
  2129
    ^ #()
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2130
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2131
    "Created: / 07-08-2006 / 19:02:57 / fm"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2132
    "Modified: / 07-08-2006 / 21:25:25 / fm"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2133
    "Modified: / 17-08-2006 / 20:47:20 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2134
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2135
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2136
extensionMethodNames
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2137
    "list class/selector pairs of extensions.
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2138
     A correponding method with real names must be present in my concrete subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2139
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2140
    "/ should this be a subclassResponsibility here ?
9595
016b493d0fe8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9592
diff changeset
  2141
    ^ #()
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2142
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2143
    "Modified: / 17-08-2006 / 20:49:51 / cg"
10350
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2144
!
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2145
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2146
ignoredClassNames
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2147
    "can be redefined to suppress some classes from being included in a
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2148
     generated classNamesAndAttributes spec"
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2149
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2150
    ^ #()
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2151
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2152
    "Created: / 23-01-2007 / 19:08:27 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2153
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2154
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2155
!ProjectDefinition class methodsFor:'description - compilation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2156
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2157
additionalBaseAddressDefinition_bc_dot_mak
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2158
    "allows for a base-address definition to be added to the bc.mak file.
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2159
     Subclasses may redefine this to something like
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2160
        LIB_BASE=$(LIBWIDG_BASE)
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2161
     This will be inserted BEFORE the 'include stdHeader'
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2162
    "
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2163
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2164
    ^ nil
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2165
!
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2166
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2167
additionalDefinitions
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2168
    "allows for additional definitions/rules to be added to the make.proto and bc.mak file."
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2169
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2170
    ^ ''
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2171
!
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2172
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2173
additionalDefinitions_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2174
    "allows for additional definitions/rules to be added to the bc.mak file.
10974
9887cad6b7fd typo in comment
Stefan Vogel <sv@exept.de>
parents: 10970
diff changeset
  2175
     Subclasses may redefine this."
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2176
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2177
    ^ self additionalDefinitions_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2178
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2179
    "Created: / 22-08-2006 / 23:59:32 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2180
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2181
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2182
additionalDefinitions_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2183
    "allows for additional definitions/rules to be added to the make.proto file."
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2184
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2185
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2186
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2187
    "Created: / 22-08-2006 / 23:53:08 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2188
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2189
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2190
additionalDefinitions_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2191
    "obsolete - kept for compatibility with old project files"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2192
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2193
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2194
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2195
    "Created: / 22-08-2006 / 23:59:32 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2196
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2197
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2198
additionalHeaderRulesUsingTemplate:template pathConverter:pathConverter
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2199
    "rules for header files (of autoloaded classes).
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2200
     For each extended class, which is autoloaded (and therefore, we will not find a header file for it),
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2201
     generate a rule to create the header file only."
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2202
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2203
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2204
        (self extensionClassesWithSuperclasses:true) do:[:eachExtendedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2205
            |headerFileDirPath baseFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2206
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2207
            (eachExtendedClass isLoaded not or:[eachExtendedClass wasAutoloaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2208
                headerFileDirPath := self perform:pathConverter with:eachExtendedClass package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2209
                baseFilename := self filenameForClass:eachExtendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2210
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2211
                s nextPutAll:(template
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2212
                    bindWith:headerFileDirPath
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2213
                    with:baseFilename).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2214
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2215
        ].
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2216
    ].
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2217
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2218
    "Created: / 12-09-2011 / 16:23:52 / cg"
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2219
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2220
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2221
additionalHeaderRules_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2222
    "rules for header files (of autoloaded classes)"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2223
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2224
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2225
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_bc_dot_mak)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2226
        pathConverter:#pathToPackage_win32:
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2227
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2228
    "Created: / 12-09-2011 / 15:44:09 / cg"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2229
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2230
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2231
additionalHeaderRules_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2232
    "rules for header files (of autoloaded classes)"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2233
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2234
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2235
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_make_dot_proto)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2236
        pathConverter:#pathToPackage_unix:
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2237
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2238
    "Created: / 12-09-2011 / 15:44:28 / cg"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2239
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2240
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2241
additionalLinkLibraries_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2242
    "allows for additional static libraries to be added to the bc.mak file.
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2243
     Subclasses may redefine this"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2244
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2245
    "backward compatibilty with old projects"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2246
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2247
    ^ self additionalLinkLibraries_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2248
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2249
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2250
    "Created: / 22-08-2006 / 23:53:33 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2251
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2252
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2253
additionalLinkLibraries_make_dot_proto
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2254
    "allows for additional static libraries to be added to the make.proto file."
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2255
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2256
    ^ ''
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2257
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2258
    "Created: / 22-08-2006 / 23:53:33 / cg"
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2259
!
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2260
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2261
additionalLinkLibraries_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2262
    "obsolete - kept for compatibility with old project files"
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2263
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2264
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2265
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2266
    "Created: / 22-08-2006 / 23:53:33 / cg"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2267
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2268
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2269
additionalRulesHG_bc_dot_mak
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2270
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2271
    (self class includesSelector: #version_HG) ifFalse:[^''].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2272
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2273
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2274
# **Must be at end**
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2275
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2276
# Enforce recompilation of package definition class if Mercurial working
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2277
# copy state changes. Together with --guessVersion it ensures that package
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2278
# definition class always contains correct binary revision string.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2279
!!IFDEF HGROOT
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2280
$(OUTDIR)%1.$(O): $(HGROOT)\.hg\dirstate
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2281
!!ENDIF
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2282
' bindWith: self name.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2283
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2284
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2285
        stx_libscm_mercurial additionalRulesHG_bc_dot_mak
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2286
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2287
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2288
    "Created: / 28-11-2012 / 10:15:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2289
    "Modified: / 08-12-2012 / 12:18:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2290
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2291
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2292
additionalRulesHG_make_dot_proto
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2293
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2294
    (self class includesSelector: #version_HG) ifFalse:[^''].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2295
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2296
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2297
# Enforce recompilation of package definition class if Mercurial working
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2298
# copy state changes. Together with --guessVersion it ensures that package
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2299
# definition class always contains correct binary revision string.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2300
ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n ''**NOHG**''))
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2301
%1.$(O): $(shell hg root)/.hg/dirstate
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2302
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2303
' bindWith: self name.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2304
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2305
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2306
        stx_libscm_mercurial additionalRulesHG_make_dot_proto
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2307
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2308
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2309
    "Created: / 28-11-2012 / 10:12:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2310
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2311
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2312
additionalRulesSvn_make_dot_proto
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2313
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2314
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2315
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2316
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2317
# Update SVN revision in package definition class
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2318
ifneq (,$(findstring .svn,$(wildcard .svn)))
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2319
.svnversion: *.st
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2320
        if [ -d .svn ]; then \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2321
                rev=$(shell svnversion -n); \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2322
                echo -n $$rev > .svnversion; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2323
        else \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2324
                echo -n exported > .svnversion; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2325
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2326
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2327
%1.o: %1.st .svnversion
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2328
        @if [ -d .svn ]; then \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2329
                rev2="$(shell printf "%-16s" $$(cat .svnversion))"; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2330
                echo "  [SV]  Expanding svnRevisionNo in $1.st"; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2331
                sed -e "s/\"\$$SVN\-Revision:\".*\"\$$\"/\"\$$SVN-Revision:\"\''$$rev2\''\"\$$\"/g" $< > .%1.svn.st; \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2332
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2333
        $(MAKE) CC="$(CLASSLIB_CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" STC="$(STC)" STFILE=.%1.svn $(C_RULE);
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2334
        sed -i -e "s/\".%1.svn.st\");/\"\%1.st\");/g" .%1.svn.c
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2335
        $(MAKE) .%1.svn.$(O)
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2336
        @mv .%1.svn.$(O) %1.$(O)
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2337
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2338
' bindWith: self name.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2339
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2340
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2341
        stx_libbasic3 additionalRulesSvn_make_dot_proto
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2342
    "
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2343
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2344
    "Created: / 24-06-2009 / 21:33:32 / Jan Vrany <vranyj1@fel.cvut.cz>"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2345
    "Modified: / 28-11-2012 / 10:12:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2346
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2347
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2348
additionalRules_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2349
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2350
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2351
    ^ ''
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2352
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2353
    "Created: / 22-08-2006 / 23:59:24 / cg"
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2354
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2355
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2356
additionalRules_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2357
    "allows for additional rules to be added to the make.proto file."
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2358
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2359
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2360
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2361
    "Created: / 22-08-2006 / 23:59:16 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2362
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2363
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2364
additionalSharedLinkLibraries_make_dot_proto
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2365
    "allows for additional shared libraries to be added to the make.proto file."
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2366
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2367
    ^ ''
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2368
!
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2369
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2370
additionalTargetsSvn_make_dot_proto
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2371
    "Returns additional targets to make when build projec
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2372
     checked out from SVN"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2373
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2374
    "As of 2011-02-06, new version of libsvn does not use any additional targets"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2375
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2376
    ^''
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2377
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2378
    "Created: / 24-06-2009 / 21:35:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2379
    "Modified (comment): / 06-02-2012 / 15:34:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2380
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2381
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2382
additionalTargets_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2383
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2384
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2385
    ^ ''
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2386
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2387
    "Created: / 23-08-2006 / 00:00:35 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2388
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2389
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2390
additionalTargets_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2391
    "allows for additional targets to be added to the make.proto file."
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2392
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2393
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2394
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2395
    "Created: / 22-08-2006 / 23:53:33 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2396
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2397
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2398
globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2399
    "allow for the specification of additional defines for stc compilation of prerequisite packages
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2400
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2401
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2402
    ^ ''
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2403
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2404
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2405
globalDefines_unix
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2406
    "allow for the specification of additional defines for stc compilation of prerequisite packages
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2407
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2408
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2409
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2410
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2411
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2412
globalDefines_win32
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2413
    "allow for the specification of additional defines for stc compilation of prerequisite packages
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2414
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2415
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2416
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2417
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2418
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2419
localDefines
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2420
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2421
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2422
    ^ ''
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2423
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2424
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2425
localDefines_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2426
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2427
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2428
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2429
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2430
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2431
localDefines_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2432
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2433
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2434
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2435
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2436
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2437
localIncludes
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2438
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2439
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2440
    ^ ''
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2441
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2442
    "Created: / 06-09-2006 / 18:14:31 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2443
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2444
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2445
localIncludes_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2446
    "allow for the specification of additional include directories"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2447
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2448
    ^ self makeUnixIncludes:(self localIncludes)
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2449
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2450
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2451
    "Modified: / 06-09-2006 / 18:15:26 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2452
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2453
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2454
localIncludes_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2455
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2456
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2457
    ^ self makeWin32Includes:(self localIncludes)
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2458
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2459
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2460
    "Modified: / 06-09-2006 / 18:15:37 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2461
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2462
11576
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2463
primaryTarget
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2464
    "allows the primary make target to be defined in the Make.proto/bc.mak file."
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2465
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2466
    ^ ''
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2467
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2468
    "Created: / 22-08-2006 / 23:53:33 / cg"
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2469
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2470
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2471
primaryTarget_bc_dot_mak
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2472
    "allows the primary make target to be defined in the bc.mak file."
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2473
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2474
    ^ self primaryTarget
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2475
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2476
    "Created: / 22-08-2006 / 23:53:33 / cg"
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2477
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2478
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2479
primaryTarget_make_dot_proto
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2480
    "allows the primary make target to be defined in the Make.proto file."
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2481
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2482
    ^ self primaryTarget
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2483
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2484
    "Created: / 22-08-2006 / 23:53:33 / cg"
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2485
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2486
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2487
singleHeaderRuleTemplate_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2488
    "rules for header files (of autoloaded classes)"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2489
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2490
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2491
%1\%2.$(H):
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2492
    pushd %1 \
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2493
    & $(STC) $(FFLAGS) $(STCFLAGS) $(STC_MSGFORMAT) $(DBGFLAGS) $(DEFS) -C -headerOnly %2.st \
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2494
    & popd
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2495
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2496
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2497
    "Created: / 12-09-2011 / 15:55:49 / cg"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2498
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2499
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2500
singleHeaderRuleTemplate_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2501
    "rules for header files (of autoloaded classes)"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2502
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2503
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2504
%1/%2.$(H):
15173
19cc70edf119 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15172
diff changeset
  2505
    cd %1 && $(STC) $(FFLAGS) $(STCFLAGS) $(STC_MSGFORMAT) $(DBGFLAGS) $(DEFS) -C -headerOnly %2.st \
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2506
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2507
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2508
    "Created: / 12-09-2011 / 15:55:57 / cg"
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2509
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2510
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2511
stcOptimizationOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2512
    "see the stc reference / stc usage for options.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2513
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2514
        +optspace3                  most compact code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2515
                                    - use for all gui, application code.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2516
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2517
        +optinline +optinline2 +inlineNew
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2518
                                    fastest code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2519
                                    - use only for computation-intensive classes"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2520
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2521
    ^ '+optspace3'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2522
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2523
    "Created: / 18-08-2006 / 12:50:27 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2524
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2525
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2526
stcWarningOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2527
    "see the stc reference / stc usage for options.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2528
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2529
        -warn                   no warnings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2530
        -warnNonStandard        no warnings about non-standard smalltalk features"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2531
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2532
    ^ '-warnNonStandard'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2533
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2534
    "Created: / 18-08-2006 / 12:51:38 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2535
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2536
15371
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
  2537
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2538
!ProjectDefinition class methodsFor:'description - project information'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2539
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2540
applicationAdditionalIconFileNames
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2541
    "Return the icon-filenames for additional icons of the application
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2542
    (empty collection if there are none)"
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2543
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2544
    ^ #()
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2545
!
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2546
11039
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2547
applicationIconFileName
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2548
    "Return the icon-filename for the application (nil if there is none)"
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2549
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2550
    ^ nil
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2551
!
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2552
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2553
companyName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2554
    "Returns a company string which will appear in <lib>.rc.
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2555
     Under win32, this is placed into the dlls file-info"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2556
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2557
    (
11172
04ba10b4fcf9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 11157
diff changeset
  2558
      #(
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2559
        'stx'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2560
        'exept'
11172
04ba10b4fcf9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 11157
diff changeset
  2561
      ) includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2562
        ^ 'eXept Software AG'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2563
    ].
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2564
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2565
    ^ 'My Company'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2566
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2567
    "Modified: / 18-08-2006 / 16:08:20 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2568
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2569
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2570
description
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2571
    "Returns a description string which will appear in vc.def / bc.def"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2572
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2573
    ^self productName,' ',self packageName
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2574
"/    ^ self name
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2575
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2576
    "Created: / 08-08-2006 / 11:15:01 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2577
    "Modified: / 17-08-2006 / 20:53:34 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2578
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2579
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2580
fileDescription
10416
e4fe2bf2276d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10414
diff changeset
  2581
    "Returns a description string which will appear in libName.rc and the rc-file"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2582
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2583
    ^self description
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2584
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2585
    "Modified: / 17-08-2006 / 20:27:07 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2586
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2587
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2588
fileMajorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2589
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2590
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  2591
    ^ self majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2592
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2593
    "Created: / 18-08-2006 / 12:03:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2594
    "Modified: / 30-08-2006 / 18:50:51 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2595
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2596
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2597
fileMinorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2598
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2599
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  2600
    ^ self minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2601
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2602
    "Created: / 18-08-2006 / 12:03:13 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2603
    "Modified: / 30-08-2006 / 18:50:46 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2604
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2605
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2606
fileReleaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2607
    "Returns a releaseNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2608
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2609
    "take the default revision from the cvs-version,
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2610
     but ignore a possibly present 'm'-flag that is set when this revision has been modified"
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2611
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2612
    "JV@2012-11-20: Original code was:
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2613
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2614
    ^ self cvsRevision last upTo:$m
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2615
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2616
    But this is too CVS specific. Modern SCMs does not use X.Y style
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2617
    revision numbers, instead it uses hashes (Git/Mercurial/Darcs/Monotone).
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2618
    Even worse, all the SCM code passes strings around, so providing compatible,
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2619
    polymorph object is not possible. Hence following hack."
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2620
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2621
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2622
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2623
    nr := (self cvsRevision last upTo:$m) select:[:c|c isDigit].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2624
    nr isEmptyOrNil ifTrue:[^'0'].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2625
    nr := (nr asInteger min: 16r7FFF) printString.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2626
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2627
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2628
    "Created: / 18-08-2006 / 12:02:58 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2629
    "Modified: / 30-08-2006 / 18:54:48 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2630
    "Modified: / 23-11-2012 / 11:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2631
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2632
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2633
fileRevisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2634
    "Returns a revisionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2635
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2636
    "take the default revision from the cvs-version"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2637
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2638
    "JV@2012-11-20: Original code was:
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2639
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  2640
    ^ self cvsRevision first
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2641
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2642
    But this is too CVS specific. Modern SCMs does not use X.Y style
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2643
    revision numbers, instead it uses hashes (Git/Mercurial/Darcs/Monotone).
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2644
    Even worse, all the SCM code passes strings around, so providing compatible,
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2645
    polymorph object is not possible. Hence following hack."
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2646
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2647
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2648
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2649
    nr := self cvsRevision first select:[:c|c isDigit].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2650
    nr isEmptyOrNil ifTrue:[^'0'].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2651
    nr := (nr asInteger min: 16r7FFF) printString.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2652
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2653
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2654
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2655
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2656
    stx_libbasic fileRevisionNr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2657
    stx_libbasic2 fileRevisionNr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2658
    stx_libscm_mercurial fileRevisionNr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2659
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2660
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2661
    "Created: / 18-08-2006 / 12:02:39 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2662
    "Modified: / 30-08-2006 / 18:54:39 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2663
    "Modified: / 23-11-2012 / 11:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2664
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2665
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2666
fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2667
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2668
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2669
    "<major>.<minor>.<rev>.<rel> (such as '1.2.17.1') "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2670
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2671
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2672
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2673
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2674
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2675
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2676
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2677
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2678
     self fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2679
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2680
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2681
    "Modified: / 30-08-2006 / 18:51:49 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2682
!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2683
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2684
fileVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2685
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2686
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2687
    "<major>,<minor>,<revision>,<release> (such as '2,17,1,2') "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2688
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2689
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2690
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2691
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2692
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2693
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2694
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2695
    "Created: / 17-08-2006 / 20:16:17 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2696
    "Modified: / 30-08-2006 / 18:54:20 / cg"
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2697
!
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2698
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2699
internalName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2700
    "Returns a name string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2701
11041
3bb26d86e616 Fix #description and #internalName
Stefan Vogel <sv@exept.de>
parents: 11039
diff changeset
  2702
    ^ self package
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2703
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2704
    "Modified: / 17-08-2006 / 20:27:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2705
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2706
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2707
legalCopyright
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2708
    "Returns a copyright string which will appear in <lib>.rc.
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2709
     Under win32, this is placed into the dlls file-info"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2710
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2711
    self module = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2712
        "hardwired-default"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2713
        ^ 'Copyright Claus Gittinger 1988-%1\nCopyright eXept Software AG 1998-%1'
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2714
            bindWith:(Date today year)
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2715
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2716
    self module = 'exept' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2717
        "hardwired-default"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2718
        ^ 'Copyright eXept Software AG 1998-%1'
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2719
            bindWith:(Date today year)
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2720
    ].
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2721
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2722
    ^ 'My CopyRight or CopyLeft'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2723
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2724
    "
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2725
        self legalCopyright
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2726
    "
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2727
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2728
    "Modified: / 30-08-2006 / 18:53:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2729
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2730
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2731
majorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2732
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2733
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2734
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2735
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2736
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2737
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2738
    ^ Smalltalk majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2739
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2740
    "Created: / 17-08-2006 / 20:20:18 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2741
    "Modified: / 30-08-2006 / 18:52:13 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2742
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2743
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2744
minorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2745
    "Returns a versionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2746
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2747
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2748
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2749
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2750
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2751
    ^ Smalltalk minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2752
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2753
    "Created: / 17-08-2006 / 20:20:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2754
    "Modified: / 30-08-2006 / 18:52:16 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2755
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2756
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2757
productDate
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  2758
    "Returns a product-date string which will appear in libName.rc and the installer file"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2759
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2760
    "take the current date - by default"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2761
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2762
    ^ Timestamp now printStringRFC1123Format
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2763
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2764
    "Created: / 17-08-2006 / 20:17:28 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2765
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2766
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2767
productDescription
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2768
    "Returns a description (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2769
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2770
    ^ self description
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2771
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2772
    "Created: / 21-12-2010 / 09:32:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2773
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2774
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2775
productFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2776
    "Returns a filename which be used as linkname, product file name etc."
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2777
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2778
    ^ self productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2779
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2780
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2781
     stx_projects_smalltalk productName
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2782
     stx_projects_smalltalk productFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2783
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2784
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2785
    "Created: / 01-03-2007 / 19:33:06 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2786
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2787
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2788
productInstallDir
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2789
    "Returns a default installDir which will appear in <app>.nsi."
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2790
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2791
    ^ '$PROGRAMFILES\',(self productInstallDirBaseName).
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2792
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2793
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2794
     stx_projects_smalltalk productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2795
     stx_clients_Clock_QlockTwoWatchApplication productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2796
    "
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2797
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2798
    "Created: / 14-09-2006 / 21:23:01 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2799
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2800
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2801
productInstallDirBaseName
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2802
    "Returns a default installDir which will appear in <app>.nsi.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2803
     This is usually not the one you want to keep"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2804
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2805
    ^ self module
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2806
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2807
    "Created: / 21-12-2011 / 16:31:38 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2808
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2809
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2810
productLicense
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2811
    "Returns the license (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2812
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2813
    ^ 'Commercial'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2814
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2815
    "Created: / 21-12-2010 / 09:31:25 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2816
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2817
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2818
productMaintainer
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2819
    "Returns the maintainer (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2820
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2821
    ^ self companyName
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2822
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2823
    "Created: / 21-12-2010 / 09:26:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2824
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2825
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2826
productName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2827
    "Returns a product name which will appear in <lib>.rc.
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2828
     Under win32, this is placed into the dlls file-info.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2829
     This method is usually redefined in a concrete application definition"
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2830
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2831
    |m nm|
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2832
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2833
    m := self module.
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2834
    m = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2835
        ^ 'Smalltalk/X'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2836
    ].
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2837
    m = 'exept' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2838
        ^ 'eXept addOns'
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2839
    ].
15343
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2840
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2841
    self isApplicationDefinition ifFalse:[
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2842
        ^ 'LibraryName'
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2843
    ].
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2844
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2845
    SubclassResponsibilityError handle:[:ex |
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2846
        "/ we get this error, if the concrete class has not yet redefined
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2847
        "/ startupClassName.
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2848
        self breakPoint:#cg.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2849
        ^ 'ProductName'
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2850
    ] do:[
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2851
        nm := self startupClassName.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2852
        (nm endsWith:'Startup') ifTrue:[
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2853
            ^ nm copyButLast:'Startup' size.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2854
        ].
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2855
        (nm endsWith:'Start') ifTrue:[
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2856
            ^ nm copyButLast:'Start' size.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2857
        ].
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2858
        ^ nm
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2859
    ].
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2860
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2861
    "Modified: / 08-11-2007 / 16:45:14 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2862
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2863
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2864
productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2865
    "Returns a product name which will appear in <lib>.rc.
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2866
     Under win32, this is placed into the dlls file-info"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2867
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2868
    |nm|
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2869
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2870
    nm := self productName.
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2871
    ^ nm copy replaceAny:'/\:;.,' with:$_
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2872
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2873
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2874
     'Smalltalk/X' replaceAny:'/\:;.,' with:nil
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2875
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2876
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2877
    "Created: / 01-03-2007 / 19:19:21 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2878
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2879
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2880
productPublisher
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2881
    "Returns a product publisher which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2882
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2883
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2884
        ^ 'eXept Software AG'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2885
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2886
11789
8d56dc5fa8a8 Default productPublisher is companyName
Stefan Vogel <sv@exept.de>
parents: 11777
diff changeset
  2887
    ^ self companyName
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2888
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2889
    "Created: / 14-09-2006 / 21:12:54 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2890
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2891
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2892
productType
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2893
    "Returns the product type for autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2894
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2895
    ^ 'Application'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2896
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2897
    "Created: / 21-12-2010 / 09:28:48 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2898
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2899
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2900
productVersion
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  2901
    "Returns a product version which will appear in libName.rc and the installer file"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2902
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2903
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2904
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2905
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2906
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2907
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2908
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2909
        with:self releaseNr.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2910
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2911
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2912
     self productVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2913
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2914
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2915
    "Modified: / 30-08-2006 / 18:52:47 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2916
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2917
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2918
productVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2919
    "Returns a product version which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2920
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2921
    "<major>.<minor>.<revision>.<release> (such as '0,1,1,1') "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2922
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2923
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2924
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2925
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2926
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2927
        with:self releaseNr.
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2928
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2929
    "
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2930
     self productVersionCommaSeparated
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2931
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2932
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2933
    "Created: / 17-08-2006 / 20:13:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2934
    "Modified: / 30-08-2006 / 18:52:42 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2935
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2936
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2937
productWebSite
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2938
    "Returns a product webSite which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2939
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2940
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2941
        ^ 'http://www.exept.de'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2942
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2943
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2944
    "/ should be redefined by concrete ApplicationDefinition
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2945
    ^ 'http://www.yoursite.com'
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2946
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2947
    "Created: / 14-09-2006 / 21:15:05 / cg"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2948
    "Modified: / 01-03-2007 / 18:11:27 / cg"
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2949
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2950
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2951
releaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2952
    "Returns a releaseNr which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2953
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2954
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2955
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2956
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2957
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2958
    ^ Smalltalk releaseNr
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2959
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2960
    "Created: / 17-08-2006 / 20:20:51 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2961
    "Modified: / 30-08-2006 / 18:52:22 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2962
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2963
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2964
revisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2965
    "Returns a revisionNr which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2966
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2967
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2968
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2969
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2970
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2971
    ^ Smalltalk revisionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2972
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2973
    "Created: / 17-08-2006 / 20:20:40 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2974
    "Modified: / 30-08-2006 / 18:52:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2975
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2976
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2977
versionNumber
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2978
    "Returns a version string which will appear in bc.def / vc.def "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2979
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2980
    ^''
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2981
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2982
    "Created: / 08-08-2006 / 11:35:52 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2983
    "Modified: / 17-08-2006 / 19:46:29 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2984
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2985
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2986
!ProjectDefinition class methodsFor:'file generation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2987
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2988
apspecFilename
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  2989
    "/ for linux
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2990
    ^ 'autopackage/default.apspec'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2991
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2992
    "Created: / 21-12-2010 / 09:43:13 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2993
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2994
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  2995
basicFileNamesToGenerate
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2996
    "answer a dictionary (filename -> generator method) with all the files,
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  2997
     that have to be generated for this package"
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2998
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2999
    |dict|
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3000
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3001
    dict := OrderedDictionary withKeysAndValues:#(
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3002
          'Make.spec'         #'generate_make_dot_spec'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3003
          'Make.proto'        #'generate_make_dot_proto'
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3004
          "/ cg: changed to generate Makefile.init instead of Makefile,
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3005
          "/     because macosx files are not case sensitive.
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3006
          "/ You will have to execute make -f Makefile.init initially
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3007
          "/ 'Makefile'          #'generate_makefile'          "/ for unix
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  3008
          'Makefile.init'     #'generate_makefile'          "/ for unix
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3009
          'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3010
          'abbrev.stc'        #'generate_abbrev_dot_stc'
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3011
          'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3012
          'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
15202
797ecbccf27a class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15201
diff changeset
  3013
          'lccmake.bat'       #'generate_lccmake_dot_mak'   "/ for lcc - not supported at the moment
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3014
          "/ 'tccmake.bat'       #'generate_tccmake_dot_mak'     "/ for tcc - cannot link at the moment
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3015
          'mingwmake.bat'     #'generate_mingwmake_dot_mak'   "/ for mingw
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3016
    ).
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3017
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3018
    dict
14060
cefb6d8205e4 changed:
Stefan Vogel <sv@exept.de>
parents: 14045
diff changeset
  3019
        at:self rcFilename      put:#'generate_packageName_dot_rc'.             "/ for windows
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3020
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3021
    ^ dict.
13154
bac0fcd8a888 make sure that the makefiles are generated before the libInit file
Claus Gittinger <cg@exept.de>
parents: 13148
diff changeset
  3022
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3023
    "Modified (comment): / 05-09-2012 / 19:43:07 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3024
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3025
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3026
fileNamesToGenerate
12200
7e452033e984 rememberOverwrittenExtensionMethods
Claus Gittinger <cg@exept.de>
parents: 12198
diff changeset
  3027
    "answer the files that have to be generated as a dictionary of names and generator method"
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3028
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3029
    ^ self basicFileNamesToGenerate removeAllKeys:self protectedFileNames ifAbsent:[]
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3030
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3031
    "
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3032
      stx_libbasic fileNamesToGenerate
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3033
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3034
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3035
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3036
forEachFileNameAndGeneratedContentsDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3037
    "for build-support file generation, checkin etc., use this common method which
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3038
     enumerates all fileNames with their generated contents to be built."
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3039
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3040
    |pairs|
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3041
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3042
    pairs := OrderedCollection new.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3043
    self forEachFileNameAndGeneratorMethodDo:[:fileName :generator |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3044
        |file|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3045
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3046
        file := self perform:generator.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3047
        pairs add:(Array with:fileName with:file)
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3048
    ].
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3049
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3050
    pairs pairsDo:aTwoArgBlock
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3051
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3052
    "Created: / 16-08-2006 / 18:37:52 / User"
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3053
!
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3054
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3055
forEachFileNameAndGeneratorMethodDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3056
    "helper for build-support file generation"
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3057
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3058
    self fileNamesToGenerate keysAndValuesDo:aTwoArgBlock
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3059
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3060
    "Modified: / 14-09-2006 / 21:02:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3061
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3062
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3063
generateFile:filename
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3064
    |action|
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3065
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3066
    action := self basicFileNamesToGenerate at:filename ifAbsent:[].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3067
    action notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3068
        ^ self perform:action
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3069
    ].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3070
    (filename = 'app.rc' or:[filename = 'lib.rc']) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3071
        ^ self generate_packageName_dot_rc
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  3072
    ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3073
    (filename = 'loadAll') ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3074
        ^ self generate_loadAll
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3075
    ].
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3076
    self error:('File "%1" not appropriate (not generated) for this type of project.' bindWith:filename)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3077
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3078
    "Modified: / 21-12-2010 / 11:01:10 / cg"
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3079
    "Modified (format): / 21-01-2012 / 12:31:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3080
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3081
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3082
generateFile:filename in: directory
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3083
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3084
    | dir s |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3085
    dir := directory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3086
    dir exists ifFalse:[self error:'Directory does not exist'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3087
    [
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3088
        s := ( dir / (filename asFilename baseName) ) writeStream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3089
        s nextPutAll: (self generateFile: filename).
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3090
    ] ensure:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3091
        s ifNotNil:[s close]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3092
    ]
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3093
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3094
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3095
        stx_projects_smalltalk generateFile:'package.deps.rake' in: '/tmp'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3096
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3097
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3098
    "Created: / 26-02-2011 / 10:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3099
    "Modified: / 09-06-2011 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3100
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3101
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3102
generateRemoveShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3103
    "generate a shell script to a cvs remove of broken class filenames.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3104
     To be called after the output of #generateRenameShellScript: has been performed"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3105
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3106
    |firstLine|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3107
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3108
    firstLine := true.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3109
    self searchForClasses do:[:eachClass|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3110
        firstLine ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3111
            aStream nextPutAll:'cvs rm -f '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3112
            firstLine := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3113
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3114
        eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3115
            aStream nextPutAll:eachClass classBaseFilename; space.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3116
        ]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3117
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3118
    firstLine ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3119
        aStream cr.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3120
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3121
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3122
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3123
       stx_goodies_webServer_htmlTree generateRemoveShellScriptOn:Transcript
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3124
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3125
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3126
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3127
generateRenameShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3128
    "generate a shell script to rename broken class filenames"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3129
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3130
    self searchForClasses do:[:eachClass|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3131
        eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3132
            aStream nextPutAll:'cp ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3133
                   nextPutAll:eachClass classBaseFilename; nextPutAll:',v ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3134
                   nextPutAll:eachClass generateClassFilename; nextPutAll:'.st,v'; cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3135
        ]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3136
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3137
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3138
    "
11981
e479249ba36e Fix #generateRenameShellScriptOn:
Stefan Vogel <sv@exept.de>
parents: 11980
diff changeset
  3139
       stx_libdb generateRemoveShellScriptOn:Transcript
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3140
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3141
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3142
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3143
generate_abbrev_dot_stc
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3144
   "/ for stc: provides abbreviations and namespace information
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3145
   self checkIfClassesArePresent.
10104
96bce48c03b5 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10103
diff changeset
  3146
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3147
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3148
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3149
            |addEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3150
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3151
            addEntry :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3152
                [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3153
                    |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3154
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3155
                    s nextPutAll:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3156
                    s nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3157
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3158
                    cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3159
                    cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3160
                        fn := self filenameForClass:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3161
                        s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3162
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3163
                        s nextPutAll:' '; nextPutAll:'unknownCategory' storeString; nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3164
                        s nextPutAll:' '; nextPutAll:'0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3165
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3166
                        wasLoaded := cls isLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3167
                        wasLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3168
                            failedToLoad := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3169
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3170
                            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3171
                                failedToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3172
                            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3173
                                ParserFlags
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3174
                                    withSTCCompilation:#never
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3175
                                    do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3176
                                        cls autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3177
                                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3178
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3179
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3180
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3181
                        fn := self filenameForClass:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3182
                        (fn includes:Character space) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3183
                            s nextPutAll:fn storeString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3184
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3185
                            s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3186
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3187
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3188
                        s nextPutAll: (cls category asString storeString).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3189
                        failedToLoad ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3190
                            s nextPutAll:' 0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3191
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3192
                            numClassInstvars := cls theMetaclass instSize - Class instSize.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3193
                            s nextPutAll:' '; nextPutAll:numClassInstvars printString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3194
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3195
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3196
                        wasLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3197
                            cls unload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3198
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3199
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3200
                    s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3201
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3202
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3203
            s nextPutLine:'# automagically generated by the project definition'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3204
            s nextPutLine:'# this file is needed for stc to be able to compile modules independently.'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3205
            s nextPutLine:'# it provides information about a classes filename, category and especially namespace.'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3206
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3207
            self allClassNames do:addEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3208
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3209
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3210
                    addEntry value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3211
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3212
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3213
        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3214
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3215
    "
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3216
        stx_libbasic generate_abbrev_dot_stc
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3217
        DapasXProject generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3218
        DapasX_Datenbasis generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3219
        bosch_dapasx_interactiver_editor generate_abbrev_dot_stc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3220
    "
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3221
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3222
    "Created: / 09-08-2006 / 11:24:39 / fm"
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3223
    "Modified: / 21-01-2012 / 12:42:57 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3224
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3225
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3226
generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3227
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3228
    ^self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3229
        replaceMappings: self autopackage_default_dot_apspec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3230
        in: self autopackage_default_dot_apspec
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3231
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3232
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3233
     stx_projects_smalltalk generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3234
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3235
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3236
    "Created: / 21-12-2010 / 09:40:04 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3237
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3238
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3239
generate_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3240
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3241
        replaceMappings: self bc_dot_mak_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3242
        in: self bc_dot_mak) asStringCollection withTabs asString
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3243
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3244
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3245
     DapasXProject generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3246
     DapasX_Datenbasis generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3247
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3248
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3249
    "Modified: / 09-08-2006 / 11:46:14 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3250
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3251
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3252
generate_bmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3253
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3254
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3255
            in: self bmake_dot_mak
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3256
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3257
    "Created: / 17-08-2006 / 20:03:43 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3258
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3259
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3260
generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3261
    ^ self replaceMappings:self builder_baseline_dot_rbspec_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3262
        in:self builder_baseline_dot_rbspec
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3263
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3264
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3265
     stx_projects_smalltalk generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3266
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3267
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3268
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3269
    "Created: / 24-02-2011 / 11:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3270
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3271
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3272
generate_lccmake_dot_mak
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3273
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3274
    ^self replaceMappings: self bmake_dot_mak_mappings
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3275
            in: self lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3276
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3277
    "Created: / 03-09-2012 / 19:49:56 / cg"
11979
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3278
!
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3279
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3280
generate_loadAll
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3281
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3282
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3283
            |classNames classesLoaded classNamesUnloaded classesSorted classNamesSorted|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3284
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3285
            classNames := self compiled_classNames_common.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3286
            classesLoaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3287
                        collect:[:nm | Smalltalk classNamed:nm]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3288
                        thenSelect:[:cls |  cls notNil and:[cls isLoaded] ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3289
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3290
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3291
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3292
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3293
                            cls isNil or:[cls isLoaded not]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3294
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3295
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3296
            classesSorted := Class classesSortedByLoadOrder:classesLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3297
            classNamesSorted := classesSorted collect:[:cls | cls name].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3298
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3299
            s nextPutAll:'"/
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3300
"/ $' , 'Header' , '$
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3301
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3302
"/ loadAll-file to fileIn code for: ' , self package , '
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3303
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3304
"/ Automatically generated from the ProjectDefinition.
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3305
"/ DO NOT MODIFY THIS FILE;
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3306
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3307
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3308
"/ Prerequisites:
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3309
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3310
"/ Smalltalk loadPackage:''module:directory''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3311
"/ Smalltalk loadPackage:''....''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3312
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3313
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3314
"{ package:''' , self package, ''' }"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3315
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3316
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3317
|files|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3318
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3319
''loading package ' , self package ,'...'' infoPrint.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3320
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3321
files := #(
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3322
'.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3323
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3324
            classesSorted do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3325
                s nextPutLine:'  ''' , (self filenameForClass:eachClass), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3326
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3327
            classNamesUnloaded do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3328
                s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3329
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3330
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3331
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3332
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3333
                    s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3334
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3335
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3336
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3337
            self hasExtensionMethods ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3338
                s nextPutLine:'  ''extensions.st'''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3339
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3340
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3341
            s nextPutAll:'
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3342
).
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3343
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3344
"/ see if there is a classLibrary
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3345
(Smalltalk fileInClassLibrary:''' , (self libraryName) , ''') ifTrue:[
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3346
    |handle loaded|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3347
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3348
    handle := ObjectFileLoader loadedObjectHandles
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3349
                    detect:[:h | h package = ''' , self package , '''] ifNone:nil.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3350
    handle ifNotNil:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3351
        loaded := Set new:(handle classes size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3352
        handle classes do:[:c| c isMeta ifFalse:[loaded add:c classBaseFilename]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3353
        files := files \ loaded.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3354
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3355
].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3356
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3357
"/ load files which are not in the classLibrary (all if there is none)
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3358
files notEmpty ifTrue:[
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3359
  '''' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3360
  files do:[:f |
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3361
    ''.'' infoPrint.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3362
    f asFilename exists ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3363
        Smalltalk fileIn:f.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3364
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3365
        Smalltalk fileIn:(''source/'' , f)
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3366
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3367
  ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3368
  '' '' infoPrintCR.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3369
].
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3370
''done (' , self package ,').'' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3371
'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3372
        ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3373
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3374
    "Created: / 14-09-2006 / 14:21:31 / cg"
10080
e7a9912eef18 use classBaseFilename
Claus Gittinger <cg@exept.de>
parents: 10076
diff changeset
  3375
    "Modified: / 12-10-2006 / 15:55:00 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3376
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3377
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3378
generate_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3379
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3380
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3381
        replaceMappings: self make_dot_proto_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3382
        in: self make_dot_proto) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3383
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3384
    "
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3385
     stx_libbasic2 generate_make_dot_proto
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3386
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3387
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3388
    "Modified: / 09-08-2006 / 11:31:01 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3389
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3390
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3391
generate_make_dot_spec
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3392
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3393
        replaceMappings: self make_dot_spec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3394
        in: self make_dot_spec) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3395
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3396
    "
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3397
     DapasXProject generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3398
     DapasX_Datenbasis generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3399
     bosch_dapasx_kernel_Definition generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3400
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3401
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3402
    "Modified: / 09-08-2006 / 11:31:09 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3403
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3404
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3405
generate_makefile
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3406
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3407
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3408
        replaceMappings: self makefile_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3409
        in: self makefile) asStringCollection withTabs asString
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3410
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3411
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3412
     stx_libbasic2 generate_makefile
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3413
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3414
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3415
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3416
generate_mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3417
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3418
    ^self replaceMappings: self bmake_dot_mak_mappings
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3419
            in: self mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3420
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3421
    "Created: / 05-09-2012 / 19:44:07 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3422
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3423
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3424
generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3425
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3426
    ^self replaceMappings: self packageName_dot_rc_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3427
            in: self packageName_dot_rc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3428
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3429
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3430
  bosch_dapasx_datenbasis generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3431
  bosch_dapasx_hw_schnittstellen  generate_packageName_dot_rc
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3432
  stx_libbasic3 generate_packageName_dot_rc
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3433
  stx_libwidg3 generate_packageName_dot_rc
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3434
  stx_libwidg3 productVersion
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3435
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3436
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3437
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3438
    "Modified: / 09-08-2006 / 11:31:09 / fm"
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3439
    "Modified: / 21-08-2006 / 19:33:21 / cg"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3440
!
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3441
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3442
generate_package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3443
    ^ (self replaceMappings:self package_dot_deps_dot_rake_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3444
        in:self package_dot_deps_dot_rake) asStringCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3445
        withTabs asString
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3446
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3447
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3448
     stx_libjava generate_dependencies_dot_rake"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3449
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3450
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3451
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3452
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3453
generate_tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3454
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3455
    ^self replaceMappings: self bmake_dot_mak_mappings
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3456
            in: self tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3457
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3458
    "Created: / 03-09-2012 / 19:50:25 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3459
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3460
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3461
generate_vc_dot_def
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3462
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3463
    ^self replaceMappings: self vc_dot_def_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3464
            in: self vc_dot_def
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3465
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3466
"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3467
  DapasXProject generate_vc_dot_def
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3468
  DapasX_Datenbasis generate_vc_dot_def
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3469
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3470
"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3471
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3472
    "Modified: / 09-08-2006 / 11:31:21 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3473
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3474
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3475
generate_vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3476
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3477
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3478
            in: self vcmake_dot_mak
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3479
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3480
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3481
protectedFileNames
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3482
    "names of files which should NOT be generated (because they are hand-maintained)
12200
7e452033e984 rememberOverwrittenExtensionMethods
Claus Gittinger <cg@exept.de>
parents: 12198
diff changeset
  3483
     - redefine this to protect a hand-written Make.proto or other handwritten support files"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3484
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3485
    ^ #()
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3486
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3487
    "Created: / 14-09-2006 / 14:38:40 / cg"
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3488
    "Modified: / 21-12-2010 / 11:36:46 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3489
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3490
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3491
rcFilename
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3492
    ^ self packageName,'.rc'.
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3493
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3494
    "Created: / 07-09-2006 / 17:07:00 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3495
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3496
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  3497
!ProjectDefinition class methodsFor:'file mappings'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3498
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3499
autopackage_default_dot_apspec_mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3500
    |mappings|
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3501
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3502
    mappings := Dictionary new.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3503
    mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3504
        at: 'TOP' put: ( self pathToTop_unix );                 "/ unix here
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3505
"/        at: 'MODULE_PATH' put: ( self moduleDirectory );        "/ unix here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3506
        at: 'DESCRIPTION' put: (self description);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3507
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3508
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3509
        at: 'PRODUCT_PUBLISHER' put: (self productPublisher);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3510
        at: 'PRODUCT_WEBSITE' put: (self productWebSite);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3511
        at: 'PRODUCT_INSTALLDIR' put: (self productInstallDir);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3512
        at: 'PRODUCT_TYPE' put: (self productType);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3513
        at: 'PRODUCT_LICENSE' put: (self productLicense);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3514
        at: 'PRODUCT_DESCRIPTION' put: (self productDescription);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3515
        at: 'MAINTAINER' put: (self productMaintainer);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3516
        at: 'PACKAGER' put: (self productPublisher);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3517
        yourself.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3518
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3519
    ^ mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3520
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3521
    "Created: / 21-12-2010 / 09:00:49 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3522
    "Modified: / 05-09-2012 / 10:09:06 / cg"
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3523
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3524
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3525
bc_dot_mak_mappings
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3526
    |d|
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3527
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3528
    d := self common_mappings.
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  3529
    ^ d
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3530
        at: 'TOP' put: ( self pathToTop_win32 );                "/ win32 here
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3531
        at: 'MODULE_PATH' put: ( self moduleDirectory_win32 );  "/ win32 here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3532
        at: 'PRIMARY_TARGET' put: (self primaryTarget_bc_dot_mak);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3533
        at: 'ADDITIONAL_BASE_ADDRESS_DEFINITION' put: (self additionalBaseAddressDefinition_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3534
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3535
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_bc_dot_mak);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3536
        at: 'ADDITIONAL_RULES' put: (self additionalRules_bc_dot_mak ? '');
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3537
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_bc_dot_mak ? '');
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3538
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3539
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3540
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_win32 ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3541
        at: 'LOCAL_DEFINES' put: self localDefines_win32 ? '';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3542
        at: 'GLOBAL_DEFINES' put: self globalDefines_win32 ? '';
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  3543
        yourself.
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3544
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3545
    "Created: / 18-08-2006 / 11:43:39 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3546
    "Modified: / 05-09-2012 / 10:02:51 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3547
    "Modified: / 28-11-2012 / 10:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3548
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3549
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3550
bmake_dot_mak_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3551
    ^ self common_mappings
14344
b06bca5c82fa changed: #bmake_dot_mak_mappings
Claus Gittinger <cg@exept.de>
parents: 14339
diff changeset
  3552
        at:'TOP' put: ( self pathToTop_win32 );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3553
        at:'SUBPROJECT_BMAKE_CALLS' put:(self subProjectBmakeCalls);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3554
        at:'SUBPROJECT_VCMAKE_CALLS' put:(self subProjectVCmakeCalls);
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3555
        at:'SUBPROJECT_LCCMAKE_CALLS' put:(self subProjectLCCmakeCalls);
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3556
        at:'SUBPROJECT_TCCMAKE_CALLS' put:(self subProjectTCCmakeCalls);
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3557
        at:'SUBPROJECT_MINGWMAKE_CALLS' put:(self subProjectMingwmakeCalls);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3558
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3559
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3560
    "Created: / 17-08-2006 / 21:41:56 / cg"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3561
    "Modified: / 05-09-2012 / 19:45:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3562
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3563
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3564
builder_baseline_dot_rbspec_mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3565
    |mappings|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3566
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3567
    mappings := Dictionary new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3568
    mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3569
        at:'APPLICATION' put:(self perform:#applicationName ifNotUnderstood:[self packageName]);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3570
        at:'APPLICATION_PACKAGE' put:self package printString;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3571
        at:'PREAMBLE' put:self builder_baseline_dot_rbspec_preamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3572
        at:'POSTAMBLE' put:self builder_baseline_dot_rbspec_postamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3573
        at:'PACKAGES' put:self builder_baseline_dot_rbspec_packages;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3574
        yourself.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3575
    ^ mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3576
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3577
    "Modified: / 21-12-2010 / 11:00:22 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3578
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3579
    "Modified: / 09-06-2011 / 14:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3580
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3581
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3582
builder_baseline_dot_rbspec_packages
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3583
    ^ String streamContents:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3584
            [:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3585
            self allPreRequisitesSorted do:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3586
                    [:packageId |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3587
                    s
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3588
                        nextPutAll:('  package "%1"' bindWith:packageId);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3589
                        cr ] ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3590
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3591
    "Created: / 24-02-2011 / 11:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3592
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3593
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3594
classLine_mappings:aClassName
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3595
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3596
        at:'CLASS' put:(self st2c:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3597
        yourself
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3598
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3599
    "Modified: / 09-08-2006 / 18:27:07 / fm"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3600
    "Created: / 19-09-2006 / 22:47:43 / cg"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3601
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3602
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3603
common_mappings
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3604
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3605
        at: 'TAB' put: ( Character tab asString );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3606
        at: 'TOP' put: ( 'depends-on-file(unix vs. win32)' );       "/ must be in specific mapping
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3607
        at: 'LIBRARY_NAME' put: ( self libraryName );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3608
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3609
        at: 'MODULE' put: ( self module );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3610
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );           "/ always unix format
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3611
        at: 'MODULE_PATH' put: ( 'depends-on-file(unix vs. win32)' );   "/ must be in specific mapping
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3612
        yourself
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3613
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3614
    "Created: / 04-09-2012 / 13:04:26 / cg"
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3615
!
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3616
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3617
make_dot_proto_mappings
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3618
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3619
        at: 'MODULE' put: ( self module );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3620
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3621
        at: 'MODULE_PATH' put: ( self moduleDirectory );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3622
        at: 'TOP' put: ( self pathToTop_unix );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3623
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3624
        at: 'LIBRARY_NAME' put: ( self libraryName );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3625
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3626
        at: 'LOCAL_DEFINES' put: self localDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3627
        at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3628
        at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3629
        at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3630
        at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3631
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3632
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3633
        at: 'ADDITIONAL_RULES' put: (self additionalRules_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3634
        at: 'ADDITIONAL_RULES_SVN' put: (self additionalRulesSvn_make_dot_proto);
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3635
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_make_dot_proto);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3636
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3637
        at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3638
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3639
        at: 'ADDITIONAL_SHARED_LINK_LIBRARIES' put: (self additionalSharedLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3640
        at: 'DEPENDENCIES' put: (self generateDependencies_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3641
        yourself
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3642
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3643
    "Created: / 09-08-2006 / 11:20:45 / fm"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3644
    "Modified: / 09-08-2006 / 16:44:48 / fm"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  3645
    "Modified: / 24-06-2009 / 21:50:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  3646
    "Modified: / 22-08-2009 / 12:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3647
    "Modified: / 05-09-2012 / 10:10:40 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3648
    "Modified: / 28-11-2012 / 10:07:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3649
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3650
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3651
make_dot_spec_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3652
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3653
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3654
        at: 'STCWARNINGOPTIONS' put: (self stcWarningOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3655
        at: 'STCOPTIMIZATIONOPTIONS' put: (self stcOptimizationOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3656
        at: 'CLASSES' put: [self generateClasses_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3657
        at: 'OBJECTS' put: [self generateObjects_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3658
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3659
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3660
    "Created: / 18-08-2006 / 11:44:23 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3661
    "Modified: / 05-09-2012 / 10:11:02 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3662
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3663
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3664
makefile_mappings
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3665
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3666
        yourself
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3667
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3668
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3669
packageName_dot_rc_mappings
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3670
    |d s resourceCount|
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3671
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3672
    d := Dictionary new.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3673
    d
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3674
        at: 'PRODUCT_NAME' put: (self productName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3675
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3676
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3677
        at: 'FILETYPE' put: ( 'VFT_DLL' );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3678
        at: 'FILE_VERSION_COMMASEPARATED' put: (self fileVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3679
        at: 'PRODUCT_VERSION_COMMASEPARATED' put: (self productVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3680
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3681
        at: 'COMPANY_NAME' put: (self companyName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3682
        at: 'FILE_DESCRIPTION' put: (self fileDescription);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3683
        at: 'FILE_VERSION' put: (self fileVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3684
        at: 'INTERNAL_NAME' put: (self internalName).
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  3685
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3686
    s := self legalCopyright.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3687
    s notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3688
        d at: 'LEGAL_COPYRIGHT_LINE' put: '      VALUE "LegalCopyright", "',s,'\0"'
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3689
    ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3690
    s := String streamContents:[:stream|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3691
            |suff|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3692
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3693
            s := self applicationIconFileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3694
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3695
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3696
                    suff := '.ico'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3697
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3698
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3699
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3700
                'IDR_MAINFRAME           ICON    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3701
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3702
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3703
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3704
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3705
            s := self splashFileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3706
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3707
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3708
                    suff := '.bmp'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3709
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3710
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3711
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3712
                'IDR_SPLASH           BITMAP    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3713
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3714
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3715
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3716
            resourceCount := 2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3717
            self applicationAdditionalIconFileNames do:[:eachFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3718
                'IDR_MAINFRAME+%1           ICON    DISCARDABLE     "%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3719
                        expandPlaceholdersWith:(Array with:resourceCount with:eachFilename) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3720
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3721
                resourceCount := resourceCount+1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3722
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3723
        ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3724
    d at: #'ICONDEFINITION_LINE' put:s.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3725
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3726
    ^ d
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3727
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3728
    "Created: / 09-08-2006 / 11:21:21 / fm"
13309
27f463f6c0cb changed: #packageName_dot_rc_mappings
Claus Gittinger <cg@exept.de>
parents: 13285
diff changeset
  3729
    "Modified: / 22-02-2011 / 11:30:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3730
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3731
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3732
package_dot_deps_dot_rake_mappings
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3733
    |dependencies|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3734
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3735
    dependencies := String 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3736
            streamContents:[:s | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3737
                self allPreRequisites do:[:package | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3738
                    (self preRequisitesFor:package) do:[:prereq | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3739
                        s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3740
                            nextPutAll:('task "%1" => "%2"' bindWith:package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3741
                            cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3742
                    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3743
                    s cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3744
                ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3745
                self effectivePreRequisites do:[:prereq | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3746
                    s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3747
                        nextPutAll:('task "%1" => "%2"' bindWith:self package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3748
                        cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3749
                ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3750
            ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3751
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3752
    ^ (Dictionary new)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3753
        at:'DEPENDENCIES' put:dependencies;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3754
        yourself
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3755
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3756
    "
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3757
        stx_libjava generate_package_dot_deps_dot_rake
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3758
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3759
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3760
    "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3761
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3762
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3763
replaceMappings: mappings in: fileTemplate
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3764
    "Replaces the defined variable mappings found in a file template with the corresponding information"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3765
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3766
    ^ fileTemplate bindWithArguments:mappings.
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3767
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3768
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3769
     self replaceMappings: (self nt_dot_def_mappingsFor: self) in: self nt_dot_def
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3770
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3771
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3772
    "Created: / 08-08-2006 / 11:44:27 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3773
    "Modified: / 08-08-2006 / 12:46:13 / fm"
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3774
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3775
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3776
st2c:aString
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3777
        ^ (aString asString
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3778
            copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8)))
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3779
                replaceAny:':' with:$_
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3780
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3781
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  3782
!ProjectDefinition class methodsFor:'file mappings support'!
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3783
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3784
classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3785
    "answer a dictionary
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3786
        category -> classNames topological sorted"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3787
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3788
    |classes classNames mapping|
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3789
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3790
    mapping := Dictionary new.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3791
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  3792
    classes := Class classesSortedByLoadOrder:self compiled_classes_common.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3793
    classNames := classes collect:[:eachClass| eachClass name].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3794
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3795
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3796
            classNames add:nm.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3797
        ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3798
    ].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3799
    mapping at:'COMMON' put:classNames.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3800
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3801
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3802
    OperatingSystem knownPlatformNames do:[:platformID |
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3803
        |platformClasses platformClassNames|
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3804
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3805
        platformClasses := self compiled_classesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3806
        platformClasses notEmpty ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3807
            (platformClasses contains:[:each| each isNil or:[each isLoaded not]]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3808
                "win32 classes are not present in linux..."
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3809
                Transcript show:'Missing classes for platform: '. Transcript showCR:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3810
                platformClassNames := self compiled_classNamesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3811
                platformClassNames
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3812
                    select:[:nm | |cls| cls := Smalltalk classNamed:nm. cls isNil or:[cls isLoaded not]]
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3813
                    thenDo:[:nm | Transcript tab; showCR:nm].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3814
                (Dialog confirm:('Dependencies (and therefore build-order) might be incorrect\(some classes for platform ''%1'' are not present or autoloaded; see Transcript).\\Continue anyway without recomputing the order for this platform''s classes?' withCRs bindWith:platformID))
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3815
                ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3816
                    AbortOperationRequest raise.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3817
                ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3818
            ] ifFalse:[
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  3819
                classes := Class classesSortedByLoadOrder:platformClasses.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3820
                platformClassNames := platformClasses collect:[:eachClass| eachClass name].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3821
            ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3822
            mapping at:platformID asUppercase put:platformClassNames.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3823
        ].
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3824
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3825
    ^ mapping
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3826
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3827
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3828
     stx_libbasic classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3829
     stx_libbasic3 classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3830
     stx_libview classNamesByCategory
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3831
     stx_libjava classNamesByCategory
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3832
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3833
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3834
    "Created: / 09-08-2006 / 11:24:39 / fm"
13836
97abd31bbd13 changed: #classNamesByCategory
Claus Gittinger <cg@exept.de>
parents: 13823
diff changeset
  3835
    "Modified: / 25-11-2011 / 16:41:47 / cg"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3836
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3837
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3838
commonSymbolsFlag
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3839
    "only for libraries"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3840
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3841
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3842
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3843
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3844
filenameForClass:classNameOrClass
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3845
    "answer the base filename of the class without suffix"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3846
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3847
"/    "enable this code if you want to convert old filenames to new filenames.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3848
"/     See also: #generateRemoveShellScriptOn: and #generateRenamShellScriptOn:"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3849
"/    classNameOrClass isBehavior ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3850
"/        ^ classNameOrClass generateClassFilename.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3851
"/    ] ifFalse:[
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3852
"/        |cls|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3853
"/
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3854
"/        cls := Smalltalk classNamed:classNameOrClass.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3855
"/        cls notNil ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3856
"/            ^ cls generateClassFilename.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3857
"/        ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3858
"/    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3859
"/    "end special code"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3860
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3861
    ^ Smalltalk fileNameForClass:classNameOrClass.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3862
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3863
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3864
        self filenameForClass:HTML::Encoder
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3865
        Smalltalk fileNameForClass:HTML::Encoder
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3866
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3867
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3868
    "Created: / 08-08-2006 / 20:17:28 / fm"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3869
    "Modified: / 20-10-2006 / 16:22:58 / cg"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3870
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3871
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3872
generateClassLines:classLineTemplate
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3873
    "for the init-file: generate class-init-lines for all classes"
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3874
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3875
    ^ self generateClassLines:classLineTemplate forClasses:(self compiled_classNames_common)
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3876
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3877
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3878
generateClassLines:classLineTemplate forClasses:classNames
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3879
    "for the init-file: generate class-init-lines for a collection of classes"
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3880
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3881
    ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3882
!
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3883
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3884
generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3885
    "for the init-file: generate class-init-lines for a collection of classes"
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3886
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3887
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3888
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3889
            |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3890
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3891
            putLineForClassName := [:className |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3892
                    |newClassLine mappings|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3893
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3894
                    mappings := self classLine_mappings:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3895
                    newClassLine := self replaceMappings:mappings in:classLineTemplate.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3896
                    s nextPutLine:newClassLine
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3897
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3898
            classesLoaded := classNames collect:[:eachClassName | Smalltalk classNamed:eachClassName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3899
                                        thenSelect:[:eachClass | eachClass notNil and:[eachClass isLoaded]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3900
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3901
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3902
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3903
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3904
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3905
                            cls isNil or:[ cls isLoaded not ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3906
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3907
            classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3908
            classNamesSorted do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3909
            classNamesUnloaded do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3910
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3911
            includeAdditionalClasses ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3912
                self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3913
                    do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3914
                        (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3915
                            putLineForClassName value:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3916
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3917
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3918
                #( ('UNIX' unix)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3919
                   ('WIN32' win32)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3920
                   ('VMS' vms)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3921
                   ('BEOS' beos) )
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3922
                        pairsDo:[:ifdef :platformName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3923
                            |archClassNames archClassesLoaded|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3924
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3925
                            archClassNames := self compiled_classNamesForPlatform:platformName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3926
                            archClassNames notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3927
                                s nextPutLine:'#ifdef ' , ifdef.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3928
                                archClassNames do:[:clsName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3929
                                    putLineForClassName value:clsName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3930
                                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3931
                                s nextPutLine:'#endif /* ' , ifdef , ' */'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3932
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3933
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3934
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3935
        ]
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3936
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3937
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3938
     bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3939
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3940
     stx_libbasic3 generateClassLines_libInit_dot_cc
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3941
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3942
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3943
    "Modified: / 16-08-2006 / 18:52:10 / User"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3944
    "Created: / 19-09-2006 / 22:47:50 / cg"
9979
e2e247d73233 oops - libInit forgot non-loaded, alien-OS files.
Claus Gittinger <cg@exept.de>
parents: 9972
diff changeset
  3945
    "Modified: / 20-09-2006 / 11:47:25 / cg"
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3946
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3947
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3948
generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3949
    ^ self generateClassLines:(self classLine_libInit_dot_cc)
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3950
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3951
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3952
     bosch_dapasx_datenbasis  generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3953
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3954
     stx_libbasic3 generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3955
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3956
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3957
    "Created: / 09-08-2006 / 11:21:48 / fm"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3958
    "Modified: / 16-08-2006 / 18:52:10 / User"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3959
    "Modified: / 19-09-2006 / 22:48:14 / cg"
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3960
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3961
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3962
generateClasses_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3963
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3964
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3965
    classNamesDict := self classNamesByCategory.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3966
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3967
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3968
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3969
            s nextPutLine:eachCategory,'_CLASSES= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3970
            classNames do:[:eachClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3971
                s tab; nextPutAll:eachClassName; nextPutLine:' \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3972
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3973
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3974
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3975
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3976
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3977
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3978
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3979
     stx_libbasic generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3980
     stx_libbasic3 generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3981
     stx_libview generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3982
     stx_libboss generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3983
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3984
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3985
    "Created: / 09-08-2006 / 11:24:39 / fm"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3986
    "Modified: / 20-10-2006 / 16:18:54 / cg"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3987
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3988
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3989
generateDependencies:whichArchitecture
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3990
    ^ String
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3991
        streamContents:[:s |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3992
            |classNames classesPresent classesLoaded clsBaseName putDependencyForClassBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3993
             putDependencyForClassBaseNameBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3994
             archClassNames archClassesPresent archClassesLoaded
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3995
             putSingleClassDependencyEntryBlock putDependencyForExtensionsBlock|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3996
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3997
            putSingleClassDependencyEntryBlock := [:cls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3998
                    |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3999
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4000
                    s nextPutAll:' $(INCLUDE_TOP)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4001
                    s nextPutAll:(self pathSeparator:whichArchitecture) asString.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4002
                    sclsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4003
                    s nextPutAll:(self
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4004
                                topRelativePathTo:sclsBaseName
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4005
                                inPackage:cls package
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4006
                                architecture:whichArchitecture).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4007
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4008
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4009
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4010
            putDependencyForClassBaseNameBlock := [:clsBaseName |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4011
                    s nextPutAll:'$(OUTDIR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4012
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4013
                    s nextPutAll:'.$(O)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4014
                    s nextPutAll:' '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4015
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4016
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4017
                    s nextPutAll:': '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4018
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4019
                    s nextPutAll:'.st'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4020
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4021
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4022
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4023
            putDependencyForClassBlock := [:cls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4024
                    |clsBaseName already|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4025
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4026
                    clsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4027
                    putDependencyForClassBaseNameBlock value:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4028
                    cls isLoaded ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4029
                        already := IdentitySet new.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4030
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4031
                            sharedPools do:[:poolClass |
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4032
                                poolClass isNil ifTrue:[
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4033
                                    Dialog warn:'At least one pool class is missing.\\Dependencies are incomplete.' withCRs
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4034
                                ] ifFalse:[
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4035
                                    putSingleClassDependencyEntryBlock value:poolClass.
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4036
                                    already add:poolClass.
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4037
                                ]
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4038
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4039
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4040
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4041
                            allSuperclassesDo:[:scls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4042
                                putSingleClassDependencyEntryBlock value:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4043
                                already add:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4044
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4045
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4046
                            allPrivateClassesDo:[:eachPrivateClass |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4047
                                eachPrivateClass
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4048
                                    allSuperclassesDo:[:scls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4049
                                        |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4050
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4051
                                        scls ~~ cls ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4052
                                            scls isPrivate ifFalse:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4053
                                                (already includes:scls) ifFalse:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4054
                                                    putSingleClassDependencyEntryBlock value:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4055
                                                    already add:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4056
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4057
                                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4058
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4059
                                    ]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4060
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4061
                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4062
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4063
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4064
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4065
            putDependencyForExtensionsBlock := [
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4066
                    |already|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4067
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4068
                    s nextPutAll:'$(OUTDIR)extensions.$(O): extensions.st'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4069
                    already := Set new.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4070
                    self extensionMethodNames pairWiseDo:[:className :selector |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4071
                            |mthdCls cls|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4072
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4073
                            ((mthdCls := Smalltalk classNamed:className) notNil
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4074
                              and:[ mthdCls isLoaded ])
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4075
                                    ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4076
                                        cls := mthdCls theNonMetaclass.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4077
                                        (already includes:cls) ifFalse:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4078
                                            cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4079
                                                withAllSuperclassesDo:[:scls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4080
                                                    (already includes:scls) ifFalse:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4081
                                                        putSingleClassDependencyEntryBlock value:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4082
                                                        already add:scls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4083
                                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4084
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4085
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4086
                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4087
                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4088
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4089
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4090
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4091
            classNames := self compiled_classNames_common.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4092
            classesPresent := classNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4093
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4094
                thenSelect:[:cls | cls notNil].
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4095
            classesLoaded := classesPresent select:[:cls | cls isLoaded].
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4096
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4097
            (Class classesSortedByLoadOrder:classesLoaded) do:putDependencyForClassBlock.
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4098
            classesPresent reject:[:cls | cls isLoaded not] thenDo:putDependencyForClassBlock.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4099
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4100
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4101
                do:[:className :attr |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4102
                    |cls|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4103
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4104
                    (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4105
                        ((cls := Smalltalk classNamed:className) notNil) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4106
                            putDependencyForClassBlock value:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4107
                        ]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4108
                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4109
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4110
            archClassNames := self compiled_classNamesForPlatform:whichArchitecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4111
            archClassesPresent := archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4112
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4113
                thenSelect:[:cls | cls notNil].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4114
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4115
            archClassesLoaded := archClassesPresent select:[:cls | cls isLoaded].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4116
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4117
            (Class classesSortedByLoadOrder:archClassesLoaded)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4118
                do:putDependencyForClassBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4119
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4120
            "some classes are not loaded - probably this is the wrong architecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4121
             Sorry, but for these classes, we do not know the superclass chain"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4122
            archClassesPresent
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4123
                select:[:cls | cls isLoaded not]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4124
                thenDo:putDependencyForClassBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4125
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4126
            "for the following classes, we do not know the superclass chain
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4127
             and neither the real class file name"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4128
            archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4129
                select:[:eachClassName | (Smalltalk classNamed:eachClassName) isNil]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4130
                thenDo:[:eachClassName |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4131
                    putDependencyForClassBaseNameBlock value:(self filenameForClass:eachClassName).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4132
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4133
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4134
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4135
            self hasExtensionMethods ifTrue:putDependencyForExtensionsBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4136
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4137
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4138
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4139
     stx_libbasic3 generateDependencies:#unix
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4140
     stx_libbasic3 generateDependencies:#win32
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4141
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4142
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4143
    "Created: / 14-09-2006 / 12:38:57 / cg"
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4144
    "Modified: / 27-10-2011 / 16:35:59 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4145
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4146
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4147
generateDependencies_unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4148
    ^ self generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4149
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4150
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4151
     stx_libbasic3 generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4152
     stx_libbasic3 generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4153
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4154
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4155
    "Modified: / 14-09-2006 / 13:32:34 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4156
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4157
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4158
generateDependencies_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4159
    ^ self generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4160
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4161
    "Created: / 14-09-2006 / 12:39:18 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4162
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4163
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4164
generateLocalIncludes_unix
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4165
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4166
        s nextPutAll:(self localIncludes_unix).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4167
        self searchForProjectsWhichProvideHeaderFiles
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4168
            do:[:includeProject |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4169
                s nextPutAll:' -I$(INCLUDE_TOP)/',(self topRelativePathToPackage_unix: includeProject)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4170
            ]
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4171
    ]
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4172
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4173
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4174
     bosch_dapasx generateLocalIncludes_unix
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4175
     bosch_dapasx_datenbasis generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4176
     stx_libbasic generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4177
     stx_libview generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4178
     stx_libtool2 generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4179
     stx_libui generateLocalIncludes_unix
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  4180
     cg_demos_helloWorld localIncludes_unix
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4181
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4182
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4183
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4184
    "Modified: / 07-12-2006 / 17:47:06 / cg"
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4185
!
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4186
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4187
generateLocalIncludes_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4188
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4189
        s nextPutAll:(self localIncludes_win32).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4190
        self searchForProjectsWhichProvideHeaderFiles
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4191
            do:[:includeProject |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4192
                s nextPutAll:' -I$(INCLUDE_TOP)\',(self topRelativePathToPackage_win32: includeProject)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4193
            ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4194
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4195
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4196
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4197
     bosch_dapasx_application generateLocalIncludes_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4198
     bosch_dapasx_datenbasis generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4199
     stx_libbasic generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4200
     stx_libview generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4201
     stx_libtool2 generateLocalIncludes_win32
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4202
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4203
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4204
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4205
    "Modified: / 07-12-2006 / 17:47:10 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4206
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4207
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4208
generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4209
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4210
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4211
    classNamesDict := self classNamesByCategory.
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  4212
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4213
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4214
        |putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4215
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4216
        putLineForClassName :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4217
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4218
                |mappings newObjectLine|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4219
                mappings := self objectLine_make_dot_spec_mappings: eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4220
                newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4221
                s nextPutLine:newObjectLine.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4222
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4223
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4224
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4225
            s nextPutLine:eachCategory,'_OBJS= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4226
            classNames do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4227
            (eachCategory = 'COMMON' and:[self hasExtensionMethods]) ifTrue:[
14643
11cc29aea34c class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14642
diff changeset
  4228
                s nextPutLine:'    $(OUTDIR_SLASH)extensions.$(O) \'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4229
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4230
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4231
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4232
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4233
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4234
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4235
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4236
    "
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4237
     stx_libbasic generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4238
     stx_libbasic3 generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4239
     stx_libview generateObjects_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4240
     stx_libboss generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4241
    "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4242
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4243
    "Created: / 09-08-2006 / 11:24:39 / fm"
10103
f63f419f9e27 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10086
diff changeset
  4244
    "Modified: / 20-10-2006 / 16:18:54 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4245
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4246
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4247
generateRequiredMakePrerequisites_bc_dot_mak
11380
ac50ce4321b5 Fix prerequisite makes (pushd)
Stefan Vogel <sv@exept.de>
parents: 11377
diff changeset
  4248
    |myProjectId|
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4249
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4250
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4251
        myProjectId := self package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4252
        "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4253
         is required!!
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4254
         Use 'pushd' instead of 'cd', since cd is executed by borland make directly.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4255
         'popd' is not needed, since each line is executed in
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4256
                an own cmd.exe process.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4257
         'popd' is not desireable, since it masks a possible
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4258
                error return from the 'bmake'.
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4259
        "
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4260
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4261
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4262
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:eachProjectId |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4263
            s tab; nextPutAll:'pushd ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4264
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4265
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4266
        ].
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4267
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4268
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4269
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4270
     exept_expecco_application generateRequiredMakePrerequisites_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4271
     alspa_batch_application generateRequiredMakePrerequisites_bc_dot_mak
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4272
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4273
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4274
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4275
generateRequiredMakePrerequisites_make_dot_proto
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4276
    |libPath|
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4277
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4278
    ^ String streamContents:[:s |
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4279
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4280
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:projectID |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4281
            libPath := self pathToPackage_unix:projectID.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4282
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4283
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4284
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4285
        s cr.
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4286
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4287
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4288
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4289
     exept_expecco_application generateRequiredMakePrerequisites_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4290
     alspa_batch_application generateRequiredMakePrerequisites_make_dot_proto
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4291
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4292
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4293
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4294
generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4295
    |myProjectId preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4296
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4297
    myProjectId := self package.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4298
    "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4299
     is required!!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4300
     Use 'pushd' instead of 'cd', since cd is executed by borland make directly.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4301
     'popd' is not needed, since each line is executed in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4302
            an own cmd.exe process.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4303
     'popd' is not desierable, since it masks a possible
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4304
            error return from the 'bmake'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4305
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4306
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4307
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4308
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4309
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4310
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4311
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4312
        preRequisites do:[:eachProjectId |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4313
            s tab; nextPutAll:'pushd ';
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4314
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4315
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4316
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4317
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4318
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4319
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4320
     exept_expecco_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4321
     alspa_batch_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4322
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4323
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4324
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4325
generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4326
    |libPath preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4327
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4328
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4329
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4330
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4331
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4332
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4333
        preRequisites do:[:projectID |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4334
            libPath := self pathToPackage_unix:projectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4335
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4336
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4337
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4338
        s cr.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4339
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4340
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4341
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4342
     exept_expecco_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4343
     alspa_batch_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4344
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4345
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4346
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4347
generateSubDirectories
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4348
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4349
        self subProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4350
            do:[:eachProjectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4351
                s space; nextPutAll:(self unixPathToPackage:eachProjectID from:self package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4352
            ]
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4353
    ]
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4354
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4355
    "
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  4356
     exept_expecco generateSubDirectories
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4357
    "
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4358
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4359
    "Created: / 09-08-2006 / 11:26:59 / fm"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4360
    "Modified: / 14-09-2006 / 18:46:18 / cg"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4361
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4362
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4363
generate_definitionClassLine_libInit_dot_cc
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4364
    "for the init-file: generate a single class-init-line for the definition class itself"
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4365
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4366
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4367
        generateClassLines:(self classLine_libInit_dot_cc)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4368
        forClasses:(Array with:self name)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4369
        includeAdditionalClasses:false
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4370
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4371
    "
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4372
     stx_libbasic generate_definitionClassLine_libInit_dot_cc
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4373
    "
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4374
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4375
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4376
headerFileOutputArg
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4377
"/    "all stx stuff goes to the common include directory.
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4378
"/     Everything else is left locally"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4379
"/
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4380
"/    (
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4381
"/        #(
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4382
"/            'stx:libbasic'        'stx:libview'         'stx:libtool'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4383
"/            'stx:libbasic2'       'stx:libview2'        'stx:libtool2'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4384
"/            'stx:libbasic3'       'stx:libwidg'         'stx:libhtml'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4385
"/            'stx:libcomp'         'stx:libwidg2'        'stx:libui'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4386
"/            'stx:libboss'         'stx:libdb'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4387
"/        )
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4388
"/    includes:self package) ifTrue:[
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4389
"/        ^ '-H$(INCLUDE)'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4390
"/    ].
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4391
    ^ '-headerDir=.'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4392
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4393
    "Created: / 18-08-2006 / 13:01:52 / cg"
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4394
    "Modified: / 23-12-2011 / 15:07:27 / cg"
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4395
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4396
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4397
objectLine_make_dot_spec_mappings: aClassName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4398
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4399
        at: 'CLASSFILE' put:(self filenameForClass:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4400
        yourself
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4401
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4402
    "Created: / 08-08-2006 / 20:17:28 / fm"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4403
    "Modified: / 09-08-2006 / 18:26:52 / fm"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4404
    "Modified: / 20-10-2006 / 16:22:58 / cg"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4405
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4406
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4407
subProjectBmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4408
    "generate submake-calls for borland bcc"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4409
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4410
    ^ self subProjectMakeCallsUsing:'call bmake %1 %2'.
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4411
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4412
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4413
subProjectLCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4414
    "generate submake-calls for lcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4415
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4416
    ^ self subProjectMakeCallsUsing:'call lccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4417
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4418
    "Created: / 03-09-2012 / 19:49:08 / cg"
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4419
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4420
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4421
subProjectMakeCallsUsing:callString
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4422
    ^ String streamContents:[:s |
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4423
        self subProjects do:[:packageID |
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4424
            s nextPutLine:'@echo "***********************************"'.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4425
            s nextPutLine:'@echo "Buildung ',(packageID copyReplaceAll:$: with:$/).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4426
            s nextPutLine:'@echo "***********************************"'.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4427
            s nextPutLine:'@cd ', (self msdosPathToPackage:packageID from:(self package)).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4428
            s nextPutAll:'@'; nextPutLine:callString.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4429
            s nextPutLine:'@cd ', (self msdosPathToPackage:(self package) from:packageID).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4430
            s cr.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4431
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4432
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4433
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4434
    "Created: / 14-09-2006 / 18:40:09 / cg"
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4435
    "Modified: / 27-09-2011 / 19:36:12 / cg"
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4436
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4437
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4438
subProjectMingwmakeCalls
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4439
    "generate submake-calls for mingw"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4440
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4441
    ^ self subProjectMakeCallsUsing:'call mingwmake %1 %2'.
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4442
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4443
    "Created: / 05-09-2012 / 19:45:53 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4444
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4445
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4446
subProjectTCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4447
    "generate submake-calls for tcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4448
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4449
    ^ self subProjectMakeCallsUsing:'call tccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4450
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4451
    "Created: / 03-09-2012 / 19:50:53 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4452
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4453
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4454
subProjectVCmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4455
    "generate submake-calls for visual-C"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4456
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4457
    ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4458
! !
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4459
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4460
!ProjectDefinition class methodsFor:'file templates'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4461
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4462
autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4463
    "for linux's autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4464
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4465
^
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4466
'# -*- shell-script -*-
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4467
[Meta]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4468
ShortName: %(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4469
SoftwareVersion: %(PRODUCT_VERSION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4470
DisplayName: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4471
RootName: @exept.de/expecco:$SOFTWAREVERSION
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4472
Summary: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4473
Maintainer: %(MAINTAINER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4474
Packager: %(PACKAGER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4475
PackageVersion: 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4476
CPUArchitectures: x86
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4477
AutopackageTarget: 1.0
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4478
Type: %(PRODUCT_TYPE)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4479
License: %(PRODUCT_LICENSE)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4480
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4481
[Description]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4482
%(PRODUCT_DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4483
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4484
[BuildPrepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4485
# If you''re using autotools, the default should be enough.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4486
# prepareBuild will set up apbuild and run configure for you. If you
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4487
# need to pass arguments to configure, just add them to prepareBuild:
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4488
# prepareBuild --enable-foo --disable-bar
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4489
#prepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4490
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4491
[BuildUnprepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4492
# If you''re using prepareBuild above, there is no need to change this!!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4493
#unprepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4494
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4495
[Globals]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4496
# Variables declared in this section will be available in all other sections
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4497
export APKG_BUILD_SKIP_CONFIGURE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4498
export APKG_BUILD_SKIP_MAKE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4499
export MYPREFIX=/opt/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4500
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4501
[Prepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4502
#recommend ''@autopackage.org/autopackage-gtk'' 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4503
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4504
[Imports]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4505
import <<EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4506
$source_dir/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4507
$source_dir/resources
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4508
$source_dir/keyboard.rc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4509
$source_dir/display.rc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4510
$source_dir/../doc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4511
$source_dir/../testsuites/webedition
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4512
$source_dir/../projects/libraries
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4513
$source_dir/../reportGenerator/tools
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4514
$source_dir/../../pdf/afm
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4515
$source_dir/../plugin/selenium/libexept_expecco_plugin_selenium.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4516
$source_dir/../externalTools
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4517
EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4518
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4519
for i in $source_dir/*.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4520
do
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4521
    echo $source_dir/$(readlink $i)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4522
done | import
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4523
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4524
[Install]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4525
if [ "$PREFIX" !!= "/usr" ]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4526
then
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4527
    export MYPREFIX=$PREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4528
fi
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4529
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4530
find . -type d \( -name CVS -or -name ''not_*'' \) -print | xargs rm -rf
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4531
mkdir -p $MYPREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4532
copyFiles expecco *.rc resources        $MYPREFIX/bin
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4533
copyFiles *.so                          $MYPREFIX/lib
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4534
copyFiles doc externalTools             $MYPREFIX/packages/exept/expecco
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4535
copyFiles webedition/projects libraries $MYPREFIX/testsuites
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4536
copyFiles tools                         $MYPREFIX/packages/exept/expecco/reportGenerator
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4537
copyFiles afm                           $MYPREFIX/packages/exept/pdf
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4538
copyFiles libexept_expecco_plugin_selenium.so   $MYPREFIX/plugin
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4539
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4540
#installExe expecco
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4541
#installLib *.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4542
#installData resources
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4543
#installData keyboard.rc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4544
#installData doc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4545
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4546
[Uninstall]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4547
# Leaving this at the default is safe unless you use custom commands in
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4548
# "Install" to create files. All autopackage API functions
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4549
# that installs files are logged.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4550
uninstallFromLog
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4551
'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4552
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4553
    "Created: / 21-12-2010 / 09:06:21 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4554
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4555
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4556
bc_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4557
    "answer a template for the bc.mak makefile.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4558
     Any variable definition %(Variable) will be later replaced by the mapping.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4559
     $% characters have to be duplicated.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4560
     Only needed for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4561
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4562
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4563
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4564
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4565
bmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4566
    "the template code for the bmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4567
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4568
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4569
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4570
@REM make using Borland bcc32
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4571
@REM type bmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4572
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4573
@REM -------
13797
f191b8d50bd3 changed:
Stefan Vogel <sv@exept.de>
parents: 13789
diff changeset
  4574
make.exe -N -f bc.mak %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4575
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4576
%(SUBPROJECT_BMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4577
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4578
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4579
    "Created: / 17-08-2006 / 20:04:14 / cg"
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4580
    "Modified: / 04-09-2012 / 11:46:22 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4581
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4582
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4583
builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4584
    "For rake-base automatic builder"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4585
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4586
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4587
# generated from project definition
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4588
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4589
# load package dependencies
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4590
load ''package.deps.rake''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4591
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4592
# kludge: clear some invalid dependencies of libwidg
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4593
# (should be fixed in baseline)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4594
clear "stx:libwidg" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4595
clear "stx:libwidg2" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4596
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4597
project :''%(APPLICATION):baseline'' do
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4598
  # preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4599
  %(PREAMBLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4600
  # --------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4601
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4602
%(PACKAGES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4603
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4604
  application "%(APPLICATION_PACKAGE)"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4605
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4606
  # postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4607
  %(POSTABLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4608
  # ---------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4609
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4610
end
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4611
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4612
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4613
    "Created: / 24-02-2011 / 11:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4614
    "Modified: / 27-02-2011 / 12:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4615
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4616
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4617
builder_baseline_dot_rbspec_postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4618
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4619
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4620
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4621
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4622
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4623
builder_baseline_dot_rbspec_preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4624
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4625
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4626
    "Created: / 24-02-2011 / 11:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4627
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4628
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4629
classLine_libInit_dot_cc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4630
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4631
^'_%(CLASS)_Init(pass,__pRT__,snd);'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4632
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4633
    "Created: / 08-08-2006 / 12:51:44 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4634
    "Modified: / 08-08-2006 / 15:46:05 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4635
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4636
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4637
lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4638
    "the template code for the lccmake.bat file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4639
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4640
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4641
'@REM -------
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4642
@REM make using lcc compiler
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4643
@REM type lccmake, and wait...
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4644
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4645
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  4646
make.exe -N -f bc.mak -DUSELCC=1 %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4647
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4648
%(SUBPROJECT_LCCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4649
'
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4650
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4651
    "Created: / 03-09-2012 / 19:49:23 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4652
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4653
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4654
make_dot_proto
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4655
    "the template code for the make.proto file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4656
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4657
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4658
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4659
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4660
make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4661
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4662
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4663
'# $','Header','$
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4664
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4665
# DO NOT EDIT
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  4666
# automagically generated from the projectDefinition: ',self name,"' at ',Timestamp now printString,"'.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4667
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4668
# Warning: once you modify this file, do not rerun
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4669
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4670
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4671
# This file contains specifications which are common to all platforms.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4672
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4673
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4674
# Do NOT CHANGE THESE DEFINITIONS
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4675
# (otherwise, ST/X will have a hard time to find out the packages location from its packageID,
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4676
#  to find the source code of a class and to find the library for a package)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4677
MODULE=%(MODULE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4678
MODULE_DIR=%(MODULE_DIRECTORY)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4679
PACKAGE=$(MODULE):$(MODULE_DIR)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4680
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4681
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4682
# Argument(s) to the stc compiler (stc --usage).
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4683
#  -headerDir=. : create header files locally
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4684
#                (if removed, they will be created as common
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4685
#  -Pxxx       : defines the package
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4686
#  -Zxxx       : a prefix for variables within the classLib
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4687
#  -Dxxx       : defines passed to to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4688
#  -Ixxx       : include path passed to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4689
#  +optspace   : optimized for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4690
#  +optspace2  : optimized more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4691
#  +optspace3  : optimized even more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4692
#  +optinline  : generate inline code for some ST constructs
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4693
#  +inlineNew  : additionally inline new
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4694
#  +inlineMath : additionally inline some floatPnt math stuff
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4695
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4696
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4697
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4698
# STCLOCALOPTIMIZATIONS=+optspace3
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4699
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4700
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4701
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4702
# Argument(s) to the stc compiler (stc --usage).
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4703
#  -warn            : no warnings
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4704
#  -warnNonStandard : no warnings about ST/X extensions
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4705
#  -warnEOLComments : no warnings about EOL comment extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4706
#  -warnPrivacy     : no warnings about privateClass extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4707
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4708
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4709
# STCWARNINGS=-warn
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4710
# STCWARNINGS=-warnNonStandard
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4711
# STCWARNINGS=-warnEOLComments
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4712
STCWARNINGS=%(STCWARNINGOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4713
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4714
%(CLASSES)
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4715
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4716
%(OBJECTS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4717
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4718
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4719
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4720
    "Modified: / 09-08-2006 / 15:10:57 / fm"
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  4721
    "Modified: / 26-07-2012 / 00:56:03 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4722
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4723
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4724
makefile
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4725
^
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4726
'#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4727
# DO NOT EDIT
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4728
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4729
# make uses this file (Makefile) only, if there is no
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4730
# file named "makefile" (lower-case m) in the same directory.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4731
# My only task is to generate the real makefile and call make again.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4732
# Thereafter, I am no longer used and needed.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4733
#
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4734
# MACOSX caveat:
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4735
#   as filenames are not case sensitive (in a default setup),
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4736
#   we cannot use tha above trick. Therefore, this file is now named
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4737
#   "Makefile.init", and you have to execute "make -f Makefile.init" to
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4738
#   get the initial makefile.  This is now also done by the toplevel CONFIG
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4739
#   script.
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4740
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4741
.PHONY: run
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4742
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4743
run: makefile
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4744
        $(MAKE) -f makefile
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4745
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4746
#only needed for the definition of $(TOP)
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4747
include Make.proto
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4748
14665
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4749
makefile: mf
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4750
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4751
mf:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4752
        $(TOP)/rules/stmkmf
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4753
'
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4754
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4755
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4756
mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4757
    "the template code for the mingwmake.bat file"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4758
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4759
    ^
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4760
'@REM -------
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4761
@REM make using mingw gnu compiler
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4762
@REM type mingwmake, and wait...
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4763
@REM do not edit - automatically generated from ProjectDefinition
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4764
@REM -------
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  4765
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4766
@pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4767
@call find_mingw.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4768
@popd
14748
0e41cb05b3a5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14738
diff changeset
  4769
make.exe -N -f bc.mak %%USEMINGW_ARG%% %%*
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4770
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4771
%(SUBPROJECT_MINGWMAKE_CALLS)
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4772
'
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4773
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4774
    "Created: / 05-09-2012 / 19:44:51 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4775
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4776
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4777
objectLine_make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4778
14643
11cc29aea34c class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14642
diff changeset
  4779
    ^'    $(OUTDIR_SLASH)%(CLASSFILE).$(O) \'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4780
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4781
    "Created: / 08-08-2006 / 20:16:46 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4782
    "Modified: / 23-08-2006 / 11:11:38 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4783
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4784
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4785
packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4786
    "the template code for the <libName>.rc file.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4787
     Only used for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4788
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4789
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4790
'//
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4791
// DO NOT EDIT
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4792
// automagically generated from the projectDefinition: ',self name,'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4793
//
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4794
VS_VERSION_INFO VERSIONINFO
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4795
  FILEVERSION     %(FILE_VERSION_COMMASEPARATED)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4796
  PRODUCTVERSION  %(PRODUCT_VERSION_COMMASEPARATED)
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4797
#if (__BORLANDC__)
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4798
  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4799
  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4800
  FILEOS          VOS_NT_WINDOWS32
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4801
  FILETYPE        %(FILETYPE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4802
  FILESUBTYPE     VS_USER_DEFINED
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4803
#endif
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4804
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4805
BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4806
  BLOCK "StringFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4807
  BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4808
    BLOCK "040904E4"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4809
    BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4810
      VALUE "CompanyName", "%(COMPANY_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4811
      VALUE "FileDescription", "%(FILE_DESCRIPTION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4812
      VALUE "FileVersion", "%(FILE_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4813
      VALUE "InternalName", "%(INTERNAL_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4814
%(LEGAL_COPYRIGHT_LINE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4815
      VALUE "ProductName", "%(PRODUCT_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4816
      VALUE "ProductVersion", "%(PRODUCT_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4817
      VALUE "ProductDate", "%(PRODUCT_DATE)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4818
    END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4819
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4820
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4821
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4822
  BLOCK "VarFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4823
  BEGIN                               //  Language   |    Translation
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4824
    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4825
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4826
END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4827
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4828
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4829
     stx_libbasic3 packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4830
     stx_libbasic3 generate_packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4831
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4832
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4833
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4834
    "Modified: / 09-08-2006 / 15:10:57 / fm"
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4835
    "Modified: / 07-10-2011 / 10:51:34 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4836
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4837
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4838
package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4839
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4840
# Package dependencies.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4841
# Automatically generated by project defintion.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4842
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4843
%(DEPENDENCIES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4844
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4845
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4846
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4847
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4848
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4849
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4850
tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4851
    "the template code for the tccmake.bat file"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4852
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4853
    ^
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4854
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4855
@REM make using tcc compiler (Tiny-C)
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4856
@REM type tccmake, and wait...
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4857
@REM do not edit - automatically generated from ProjectDefinition
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4858
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  4859
make.exe -N -f bc.mak -DUSETCC=1 %%*
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4860
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4861
%(SUBPROJECT_TCCMAKE_CALLS)
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4862
'
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4863
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4864
    "Created: / 03-09-2012 / 19:50:41 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4865
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4866
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4867
vcmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4868
    "the template code for the vcmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4869
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4870
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4871
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4872
@REM make using Microsoft Visual C compiler
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4873
@REM type vcmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4874
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4875
@REM -------
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4876
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4877
@if not defined VSINSTALLDIR (
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4878
    pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4879
    call vcsetup.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4880
    popd
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4881
)
13797
f191b8d50bd3 changed:
Stefan Vogel <sv@exept.de>
parents: 13789
diff changeset
  4882
make.exe -N -f bc.mak -DUSEVC %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4883
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4884
%(SUBPROJECT_VCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4885
'
12966
396518f8f526 usevc/usebc handling
Claus Gittinger <cg@exept.de>
parents: 12964
diff changeset
  4886
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4887
    "Modified: / 04-09-2012 / 11:45:49 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4888
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4889
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4890
!ProjectDefinition class methodsFor:'loading'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4891
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4892
ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4893
    "ensure that all classes and extensions are loaded properly.
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4894
     This is normally no problem for compiled classLibs - however, if a package
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4895
     has only be installedAsAutoloaded, some classes might want to ensure that
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4896
     when being loaded themself."
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4897
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4898
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4899
        self breakPoint:#cg.
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4900
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4901
    self hasAllClassesFullyLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4902
        self hasAllClassesLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4903
            self breakPoint:#cg.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4904
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4905
        self installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4906
        self classes do:[:cls | cls autoload ].
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4907
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4908
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4909
    "
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4910
     stx_libbasic ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4911
    "
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4912
    "Verbose := true
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4913
     stx_libjavascript hasAllExtensionsLoaded
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4914
    "
12735
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4915
    "Verbose := true
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4916
     stx_goodies_soap_xe hasAllExtensionsLoaded
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4917
    "
13689
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  4918
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  4919
    "Modified: / 12-09-2011 / 16:57:53 / cg"
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4920
!
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4921
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4922
load
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4923
    "load the project
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4924
     Answer true, if new classes have been installed for this package,
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4925
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4926
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4927
    ^ self loadAsAutoloaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4928
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4929
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4930
loadAsAutoloaded:asAutoloaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4931
    "load the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4932
     If asAutoloaded == true, install all new classes as autoloaded.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4933
     Answer true, if new classes have been installed for this package,
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4934
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4935
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4936
    |newStuffHasBeenLoaded meOrMySecondIncarnation|
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4937
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4938
    self projectIsLoaded ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4939
        asAutoloaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4940
            "/ to be considered !!
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4941
"/            self isFullyLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4942
"/                self hasAllExtensionsLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4943
"/                    self loadExtensions.
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4944
"/                ].
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4945
"/                self loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4946
"/            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4947
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4948
        ^ false
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4949
    ].
12749
160f7b56e426 oops: leftover halts.
Claus Gittinger <cg@exept.de>
parents: 12748
diff changeset
  4950
    thisContext isRecursive ifTrue:[self breakPoint:#cg. ^ false].    "/ avoid endless loops
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4951
    (PackagesBeingLoaded includes:self package) ifTrue:[
14851
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4952
        "/ seems to be a recursive call
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4953
        ^ false
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4954
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4955
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4956
    PackagesBeingLoaded add:self package.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4957
    [
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4958
        newStuffHasBeenLoaded := false.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4959
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4960
        (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4961
            "/ thisContext fullPrintAll.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4962
            Transcript showCR:('loading %1%2...'
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4963
                                bindWith:(asAutoloaded ifTrue:['as autoloaded '] ifFalse:[''])
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4964
                                with:self name).
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4965
        ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4966
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4967
        self rememberOverwrittenExtensionMethods.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4968
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4969
        self activityNotification:'Executing pre-load action'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4970
        self executeHooks: #preLoad.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4971
        self preLoadAction.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4972
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4973
        meOrMySecondIncarnation := self.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4974
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4975
        Class withoutUpdatingChangesDo:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4976
            self activityNotification:'Loading prerequisities'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4977
            self loadPreRequisitesAsAutoloaded:asAutoloaded.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4978
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4979
            self checkPrerequisitesForLoading.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4980
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4981
            asAutoloaded ifFalse:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4982
                self loadClassLibrary.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4983
                "/ could have overloaded my first incarnation
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4984
                meOrMySecondIncarnation := (Smalltalk at:(self name)) ? self.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4985
                meOrMySecondIncarnation ~~ self ifTrue:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4986
                    meOrMySecondIncarnation fetchSlotsFrom:self.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4987
                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4988
            ].
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4989
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4990
            self hasAllExtensionsLoaded ifFalse:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4991
                self activityNotification:'Loading extensions'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4992
                newStuffHasBeenLoaded := newStuffHasBeenLoaded | meOrMySecondIncarnation loadExtensions.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4993
            ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4994
            (self hasAllClassesLoaded:asAutoloaded not) ifFalse:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4995
                self activityNotification:'Loading classes'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4996
                newStuffHasBeenLoaded := newStuffHasBeenLoaded | (meOrMySecondIncarnation loadAllClassesAsAutoloaded:asAutoloaded).
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4997
            ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4998
    "/ no, don't load subProjects here - will lead to a recursion, which leads
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4999
    "/ to some classes being loaded from source (soap)
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5000
            self activityNotification:'Loading sub projects'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5001
            meOrMySecondIncarnation loadSubProjectsAsAutoloaded:asAutoloaded.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5002
        ].
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5003
        self activityNotification:('Executing post-load action for %1' bindWith:self package).
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5004
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5005
        "/ mhmh - already done for dll-loaded packages
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5006
        "/ meOrMySecondIncarnation initializeAllClasses.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5007
        meOrMySecondIncarnation postLoadAction.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5008
        meOrMySecondIncarnation executeHooks: #postLoad.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5009
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5010
        meOrMySecondIncarnation projectIsLoaded:true.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5011
        meOrMySecondIncarnation ~~ self ifTrue:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5012
            self projectIsLoaded:true.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5013
        ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5014
    ] ensure:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5015
        PackagesBeingLoaded remove:self package ifAbsent:[].
12736
e18f8f352186 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 12735
diff changeset
  5016
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5017
13194
8e451f8ff654 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13178
diff changeset
  5018
    self activityNotification:('Done (%1).' bindWith:self package).
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5019
    ^ newStuffHasBeenLoaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5020
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5021
    "Created: / 17-08-2006 / 01:01:41 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5022
    "Modified: / 30-10-2008 / 08:16:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5023
    "Modified: / 22-08-2009 / 12:02:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13623
46625f58d8ee changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13614
diff changeset
  5024
    "Modified: / 04-09-2011 / 10:01:53 / cg"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5025
    "Modified: / 20-11-2012 / 23:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5026
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5027
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5028
unloadPackage
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5029
    "unload the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5030
     Fails if there are still instances of any of my classes in the system"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5031
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5032
    self projectIsLoaded ifFalse:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5033
    thisContext isRecursive ifTrue:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5034
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5035
    (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5036
        "/ thisContext fullPrintAll.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5037
        Transcript show:'unloading '; showCR:self name.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5038
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5039
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5040
    self activityNotification:'Executing pre-unload action'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5041
    self preUnloadAction.
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5042
    self executeHooks: #preUnload.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5043
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5044
    self activityNotification:'Restoring original methods'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5045
    self restoreOverwrittenExtensionMethods.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5046
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5047
    Class withoutUpdatingChangesDo:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5048
        self activityNotification:'Unloading sunprojects'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5049
        self unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5050
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5051
        self activityNotification:'Unloading classes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5052
        self unloadClassLibrary.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5053
        self unloadAllClasses.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5054
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5055
    self projectIsLoaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5056
    ^ true
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5057
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5058
    "Modified: / 20-11-2012 / 23:06:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5059
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5060
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5061
!ProjectDefinition class methodsFor:'misc ui support'!
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5062
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5063
iconInBrowserSymbol
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5064
    <resource: #programImage>
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5065
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5066
    self theNonMetaclass isApplicationDefinition ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5067
        self theNonMetaclass isGUIApplication ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5068
            ^ #guiApplicationDefinitionClassIcon
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5069
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5070
        ^ #applicationDefinitionClassIcon
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5071
    ].
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5072
    ^ super iconInBrowserSymbol
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5073
! !
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5074
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5075
!ProjectDefinition class methodsFor:'private'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5076
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5077
abbrevs
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5078
    "return a dictionary containing my abbreviations;
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5079
     this dictionary is read from my project-directory's abbrev.stc file,
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5080
     and cached for future use"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5081
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5082
    |abbrevs|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5083
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5084
    AccessLock critical:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5085
        |mustRead file myPackageDirectory|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5086
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5087
        AbbrevDictionary isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5088
            AbbrevDictionary := WeakIdentityDictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5089
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5090
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5091
        mustRead := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5092
        abbrevs := AbbrevDictionary at:self ifAbsent:[ mustRead := true. Dictionary new ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5093
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5094
        mustRead ifTrue:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5095
            myPackageDirectory := self packageDirectory.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5096
            myPackageDirectory isNil ifTrue:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5097
            ] ifFalse:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5098
                file := myPackageDirectory / 'abbrev.stc'.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5099
                file exists ifTrue: [
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5100
                    file readingFileDo:[:stream |
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5101
                        Smalltalk
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5102
                            withAbbreviationsFromStream:stream
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5103
                            do:[:nm :fn :pkg :cat :sz|
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5104
                                abbrevs at: nm put: (AbbrevEntry new className:nm fileName:fn category:cat numClassInstVars:sz)
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5105
                            ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5106
                    ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5107
                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5108
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5109
        ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5110
    ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  5111
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5112
    ^abbrevs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5113
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5114
    "Created: / 06-03-2011 / 18:25:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5115
    "Modified: / 20-01-2012 / 15:42:47 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5116
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5117
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5118
additionalClassAttributesFor: aClass
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5119
    "Answers additional set of class attributes for given class
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5120
     Individual project definitions may override this method, but
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5121
     overriding method should always merge its attributes with result
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5122
     of 'super additionalClassAttributesFor: aClass'.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5123
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5124
     Here, we add #autoload attributes to all test cases and
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5125
     test resources, as they are not neccessary for the package
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5126
     and should not be compiled (because of unwanted dependency
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5127
     on stx:goodies/sunit package)
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5128
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5129
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5130
    (aClass inheritsFrom: TestCase) ifTrue:[^#(autoload)].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5131
    (aClass inheritsFrom: TestResource) ifTrue:[^#(autoload)].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5132
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5133
    "No additional attributes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5134
    ^#()
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5135
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5136
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5137
        stx_libbasic additionalClassAttributesFor: Object
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5138
        stx_libtool additionalClassAttributesFor: Tools::NavigationHistoryTests
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5139
        stx_goodies_sunit additionalClassAttributesFor: TestCase
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5140
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5141
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5142
        stx_libtool classNamesAndAttributes_code_ignoreOldEntries:true ignoreOldDefinition: true
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5143
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5144
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5145
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5146
    "Created: / 26-10-2009 / 12:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5147
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5148
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5149
checkIfClassesArePresent
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5150
    "check if all classes defined by this project are present and
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5151
     offer a dialog to abort the current operation if not"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5152
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5153
    |check nonExistantClasses|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5154
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5155
    nonExistantClasses := Set new.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5156
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5157
    check :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5158
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5159
                |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5160
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5161
                cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5162
                cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5163
                    Transcript showCR:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5164
                    nonExistantClasses add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5165
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5166
            ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5167
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5168
    self allClassNames do:check.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5169
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5170
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5171
            check value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5172
        ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5173
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5174
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5175
    nonExistantClasses notEmpty ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5176
        (Dialog confirm:(Dialog classResources
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5177
                            stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5178
                            with:nonExistantClasses anElement allBold))
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5179
        ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5180
            AbortOperationRequest raise.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5181
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5182
        ^ false.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5183
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5184
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5185
    ^ true
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5186
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5187
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5188
classNamesAndAttributesAsSpecArray
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5189
    "given a classNamesAndAttributes array, make this a spec array (array of arrays).
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5190
     This decompresses class-name entries into a one-element array for easier processing"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5191
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5192
    ^ self classNamesAndAttributes
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5193
        collect:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5194
            entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5195
                entry first isSymbol ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5196
                    entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5197
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5198
                    (Array with:entry first asSymbol) , (entry copyFrom:2)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5199
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5200
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5201
                Array with:entry asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5202
            ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5203
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5204
    "Created: / 19-02-2007 / 16:11:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5205
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5206
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5207
classNamesAndAttributesDo: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5208
    self namesAndAttributesIn:(self classNamesAndAttributes) do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5209
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5210
    "Modified: / 22-08-2006 / 18:20:21 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5211
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5212
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5213
classNamesAndAttributesFromSpecArray:aSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5214
    "given a spec array (array of arrays), make this a classNamesAndAttributes array
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5215
     as stored literally in the method.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5216
     This compresses single element array-elements into plain names
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5217
     (to save code in the compiled binaries)"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5218
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5219
    ^ aSpecArray
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5220
        collect:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5221
            (entry isArray and:[entry size == 1]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5222
                entry first
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5223
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5224
                entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5225
            ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5226
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5227
    "Created: / 19-02-2007 / 16:12:32 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5228
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5229
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5230
compile:someCode categorized:category
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5231
    ^ self compile:someCode categorized:category using:nil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5232
!
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5233
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5234
compile:someCode categorized:category using:compilerOrNil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5235
    ^ Class packageQuerySignal
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5236
        answer:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5237
        do:[
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5238
            (compilerOrNil ? self theMetaclass compilerClass)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5239
                compile:someCode
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5240
                forClass:self theMetaclass
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5241
                inCategory:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5242
        ]
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5243
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5244
    "Created: / 23-08-2006 / 14:36:53 / cg"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5245
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5246
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5247
compiled_classes
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5248
    ^ self compiled_classNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5249
        collect:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5250
            [:eachName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5251
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5252
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5253
                cls := (Smalltalk at:eachName asSymbol).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5254
                (cls isNil or:[cls isBehavior not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5255
                    Transcript showCR:('ProjectDefinition: missing/invalid class: ', eachName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5256
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5257
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5258
                cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5259
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5260
        thenSelect:[:cls | cls notNil]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5261
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5262
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5263
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5264
    "Modified: / 07-12-2006 / 17:48:11 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5265
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5266
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5267
compiled_classesDo:aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5268
    self compiled_classes do:aBlock.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5269
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5270
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5271
    "Modified: / 09-08-2006 / 18:02:28 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5272
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5273
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5274
compiled_classesForPlatform:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5275
    ^ (self compiled_classNamesForPlatform:arch)
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5276
        collect:[:eachName | (Smalltalk classNamed:eachName)]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5277
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5278
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5279
     stx_libbasic compiled_classesForArchitecture:#win32
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5280
     stx_libbasic compiled_classesForArchitecture:#macos
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5281
     stx_libbasic compiled_classesForArchitecture:#unix
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5282
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5283
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5284
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5285
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5286
    "Modified: / 07-12-2006 / 17:43:17 / cg"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5287
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5288
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5289
compiled_classes_common
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5290
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5291
        compiled_classNames_common
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5292
            collect:[:eachName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5293
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5294
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5295
                cls := Smalltalk classNamed:eachName.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5296
                cls isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5297
                    self warn:('Missing/invalid class: %1\\%2'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5298
                                bindWith:eachName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5299
                                with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5300
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5301
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5302
                cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5303
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5304
            thenSelect:[:cls| cls notNil "isBehavior"]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5305
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5306
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5307
    "Modified: / 09-08-2006 / 18:02:28 / fm"
13090
827d5322948f changed: #compiled_classes_common
Claus Gittinger <cg@exept.de>
parents: 13088
diff changeset
  5308
    "Modified: / 11-10-2010 / 12:11:06 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5309
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5310
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5311
cvsRevision
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5312
    |rev|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5313
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5314
    rev := self revision.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5315
    rev isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5316
        "not yet pubplished"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5317
        ^ #( '0' '1' )
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5318
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5319
    ^ rev asCollectionOfSubstringsSeparatedBy:$. .
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5320
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5321
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5322
     self cvsRevision
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5323
     stx_libbasic3 cvsRevision
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5324
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5325
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5326
    "Created: / 17-08-2006 / 20:19:03 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5327
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5328
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5329
defaultClassAttributesFor: aClass
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5330
    "Answers default set of class attributes for given class.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5331
     This is internal method only, to per-project customization
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5332
     please override either #additionalClassAttributes or
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5333
     #additional classAttributesFor:"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5334
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5335
    | attrs |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5336
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5337
    "JV @ 2010-06-19
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5338
     Add a programming language attribute for non-smalltalk classes.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5339
     Used by multi-lang enabled loading mechanism"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5340
    attrs := aClass programmingLanguage isSmalltalk
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5341
                ifTrue:[#()]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5342
                ifFalse:[Array with: (Array with: #lang with: aClass programmingLanguage name asSymbol)].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5343
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5344
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5345
    "JV @ 2009-10-26
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5346
     Give a project definition to specify additional attributes for given class."
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5347
    attrs := attrs , (self additionalClassAttributesFor: aClass).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5348
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5349
    ^attrs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5350
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5351
    "Created: / 19-06-2010 / 10:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5352
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5353
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5354
inconsistency:message
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5355
    Dialog warn:message
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5356
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5357
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5358
    self searchForNeverCompiledSuperclasses
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5359
    DapasX_Datenbasis searchForNeverCompiledSuperclasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5360
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5361
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5362
    "Created: / 09-08-2006 / 16:32:31 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5363
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5364
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5365
makeOSIncludesWith:fileSeparator from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5366
    ^ aString copy replaceAny:'/\' with:fileSeparator
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5367
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5368
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5369
     self makeOSIncludesWith:$/ from:'-I$(TOP)/foo/bar'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5370
     self makeOSIncludesWith:$\ from:'-I$(TOP)/foo/bar'
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5371
    "
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5372
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5373
    "Created: / 06-09-2006 / 18:17:03 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5374
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5375
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5376
makeUnixIncludes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5377
    ^ self makeOSIncludesWith:$/ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5378
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5379
    "Created: / 06-09-2006 / 18:16:19 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5380
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5381
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5382
makeWin32Includes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5383
    ^ self makeOSIncludesWith:$\ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5384
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5385
    "Created: / 06-09-2006 / 18:16:13 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5386
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5387
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5388
mergeClassAttributes: attr1 with: attr2
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5389
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5390
    ^attr1 , (attr2 reject:[:each|attr1 includes: each])
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5391
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5392
    "Created: / 19-06-2010 / 10:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5393
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5394
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5395
mergeDefaultClassAttributesFor: aClass with: attributes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5396
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5397
    ^self mergeClassAttributes: attributes with: (self defaultClassAttributesFor: aClass)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5398
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5399
    "Created: / 19-06-2010 / 10:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5400
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5401
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5402
namesAndAttributesIn:aCollection do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5403
    aCollection do:[:entry |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5404
        |className attributes|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5405
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5406
        entry isArray ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5407
            className := entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5408
            attributes := #().
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5409
        ] ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5410
            className := entry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5411
            attributes := entry copyFrom:2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5412
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5413
        aBlock value: className value: attributes
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5414
     ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5415
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5416
    "Created: / 22-08-2006 / 18:20:09 / cg"
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5417
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5418
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5419
searchForClasses
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5420
    "answer all non-private classes that belong to this project.
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  5421
     They are sorted in load order"
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  5422
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5423
    ^ Class classesSortedByLoadOrder:(self searchForClassesWithProject: self package)
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5424
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5425
    "
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5426
     stx_libbasic3 searchForClasses
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5427
     stx_goodies_webServer_htmlTree searchForClasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5428
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5429
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5430
    "Modified: / 07-08-2006 / 21:56:25 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5431
    "Created: / 17-08-2006 / 21:18:30 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5432
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5433
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5434
searchForClassesWithProject: aProjectID
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5435
    "answer all public and private classes belonging to aProjectID"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5436
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5437
    ^ Smalltalk allClasses
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5438
        select:[:cls | cls package = aProjectID].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5439
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5440
"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5441
    self searchForClassesWithProject: #'exept:ctypes'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5442
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5443
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5444
    "Created: / 07-08-2006 / 20:42:39 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5445
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5446
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5447
searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5448
    ^ self searchForExtensionsWithProject:self package
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5449
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5450
"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5451
    self searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5452
    DapasXProject searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5453
    DapasX_Datenbasis searchForExtensions
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  5454
    stx_libtool searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5455
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5456
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5457
    "Modified: / 09-08-2006 / 13:01:26 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5458
    "Created: / 17-08-2006 / 21:17:46 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  5459
    "Modified: / 23-10-2006 / 11:03:07 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5460
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5461
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5462
searchForExtensionsWithProject:aProjectID
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5463
    "search for any class which has extensions from aProjectID.
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5464
     Return the extension-methods sorted by classname-selector"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5465
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5466
    |methods|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5467
11152
92ef5422f17a code reuse
Claus Gittinger <cg@exept.de>
parents: 11149
diff changeset
  5468
    methods := Smalltalk allExtensionsForPackage:aProjectID.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5469
    methods
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5470
        sort:[:m1 :m2 |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5471
            |c1 c2|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5472
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5473
            c1 := m1 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5474
            c2 := m2 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5475
            c1 == c2 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5476
                m1 selector < m2 selector
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5477
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5478
                (c2 isMeta and:[c1 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5479
                    true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5480
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5481
                    (c1 isMeta and:[c2 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5482
                        false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5483
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5484
                        c1 name < c2 name
9908
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5485
"/                        (c2 isSubclassOf:c1) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5486
"/                            true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5487
"/                        ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5488
"/                            (c1 isSubclassOf:c2) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5489
"/                                false
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5490
"/                            ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5491
"/                                "/ leave as is
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5492
"/                                true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5493
"/                            ].
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5494
"/                        ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5495
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5496
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5497
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5498
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5499
    ^ methods
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5500
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5501
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5502
     self searchForExtensionsWithProject:#'bosch:dapasx'
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5503
     self searchForExtensionsWithProject:#'cg:oyster'
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5504
     self searchForExtensionsWithProject:#'stx:libboss'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5505
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5506
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5507
    "Created: / 17-08-2006 / 21:19:04 / cg"
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5508
    "Modified: / 12-10-2006 / 20:45:39 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5509
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5510
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5511
searchForProjectsWhichProvideHeaderFiles
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5512
    |addPackage myPackageID requiredPackages|
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5513
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5514
    myPackageID := self package.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5515
    requiredPackages := Set new.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5516
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5517
    addPackage :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5518
        [:package |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5519
            (package ~= myPackageID) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5520
                true "(package startsWith:'stx:') not" ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5521
                    package ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5522
                        requiredPackages add:package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5523
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5524
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5525
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5526
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5527
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5528
    "/ need them also...
14886
7498476f1ae6 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14885
diff changeset
  5529
    self mandatoryPreRequisites do:[:eachPreRequisitePackage |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5530
        addPackage value:eachPreRequisitePackage
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5531
    ].
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5532
10788
f2ff69add7e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10785
diff changeset
  5533
    self compiled_classesDo:[:cls |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5534
        cls allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5535
            addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5536
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5537
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5538
        cls allPrivateClassesDo:[:eachPrivateClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5539
            eachPrivateClass allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5540
                eachSuperClass isPrivate ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5541
                    addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5542
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5543
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5544
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5545
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5546
        cls sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5547
            |eachPoolClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5548
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5549
            eachPoolClass := Smalltalk classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5550
            eachPoolClass isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5551
                Transcript showCR:('Warning: missing pool: %1 (required by %2)' bindWith:eachPoolName with:cls name)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5552
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5553
                eachPoolClass withAllSuperclassesDo:[:eachPoolSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5554
                    addPackage value:(eachPoolSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5555
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5556
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5557
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5558
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5559
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5560
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5561
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5562
        ((cls := Smalltalk classNamed:className) notNil and:[cls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5563
            cls withAllSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5564
                addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5565
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5566
        ]
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5567
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5568
    ^ requiredPackages
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5569
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  5570
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5571
     stx_libtool searchForProjectsWhichProvideHeaderFiles
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  5572
     cg_demos_helloWorld searchForProjectsWhichProvideHeaderFiles
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  5573
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5574
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5575
    "Created: / 07-12-2006 / 17:46:38 / cg"
13216
ef64e67606c5 changed:
Claus Gittinger <cg@exept.de>
parents: 13194
diff changeset
  5576
    "Modified: / 18-01-2011 / 17:58:33 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5577
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5578
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5579
searchForSiblingProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5580
    "answer all the packages (package names) having the my parent package"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5581
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5582
    |myPackage myParentPackage|
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5583
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5584
    myPackage := self package asPackageId.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5585
    myParentPackage := myPackage parentPackage.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5586
    myParentPackage isNil ifTrue:[^ #() ].
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5587
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5588
    ^ Smalltalk allProjectIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5589
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5590
            |thisPackage|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5591
            thisPackage := projectID asPackageId.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5592
            (thisPackage parentPackage = myParentPackage)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5593
            and:[ thisPackage ~= myPackage ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5594
        ]
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5595
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5596
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5597
     self searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5598
     bosch_dapasx_Application searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5599
     stx_goodies_refactoryBrowser_changes searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5600
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5601
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5602
    "Modified: / 07-08-2006 / 21:56:25 / fm"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5603
    "Created: / 23-08-2006 / 15:06:12 / cg"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5604
!
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5605
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5606
searchForSubProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5607
    "answer all packages (package names), that are my subProjects"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5608
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5609
    |myPackage|
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5610
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5611
    myPackage := self package.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5612
    ^ Smalltalk allProjectIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5613
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5614
            projectID ~= PackageId noProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5615
            and:[ (projectID asPackageId parentPackage) = myPackage ]].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5616
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5617
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5618
     self searchForSubProjects
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5619
     bosch_dapasx_Application searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5620
     stx_goodies_refactoryBrowser_changes searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5621
    "
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5622
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5623
    "Created: / 07-08-2006 / 20:42:39 / fm"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5624
    "Modified: / 07-08-2006 / 21:56:25 / fm"
10215
2d5aaeab5718 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10212
diff changeset
  5625
    "Modified: / 05-12-2006 / 18:04:27 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5626
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5627
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5628
setupForType:typeOrNil
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5629
    typeOrNil = GUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5630
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5631
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5632
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5633
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5634
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5635
    ^ true
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5636
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5637
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5638
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5639
        ^ self
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5640
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  5641
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5642
    typeOrNil = NonGUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5643
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5644
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5645
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5646
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5647
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5648
    ^ false
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5649
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5650
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5651
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5652
        ^ self
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5653
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  5654
12349
6493b6124da3 changed:
fm
parents: 12339
diff changeset
  5655
    self theMetaclass removeSelector: #isGUIApplication.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5656
    self setSuperclass: LibraryDefinition.
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5657
    ^ self.
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5658
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5659
    "Created: / 23-08-2006 / 14:26:10 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5660
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5661
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5662
shouldExcludeTest: test
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5663
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5664
    self excludedFromTestSuite do:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5665
        [:spec|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5666
        (spec isSymbol and:[test class name == spec])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5667
            ifTrue:[^true].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5668
        (spec isArray and:[test class name == spec first and:[test selector == spec second]])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5669
            ifTrue:[^true].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5670
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5671
    ^false
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5672
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5673
    "Created: / 03-06-2011 / 17:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5674
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5675
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5676
!ProjectDefinition class methodsFor:'private-extension handling'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5677
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5678
extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5679
    ^ extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5680
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5681
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5682
fetchSlotsFrom:myFirstIncarnation
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5683
    "this is invoked in a just loaded instance of myself,
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5684
     to fetch the safe and extensionInfo from my first incarnation"
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5685
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5686
    safeForOverwrittenMethods := myFirstIncarnation safeForOverwrittenMethods.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5687
    extensionOverwriteInfo := myFirstIncarnation extensionOverwriteInfo.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5688
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5689
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5690
hasSavedOverwrittenMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5691
    "true, if any of my methods was overwritten by another loaded package.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5692
     These methods are now in my safe"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5693
12208
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5694
    ^ safeForOverwrittenMethods notEmptyOrNil
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5695
!
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5696
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5697
methodOverwrittenBy:anExtensionMethod
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5698
    "return the (hidden) original method, which was located in another package
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5699
     and which got overwritten by one of my extension methods. Nil if there is none."
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5700
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5701
    |mclass selector oldPackage|
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5702
12218
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  5703
    extensionOverwriteInfo isNil ifTrue:[^ nil].
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  5704
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5705
    mclass := anExtensionMethod mclass.
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5706
    selector := anExtensionMethod selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5707
    oldPackage := extensionOverwriteInfo at:(mclass name,'>>',selector) ifAbsent:nil.
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5708
    oldPackage isNil ifTrue:[^ nil].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5709
    ^ oldPackage asPackageId projectDefinitionClass
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5710
        savedOverwrittenMethodForClass:mclass selector:selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5711
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5712
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5713
rememberOverwrittenExtensionMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5714
    "before loading, tell other packages to keep a safe reference to any method
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5715
     which gets overloaded by me, and also remember here, whome I have overloaded.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5716
     This allows for two things:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5717
        a) correct fileout of the other base-package (for example, when checking in any of its class)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5718
        b) correct unloading of myself"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5719
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5720
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5721
        |class oldMethod oldPackage defClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5722
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5723
        class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5724
        class notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5725
            oldMethod := class compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5726
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5727
        oldMethod notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5728
            oldPackage := oldMethod package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5729
            oldPackage ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5730
                defClass := oldPackage asPackageId projectDefinitionClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5731
                defClass notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5732
                    defClass rememberOverwrittenMethod:oldMethod inClass:class.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5733
                    extensionOverwriteInfo isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5734
                        extensionOverwriteInfo := Dictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5735
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5736
                    extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5737
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5738
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5739
        ].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5740
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5741
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5742
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5743
rememberOverwrittenMethod:oldMethod inClass:aClass
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5744
    "invoked from another projectDefinition, when that package is about to be loaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5745
     and about to overwrite one of my methods.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5746
     I will save the method locally, to allow for correct fileout of this class/project or
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5747
     to correctly reestablish my methods when the other package is unloaded later."
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5748
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5749
    |thisIsOneOfMyMethods selector|
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5750
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5751
    selector := oldMethod selector.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5752
12293
983b9555f6e8 changed: #rememberOverwrittenMethod:inClass:
Claus Gittinger <cg@exept.de>
parents: 12286
diff changeset
  5753
    thisIsOneOfMyMethods := (self classNames includes:aClass theNonMetaclass name)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5754
                            or:[ aClass isPrivate and:[ self classNames includes: aClass topOwningClass theNonMetaclass name ]].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5755
    thisIsOneOfMyMethods ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5756
        self extensionMethodNames pairWiseDo:[:extClassName :extSelector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5757
            extClassName = aClass name ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5758
                selector = extSelector ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5759
                    thisIsOneOfMyMethods := true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5760
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5761
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5762
        ]
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5763
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5764
    thisIsOneOfMyMethods ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5765
        self error:'oops - this is not one of my methods' mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5766
        ^ self
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5767
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5768
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5769
    safeForOverwrittenMethods isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5770
        safeForOverwrittenMethods := Dictionary new.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5771
    ].
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5772
    safeForOverwrittenMethods at:(aClass name,'>>',selector) put:oldMethod.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5773
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5774
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5775
restoreOverwrittenExtensionMethods
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5776
    "after unloading, tell other packages to restore any safed reference to any method
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5777
     which got overloaded by me.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5778
     Unfinished!!"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5779
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5780
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5781
        |class oldMethod oldPackage|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5782
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5783
        oldPackage := extensionOverwriteInfo at:(className,'>>',selector).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5784
        oldPackage notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5785
            class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5786
            class notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5787
                oldMethod := oldPackage savedOverwrittenMethodForClass:class selector:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5788
                oldMethod notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5789
                    self breakPoint:#cg.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5790
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5791
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5792
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5793
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5794
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5795
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5796
safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5797
    ^ safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5798
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5799
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5800
savedOverwrittenMethodForClass:aClass selector:aSelector
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5801
    "return one of my saved original methods"
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5802
13692
2dffef08a4ac changed: #savedOverwrittenMethodForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 13689
diff changeset
  5803
    safeForOverwrittenMethods isNil ifTrue:[^ nil].
12274
a8ef1edeca71 changed:
Claus Gittinger <cg@exept.de>
parents: 12271
diff changeset
  5804
    ^ safeForOverwrittenMethods at:(aClass name,'>>',aSelector) ifAbsent:nil
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5805
!
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5806
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5807
savedOverwrittenMethods
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5808
    "return my saved original methods"
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5809
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5810
    ^ safeForOverwrittenMethods ? #()
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5811
! !
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5812
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5813
!ProjectDefinition class methodsFor:'private-loading'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5814
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5815
checkPrerequisitesForLoading
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5816
    "check if I can be loaded - i.e. if all classes to be extended are already loaded.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5817
     Raise an error if not"
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5818
12264
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5819
    |classesAlreadyWarned|
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5820
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5821
    classesAlreadyWarned := Set new.
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5822
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5823
    self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5824
        pairWiseDo:[:className :selector |
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5825
            |class errMsg|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5826
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5827
            class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5828
            class isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5829
                (classesAlreadyWarned includes:className) ifFalse:[
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5830
                    (self classNames includes:className) ifTrue:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5831
                        errMsg := 'extension for a class in myself: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5832
                    ] ifFalse:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5833
                        errMsg := 'missing class for extension: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5834
                    ].
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5835
                    Transcript showCR:errMsg.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5836
                    self error:errMsg mayProceed:true.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5837
                    classesAlreadyWarned add:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5838
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5839
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5840
        ]
12263
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  5841
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  5842
    "/ todo: more needed here...
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5843
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5844
    "
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5845
     stx_libjavascript checkPrerequisitesForLoading
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5846
    "
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5847
!
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5848
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5849
executeHooks: hook
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5850
    "Execute all hooks annotate by given symbol. Currently supported
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5851
     hooks are: #preLoad, #postLoad, #preUnload."
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5852
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5853
    | cls |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5854
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5855
    cls := self.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5856
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5857
    [ cls notNil ] whileTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5858
        cls class selectorsAndMethodsDo:[:selector :method|
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5859
            (method annotationAt: hook) notNil ifTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5860
                method numArgs == 0 ifTrue:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5861
                    self perform: selector
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5862
                ] ifFalse:[
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5863
                    self error:'Hook for %1 must have no arguments' mayProceed: true.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5864
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5865
            ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5866
        ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5867
        cls := cls superclass.
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5868
    ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5869
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5870
    "Created: / 20-11-2012 / 23:00:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5871
    "Modified: / 27-11-2012 / 16:15:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5872
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5873
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5874
loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5875
    self allClasses do:[:cls | cls autoload]
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5876
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5877
    "Created: / 21-08-2011 / 17:24:13 / cg"
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5878
!
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5879
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5880
loadAllClassesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5881
    "load (fileIn) classes that should be present -
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5882
     install as autoloaded classes marked to be autoloaded.
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  5883
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  5884
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  5885
     Answer true, if classes have been loaded"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  5886
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5887
    ^self loadAllClassesAsAutoloaded:asAutoloaded languages: ProgrammingLanguage all
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5888
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5889
    "Created: / 17-08-2006 / 01:01:14 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5890
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5891
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5892
    "Modified: / 19-06-2010 / 11:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5893
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5894
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5895
loadAllClassesAsAutoloaded:asAutoloaded languages: langs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5896
    "load (fileIn) classes in given languages that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5897
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5898
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5899
     langs should be collection of ProgrammingLanguage available in the system.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5900
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5901
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5902
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5903
    |classNamesToLoad classNamesToAutoload classNamesToLangs hasClassesToLoad loadedClasses platformName
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5904
     classesWhichFailedToLoad|
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5905
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5906
    platformName := OperatingSystem platformName.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5907
    classNamesToLoad := OrderedCollection new.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5908
    classNamesToAutoload := OrderedCollection new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5909
    classNamesToLangs := Dictionary new.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5910
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
  5911
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5912
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5913
        |eachClassnameSym isAutoload clsLangAttr clsLang cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5914
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5915
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5916
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5917
        clsLangAttr := eachAttributes detect:[:a|a isArray and: [a size == 2 and:[a first == #lang]]] ifNone:[nil].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5918
        clsLang := clsLangAttr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5919
                    ifNil:[SmalltalkLanguage instance]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5920
                    ifNotNil:[ProgrammingLanguage named: clsLangAttr second ifNone:[nil]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5921
        classNamesToLangs at: eachClassname put: clsLang.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5922
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5923
        "no need to (re-)load an existing class, but install if should be loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5924
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5925
        ((cls isNil or:[cls isLoaded not and:[isAutoload not]]) and:[clsLang notNil and:[langs includes: clsLang]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5926
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5927
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5928
             or:[(eachAttributes includes:platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5929
             or:[eachAttributes contains:[:a|a isArray]]]]) "/FIXME: Hack."
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5930
                ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5931
                    hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5932
                    isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5933
                        classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5934
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5935
                        classNamesToLoad add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5936
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5937
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5938
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5939
    ].
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5940
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5941
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5942
        loadedClasses := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5943
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5944
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5945
            classNamesToLoad notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5946
                "required classes are missing.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5947
                 Autoloaded classes are considered as optional..."
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5948
                self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5949
                    error:(self name,'[error] cannot install because packageDirectory is unknown for missing classes: ', classNamesToLoad printString)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5950
                    mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5951
                ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5952
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5953
            (self name,'[info] cannot install autoloaded classes because packageDirectory is unknown') infoPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5954
            ^ true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5955
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5956
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5957
        "we need the abbreviations, since sometimes there is no 1-to-1 mapping
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5958
         of class name to file name"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5959
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5960
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5961
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5962
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5963
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5964
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5965
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5966
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5967
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5968
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5969
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5970
            self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName) .
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5971
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5972
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5973
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5974
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  5975
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5976
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5977
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5978
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5979
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5980
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5981
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5982
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5983
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5984
                errorString: 'Loading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5985
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5986
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5987
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5988
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5989
                 loading it"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5990
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5991
                classesWhichFailedToLoad add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5992
                self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5993
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  5994
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5995
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5996
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5997
                cls := self loadClass: eachClassName asAutoloaded: false language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5998
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5999
                    loadedClasses add:cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6000
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6001
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6002
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6003
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6004
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6005
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6006
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6007
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6008
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6009
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6010
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6011
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6012
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6013
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6014
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6015
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6016
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6017
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6018
    "Modified: / 26-10-2006 / 12:30:01 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6019
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6020
    "Created: / 19-06-2010 / 11:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6021
    "Modified: / 19-06-2010 / 15:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6022
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6023
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6024
loadClass: className asAutoloaded: asAutoloaded language: lang
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6025
    | packageDir classFile entry category numClassInstVars cls|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6026
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6027
    "Handle smalltalk classes specially to provide backward compatibility"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6028
    lang isSmalltalk ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6029
        entry := self abbrevs at: className ifAbsent:[nil].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6030
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6031
        asAutoloaded ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6032
            category := entry isNil ifTrue:[#autoloaded] ifFalse:[entry category].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6033
            numClassInstVars := entry isNil ifTrue:[0] ifFalse:[entry numClassInstVars].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6034
            cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6035
                installAutoloadedClassNamed: className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6036
                category: category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6037
                package: self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6038
                revision: nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6039
                numClassInstVars:numClassInstVars.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6040
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6041
                cls setClassFilename:(entry fileName,'.st').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6042
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6043
            ^ cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6044
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6045
        ^ Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6046
            fileInClass:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6047
            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6048
            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6049
            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6050
            silent:true
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6051
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6052
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6053
    "For non-smalltalk language do"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6054
    asAutoloaded ifTrue:[^self error:'Only Smalltalk classes may be autoloaded (yet)'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6055
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6056
    packageDir := self packageDirectory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6057
    classFile := packageDir / ((Smalltalk fileNameForClass: className) , '.' , lang sourceFileSuffix).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6058
    classFile exists ifFalse:[^nil].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6059
    lang fileIn: classFile.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6060
    ^nil "FIXME: should return the class"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6061
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6062
    "Created: / 19-06-2010 / 09:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6063
    "Modified: / 06-03-2011 / 18:29:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6064
    "Modified: / 18-08-2011 / 14:22:15 / cg"
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6065
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6066
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6067
loadClassLibrary
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6068
    "try to load a binary class library
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6069
     Return true if ok, false if not."
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6070
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6071
    |libraryName|
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6072
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6073
    libraryName := self libraryName.
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6074
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6075
    (Smalltalk isClassLibraryLoaded:libraryName) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6076
        "already loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6077
        ^ true
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6078
    ].
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6079
    Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6080
        Transcript showCR:('  %1: loading classLibrary...' bindWith:self name).
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6081
    ].
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6082
    self activityNotification:'Loading classLibrary'.
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6083
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6084
    ^ Smalltalk fileInClassLibrary:libraryName inPackage:self package.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6085
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6086
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6087
loadExtensions
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6088
    "load extension methods - do not load if they are already present"
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6089
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6090
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6091
        self breakPoint:#cg.
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6092
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6093
            Transcript showCR:('  %1: filing in extensions...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6094
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6095
        Smalltalk loadExtensionsForPackage:self package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6096
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6097
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6098
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6099
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6100
    "Created: / 17-08-2006 / 00:21:39 / cg"
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6101
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6102
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6103
loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6104
    "load those packages which are required for loading.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6105
     Called after my definition has been loaded, but before the rest of the
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6106
     package is."
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6107
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6108
    |prereq|
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6109
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6110
    prereq := self effectiveMandatoryPreRequisites.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6111
    prereq notEmpty ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6112
        Verbose ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6113
            Transcript showCR:('  %1 loading mandatory prerequisites...' bindWith:self name).
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6114
        ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6115
        self loadPackages:prereq asAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6116
    ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6117
!
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6118
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6119
loadPackages:aListOfPackages asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6120
    "load some packages (at least the projectDefinitions and their extensions).
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6121
     If asAutoloaded == true, classes will be only installed as autoloaded."
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6122
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6123
    Class withoutUpdatingChangesDo:[
14790
28d875953487 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14789
diff changeset
  6124
        aListOfPackages do:[:eachPackageID |
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6125
            |cls|
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6126
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  6127
            cls := self definitionClassForPackage:eachPackageID.
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  6128
            (cls isNil or:[cls isLoaded not or:[cls projectIsLoaded not]]) ifTrue:[                        
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6129
                Smalltalk loadPackage:eachPackageID asAutoloaded:asAutoloaded.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6130
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6131
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6132
    ].
13166
aa93e348e5d3 changed: #loadPackages:asAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13154
diff changeset
  6133
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  6134
    "Modified: / 09-12-2010 / 12:36:17 / cg"
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6135
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6136
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6137
loadPreRequisitesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6138
    "load other packages (at least the projectDefinitions and their extensions)"
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6139
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6140
    |prereq|
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6141
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6142
    prereq := self effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6143
    prereq notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6144
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6145
            Transcript showCR:('  %1 loading prerequisites...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6146
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6147
        self loadPackages:prereq asAutoloaded:asAutoloaded
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6148
    ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6149
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6150
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6151
loadSubProjects
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6152
    "load other packages (at least the projectDefinitions and their extensions)"
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6153
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6154
    self loadSubProjectsAsAutoloaded:false.
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6155
    self subProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6156
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6157
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6158
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6159
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6160
            subDef loadSubProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6161
        ].
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6162
    ].
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6163
!
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6164
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6165
loadSubProjectsAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6166
    "load other packages (at least the projectDefinitions and their extensions)"
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6167
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6168
    self loadPackages:(self subProjects) asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6169
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6170
    "Modified: / 25-10-2006 / 17:51:58 / cg"
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6171
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6172
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6173
old_loadAllClassesAsAutoloaded:asAutoloaded
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6174
    "load (fileIn) classes that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6175
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6176
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6177
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6178
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6179
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6180
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6181
     classesWhichFailedToLoad|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6182
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6183
    platformName := OperatingSystem platformName.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6184
    classNamesToLoad := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6185
    classNamesToAutoload := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6186
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6187
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6188
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6189
        |eachClassnameSym isAutoload cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6190
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6191
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6192
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6193
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6194
        "no need to (re-)load an existing class, but install if should be loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6195
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6196
        (cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6197
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6198
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6199
             or:[eachAttributes includes:platformName]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6200
                hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6201
                isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6202
                    classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6203
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6204
                    classNamesToLoad add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6205
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6206
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6207
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6208
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6209
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6210
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6211
        loadedClasses := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6212
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6213
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6214
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6215
                error:(self name,'[error] cannot install because packageDirectory is unknown')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6216
                mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6217
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6218
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6219
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6220
        "we need the abbreviations, since sometimes there is no 1-to-1 mapping
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6221
         of class name to file name"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6222
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6223
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6224
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6225
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6226
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6227
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6228
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6229
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6230
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6231
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6232
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6233
            Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6234
                installAutoloadedClassNamed:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6235
                category:#autoloaded    "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6236
                package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6237
                revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6238
                numClassInstVars:0.     "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6239
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6240
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6241
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6242
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6243
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6244
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6245
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6246
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6247
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6248
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6249
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6250
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6251
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6252
                errorString: 'Loading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6253
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6254
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6255
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6256
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6257
                 loading it"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6258
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6259
                classesWhichFailedToLoad add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6260
                Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6261
                    installAutoloadedClassNamed:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6262
                    category:#autoloaded    "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6263
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6264
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6265
                    numClassInstVars:0.     "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6266
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6267
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6268
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6269
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6270
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6271
                            fileInClass:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6272
                            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6273
                            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6274
                            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6275
                            silent:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6276
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6277
                    loadedClasses add:cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6278
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6279
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6280
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6281
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6282
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6283
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6284
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6285
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6286
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6287
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6288
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6289
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6290
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6291
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6292
        ^ true.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6293
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6294
    ^ false.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6295
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6296
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6297
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6298
    "Created: / 19-06-2010 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6299
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6300
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6301
unloadAllClasses
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6302
    Transcript showCR:'unloading not yet fully supported'
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6303
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6304
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6305
unloadClassLibrary
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6306
    Transcript showCR:'unloading not yet fully supported'
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6307
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6308
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6309
unloadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6310
    "unload other packages"
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6311
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6312
    self subProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6313
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6314
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6315
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6316
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6317
            subDef unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6318
            subDef unloadPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6319
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6320
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6321
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6322
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6323
update:anAspectSymbol with:argument from:changedObject
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6324
    "when any of my class methods is changed, we mark the project as unloaded.
12926
620ef12f673c comment/format in: #update:with:from:
Stefan Vogel <sv@exept.de>
parents: 12856
diff changeset
  6325
     May be some more classes have to be loaded"
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6326
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6327
    (changedObject == self class and:[anAspectSymbol == #methodDictionary]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6328
        self projectIsLoaded:false.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6329
    ]
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6330
! !
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6331
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6332
!ProjectDefinition class methodsFor:'private-prerequisites'!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6333
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6334
addReferencesToClassesFromGlobalsIn:aSetOfClasses to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6335
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6336
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6337
    aSetOfClasses
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6338
        do:[:aClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6339
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6340
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6341
                    (aClass theNonMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  6342
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6343
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6344
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6345
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6346
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6347
                    (aClass theMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  6348
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6349
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6350
        ].
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6351
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6352
    "Modified: / 10-10-2006 / 23:03:45 / cg"
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6353
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6354
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6355
addReferencesToClassesFromGlobalsInMethods:someMethods to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6356
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6357
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6358
    someMethods do:[:method |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6359
        |resources|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6360
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6361
        resources := method resources.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6362
        (resources isNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6363
        or:[ ((resources includesKey:#'ignoreInPrerequisites') not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6364
              and:[(resources includesKey:#'example') not])])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6365
        ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6366
            method usedGlobals
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6367
                do:[:global |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6368
                    |globalsName usedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6369
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6370
                    globalsName := global asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6371
                    usedClass := Smalltalk at:globalsName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6372
                    (usedClass notNil and:[usedClass isClass and:[usedClass isNameSpace not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6373
                        usedClass name == globalsName ifTrue:[ "/ skip aliases
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6374
                            (usedClassReasons at:usedClass ifAbsentPut:[Set new])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6375
                                add:(usedClass name, ' - referenced by ', method mclass name,'>>',method selector)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6376
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6377
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6378
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6379
            ]
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6380
    ]
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6381
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6382
    "Created: / 10-10-2006 / 23:00:07 / cg"
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6383
    "Modified: / 30-05-2007 / 12:48:30 / cg"
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6384
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6385
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6386
addReferencesToExtensionMethodsIn:someClasses to:usedMethodReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6387
    "helper for searchForPreRequisites: search for sends of a selector which
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6388
     is defined in an extension method (in the set of passed-in methods). 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6389
     If found, add the extension method and a reason string to usedReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6390
     This should find especially sends to extension methods from libcompat."
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6391
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6392
    |allExtensionMethods allRealExtensions allRealExtensionSelectors|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6393
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6394
    allExtensionMethods := Smalltalk allExtensions.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6395
    "/ only care for methods which are not already implemented in an extension methods's superclass
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6396
    allRealExtensions := allExtensionMethods 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6397
                            select:[:mthd |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6398
                                |superClass|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6399
                                superClass := mthd mclass superclass.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6400
                                (superClass isNil or:[superClass whichClassIncludesSelector:mthd selector]) isNil 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6401
                            ].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6402
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6403
    allRealExtensionSelectors := allRealExtensions collect:[:m | m selector].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6404
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6405
    someClasses do:[:eachClass |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6406
        eachClass instAndClassMethodsDo:[:method |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6407
            |resources extensionsSent|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6408
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6409
            resources := method resources.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6410
            (resources isNil
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6411
            or:[ ((resources includesKey:#'ignoreInPrerequisites') not
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6412
                  and:[(resources includesKey:#'example') not])])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6413
            ifTrue:[
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6414
                extensionsSent := allRealExtensions select:[:ext | method messagesSent includes:ext selector].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6415
                extensionsSent do:[:eachExtensionMethod |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6416
                    (usedMethodReasons at:eachExtensionMethod ifAbsentPut:[Set new])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6417
                        add:(eachExtensionMethod selector, ' - sent by ', method mclass name,'>>',method selector)
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6418
                ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6419
            ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6420
        ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6421
    ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6422
!
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6423
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6424
allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6425
    "answer all (recursive) prerequisite project ids of myself - in random order."
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6426
    
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6427
    ^ self allPreRequisites:#effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6428
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6429
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6430
     stx_libbasic allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6431
     stx_libbasic2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6432
     stx_libview2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6433
     ubs_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6434
     ubs_application allPreRequisitesSorted
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6435
     exept_expecco_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6436
     exept_expeccoNET_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6437
     alspa_batch_application allPreRequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6438
    "Modified: / 13-04-2011 / 15:30:45 / sr"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6439
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6440
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6441
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6442
allPreRequisites:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6443
    "answer all (recursive) prerequisite project ids of myself - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6444
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6445
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6446
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6447
    result := self 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6448
        allPreRequisites:aSelector withParentDo:[:parent :prereq | 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6449
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6450
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6451
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6452
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6453
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6454
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6455
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6456
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6457
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6458
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6459
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6460
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6461
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6462
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6463
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6464
     alspa_batch_application allPreRequisites"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6465
    "Modified: / 13-04-2011 / 15:30:45 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6466
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6467
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6468
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6469
allPreRequisites:aSelector withParentDo:aBlock
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6470
    "answer all (recursive) prerequisite project ids of myself - in random order.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6471
     If we exclude a project, but one of our prerequisite projects depends on it,
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6472
     then what ????"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6473
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6474
    |setOfAllPreRequisites toAdd|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6475
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6476
    setOfAllPreRequisites := Set new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6477
    toAdd := Set withAll:(self perform:aSelector).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6478
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6479
    "is a subproject really a prerequisite??
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6480
     No, it works the other way: parent projects are prerequisites of sub projects,
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6481
     so the following line has been deleted.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6482
     Unfortunately the meaning of 'subproject' has never been well defined. SV."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6483
"/    toAdd addAll:self effectiveSubProjects.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6484
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6485
    [toAdd notEmpty] whileTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6486
        |aPreRequisiteProjectID def|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6487
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6488
        aPreRequisiteProjectID := toAdd removeFirst.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6489
        (setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6490
            setOfAllPreRequisites add:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6491
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6492
            def := self definitionClassForPackage:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6493
            def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6494
                Transcript showCR:'ProjectDefinition ', aPreRequisiteProjectID, ' is missing - cannot find its preRequisites.'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6495
            ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6496
                (def perform:aSelector)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6497
                    select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6498
                    thenDo:[:eachSubPreRequisite |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6499
                                Verbose == true ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6500
                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' requires ', eachSubPreRequisite).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6501
                                ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6502
                                aBlock value:def value:eachSubPreRequisite.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6503
                                toAdd add:eachSubPreRequisite
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6504
                           ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6505
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6506
                "but subprojects of our prerequisites are also prerequisites"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6507
"/ SV: - I don't think so. Either we need them, because they have classes being superclasses
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6508
"/ or referenced. Or we include the explicitly. In both cases we do not need thid code.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6509
"/ But we do not want them only because there is a subProject with examples or tests!!
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6510
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6511
"/                def effectiveSubProjects
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6512
"/                    select:[:eachSubSubRequisite | eachSubSubRequisite ~= self package and:[ (setOfAllPreRequisites includes:eachSubSubRequisite) not ]]
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6513
"/                    thenDo:[:eachSubSubRequisite |
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6514
"/                                Verbose == true ifTrue:[
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6515
"/                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' hasSub ', eachSubSubRequisite).
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6516
"/                                ].
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6517
"/                                aBlock value:def value:eachSubSubRequisite.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6518
"/                                toAdd add:eachSubSubRequisite
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6519
"/                           ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6520
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6521
        ]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6522
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6523
    ^ setOfAllPreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6524
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6525
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6526
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6527
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6528
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6529
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6530
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6531
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6532
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6533
     alspa_batch_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6534
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6535
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6536
    "Created: / 13-04-2011 / 15:23:21 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6537
    "Modified: / 20-07-2012 / 18:29:31 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6538
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6539
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6540
allPreRequisitesSorted
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6541
    ^ self allPreRequisitesSorted:#effectivePreRequisites
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6542
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6543
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6544
allPreRequisitesSorted:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6545
    "answer all the prerequisites of this projects sorted in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6546
     the order they are needed.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6547
     Use this to e.g. compile packages in the dependency order"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6548
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6549
    |allPreRequisites orderedTuples sortedPackages|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6550
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6551
    orderedTuples := OrderedCollection new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6552
    allPreRequisites := self allPreRequisites:aSelector.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6553
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6554
    "/JV@2013-03-13: Added asSortedCollection to make the order of packages
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6555
    "/as stable as possible. Makes merging of makefiles a lot easier.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6556
    allPreRequisites asSortedCollection do:[:eachPackageID |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6557
        |def preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6558
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6559
        self assert:(eachPackageID ~= self package).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6560
        orderedTuples add:(Array with:eachPackageID with:self package).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6561
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6562
        def := self definitionClassForPackage:eachPackageID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6563
        def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6564
            Transcript showCR:'Warning: no definition class for package: ', eachPackageID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6565
            ((self searchForPreRequisites: eachPackageID) 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6566
                fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6567
        ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6568
            preRequisites := def perform:aSelector.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6569
            preRequisites removeAllFoundIn:def excludedFromPreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6570
            preRequisites do:[:eachPrerequisitePackageID|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6571
                self assert:(eachPrerequisitePackageID ~= eachPackageID).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6572
                orderedTuples add:(Array with:eachPrerequisitePackageID with:eachPackageID).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6573
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6574
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6575
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6576
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6577
    (orderedTuples includes:[:el | el first = el second]) ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6578
        self halt
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6579
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6580
    sortedPackages := orderedTuples topologicalSort.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6581
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6582
    "packages which only result from extension methods are used for computing the sort order,
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6583
     but they are not added, if not present in the first place"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6584
    ^ sortedPackages select:[:eachProject| allPreRequisites includes:eachProject]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6585
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6586
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6587
     stx_libbasic allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6588
     stx_libbasic2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6589
     stx_libwidg2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6590
     exept_expecco allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6591
     alspa_batch_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6592
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6593
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6594
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6595
    "Modified: / 13-04-2011 / 15:19:13 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6596
    "Modified (comment): / 13-03-2013 / 00:40:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6597
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6598
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6599
allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6600
    "answer all (recursive) projects to which I refer - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6601
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6602
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6603
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6604
    result := self 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6605
        allPreRequisites:#referencedPreRequisites withParentDo:[:parent :prereq | 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6606
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6607
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6608
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6609
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6610
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6611
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6612
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6613
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6614
     stx_libbasic allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6615
     stx_libbasic2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6616
     stx_libview2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6617
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6618
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6619
     exept_expecco_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6620
     exept_expeccoNET_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6621
     alspa_batch_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6622
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6623
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6624
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6625
effectiveMandatoryPreRequisites
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6626
    "get the preRequisites, that are not excluded, which are needed for loading
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6627
     and compiling (i.e. which must be present BEFORE)"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6628
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6629
    self mandatoryPreRequisites notEmpty ifTrue:[
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6630
        "this is a new subclass - avoid overhead"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6631
        ^ OrderedSet new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6632
            addAll:self mandatoryPreRequisites;
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6633
            "/ addAll:self includedInPreRequisites;
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6634
            removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6635
            yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6636
    ].
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6637
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6638
    "I am an old subclass, where #preRequisites returns a plain array"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6639
    ^ Set new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6640
        addAll:self preRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6641
        addAll:self includedInPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6642
        removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6643
        remove:self package ifAbsent:[];
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6644
        yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6645
!
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6646
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6647
effectivePreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6648
    "get the preRequisites, that are not excluded.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6649
     This method appears to be obsolete, because its functionality
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6650
     is now included in #preRequisites.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6651
     But is to be kept for backward compatibilty with old
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6652
     existing subclasses."
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6653
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6654
    self mandatoryPreRequisites notEmpty ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6655
        "this is a new subclass - avoid overhead"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6656
        ^ self preRequisites.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6657
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6658
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6659
    "I am an old subclass, where #preRequisites returns a plain array"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6660
    ^ Set new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6661
        addAll:self preRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6662
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6663
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6664
        remove:self package ifAbsent:[];
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6665
        yourself.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6666
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6667
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6668
searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6669
    "answer a Dictionary where the keys are the prerequisite package for this package
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6670
     and the values are a Set of reasons, why each package is required"
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6671
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
  6672
    ^ self searchForPreRequisites:self package
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6673
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6674
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6675
     self searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6676
     stx_libbasic3 searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6677
     bosch_dapasx_Application searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6678
     bosch_dapasx_pav_browser searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6679
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6680
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6681
    "Created: / 07-08-2006 / 20:42:39 / fm"
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6682
    "Modified: / 07-08-2006 / 21:56:25 / fm"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6683
    "Modified: / 06-09-2011 / 08:30:43 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6684
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6685
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6686
searchForPreRequisites: packageId
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6687
    "answer an array containing two Dictionaries where the keys are the prerequisite package for the given package
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6688
     and the values are a Set of reasons, why each key package is required.
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6689
     The first entry in the array are the mandatory prereqs (required for compilation),
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6690
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6691
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6692
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6693
    ^ self searchForPreRequisites: packageId withSubProjects:false
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6694
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6695
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6696
     self searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6697
     self searchForPreRequisites:#'stx:libwidg3'
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6698
     self searchForPreRequisites:#'stx:libtool'
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6699
     bosch_dapasx_Application searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6700
     bosch_dapasx_pav_browser searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6701
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6702
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6703
    "Modified: / 07-08-2006 / 21:56:25 / fm"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6704
    "Created: / 17-11-2010 / 18:27:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6705
    "Modified: / 06-09-2011 / 08:30:20 / cg"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6706
!
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6707
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6708
searchForPreRequisites:packageId withSubProjects:withSubProjectsBoolean
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6709
    "answer an array containing two Dictionaries where the keys are the prerequisite package for the given package
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6710
     and the values are a Set of reasons, why each key package is required.
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6711
     The first entry in the array are the mandatory prereqs (required for compilation),
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6712
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6713
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6714
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6715
    |requiredClasses mandatoryClassesForLoadingWithReasons referencedClassesWithReasons 
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6716
     ignoredPackages packageExtractionBlock mandatoryPackageReasons referencedPackageReasons referencedMethodsWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6717
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6718
    mandatoryClassesForLoadingWithReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6719
    referencedClassesWithReasons := Dictionary new.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6720
    referencedMethodsWithReasons := Dictionary new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6721
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6722
    "my classes are required"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6723
    requiredClasses := self searchForClassesWithProject: packageId.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6724
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6725
    withSubProjectsBoolean ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6726
        "my subproject's classes are required"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6727
        self effectiveSubProjects do:[:eachProjectName |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6728
            requiredClasses addAll:(self searchForClassesWithProject:eachProjectName asSymbol)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6729
        ].
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6730
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6731
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6732
    "all superclasses of my classes 
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6733
     and my subProject's classes (if required) are mandatory.
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6734
     All shared pools used by my classes are required as well"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6735
    requiredClasses do:[:cls |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6736
        cls allSuperclassesDo:[:eachSuperclass |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6737
            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6738
                add: (eachSuperclass name, ' - superclass of ', cls name).
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6739
        ].
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6740
        cls sharedPools do:[:eachSharedPool |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6741
            (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6742
                add: (eachSharedPool name, ' - shared pool used by ', cls name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6743
            eachSharedPool allSuperclassesDo:[:eachSuperclass |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6744
                (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6745
                    add: (eachSuperclass name, ' - superclass of shared pool ', eachSharedPool name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6746
            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6747
        ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6748
    ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6749
    "all classes for which I define extensions are mandatory"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6750
    self allExtensionClasses do:[:eachExtendedClass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6751
        (mandatoryClassesForLoadingWithReasons at:eachExtendedClass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6752
            add: (eachExtendedClass name, ' - extended').
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6753
        eachExtendedClass allSuperclassesDo:[:eachSuperclass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6754
            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6755
                add: (eachSuperclass name, ' - superclass of extended ', eachExtendedClass name).
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6756
        ]
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6757
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6758
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6759
    "all classes referenced by my classes or my subproject's classes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6760
     are required. But:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6761
         only search for locals refered to by my methods (assuming that superclasses'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6762
         prerequisites are specified in their package)."
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6763
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6764
    self addReferencesToClassesFromGlobalsIn:requiredClasses to:referencedClassesWithReasons.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6765
    self addReferencesToClassesFromGlobalsInMethods:(self searchForExtensionsWithProject:self package) to:referencedClassesWithReasons.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6766
    self addReferencesToExtensionMethodsIn:requiredClasses to:referencedMethodsWithReasons.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6767
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6768
    "now map classes to packages and collect the reasons"
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6769
    packageExtractionBlock := 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6770
        [:classesWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6771
            |requiredPackageReasons|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6772
            requiredPackageReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6773
            classesWithReasons keysAndValuesDo:[:usedClass :reasonsPerClass| 
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6774
                (requiredPackageReasons at:usedClass package ifAbsentPut:[Set new])
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6775
                                addAll:reasonsPerClass.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6776
            ].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6777
            "sort, to avoid differences from one generation to the next one"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6778
            requiredPackageReasons
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6779
        ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6780
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6781
    mandatoryPackageReasons := packageExtractionBlock value:mandatoryClassesForLoadingWithReasons.
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6782
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6783
    referencedPackageReasons := packageExtractionBlock value:referencedClassesWithReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6784
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6785
    "and map extension method invocations to packages and collect the reasons"
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6786
    referencedMethodsWithReasons keysAndValuesDo:[:usedMethod :reasonsPerMethod |
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6787
        (referencedPackageReasons at:usedMethod package ifAbsentPut:[Set new])
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6788
            addAll:reasonsPerMethod.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6789
    ].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6790
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6791
    ignoredPackages := Set 
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6792
        with:packageId
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6793
        with:PackageId noProjectID.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6794
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6795
    referencedPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6796
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6797
    referencedPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | referencedPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6798
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6799
    "don't put classes from subProjects into the required list"
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6800
    ignoredPackages addAll:(self siblingsAreSubProjects
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6801
                                ifTrue:[ self searchForSiblingProjects ]
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6802
                                ifFalse:[ self searchForSubProjects ]) asSet.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6803
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6804
    mandatoryPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6805
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6806
    mandatoryPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | mandatoryPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6807
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6808
    ^ Array 
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6809
        with:mandatoryPackageReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6810
        with:referencedPackageReasons.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6811
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6812
    "
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6813
     self searchForPreRequisites:#'stx:libwidg3'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6814
     bosch_dapasx_Application searchForPreRequisites
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6815
     bosch_dapasx_pav_browser searchForPreRequisites
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6816
     self searchForPreRequisites:#'stx:goodies/json' withSubProjects:false
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6817
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6818
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6819
    "Modified: / 07-08-2006 / 21:56:25 / fm"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6820
    "Created: / 17-11-2010 / 18:27:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6821
    "Created: / 06-09-2011 / 08:29:37 / cg"
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6822
! !
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6823
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  6824
!ProjectDefinition class methodsFor:'queries'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  6825
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6826
allClassNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6827
    ^ self classNamesForWhich:[:nm :attr | true ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6828
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6829
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6830
allClasses
13950
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6831
    ^ self allClassNames 
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6832
        collect:[:nm | 
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6833
            |cls|
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6834
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6835
            cls := Smalltalk classNamed:nm.
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6836
            cls isNil ifTrue:[
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6837
                Transcript showCR:('%1: failed to autoload class %2' bindWith:self name with:nm)
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6838
            ].
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6839
            cls
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6840
        ]
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6841
        thenSelect:[:cls | cls notNil ].
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6842
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6843
    "Created: / 06-08-2011 / 15:47:36 / cg"
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6844
!
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6845
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6846
allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6847
    "answer the set of classes, which are extended by the package.
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6848
     includes all superclasses of the extended classes"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6849
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6850
    ^ self extensionClassesWithSuperclasses:true
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6851
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6852
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6853
     stx_libboss allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6854
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6855
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6856
    "Created: / 06-09-2011 / 10:15:54 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6857
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6858
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6859
autoloaded_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6860
    "the opposite of compiled class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6861
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6862
    ^ self classNamesForWhich:[:nm :attr | attr notEmptyOrNil and:[attr includes:#autoload]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6863
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6864
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6865
    "Created: / 30-08-2007 / 18:48:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6866
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6867
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6868
canHaveExtensions
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6869
    "return true, if this class allows extensions from other packages.
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6870
     Private classes, namespaces and projectDefinitions don't allow this"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6871
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6872
    ^ self isAbstract
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6873
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6874
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6875
     Smalltalk allClasses select:[:each | each canHaveExtensions not]
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6876
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6877
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6878
    "Created: / 30-08-2006 / 15:29:49 / cg"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6879
!
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6880
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6881
classNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6882
    "answer an array containing all the class names of the project's classes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6883
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6884
    ^ self classNamesAndAttributesAsSpecArray collect:[:entry | entry first].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6885
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6886
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6887
     stx_libhtml classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6888
     stx_libhtml classNamesAndAttributesAsSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6889
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6890
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6891
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6892
classNamesForWhich:aBlock
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6893
    "a correponding method with real names is generated in my subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6894
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6895
    |coll|
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6896
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6897
    coll := OrderedCollection new.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6898
    self classNamesAndAttributesDo:[:nm :attributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6899
        (aBlock value:nm value:attributes) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6900
            coll add:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6901
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6902
    ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6903
    ^ coll
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6904
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6905
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6906
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6907
    "Modified: / 17-08-2006 / 20:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6908
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6909
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6910
classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6911
    "list my classes.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6912
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6913
     Use #classNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6914
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6915
    ^ self classNames collect:[:nm | Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6916
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6917
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6918
     stx_libbasic3 classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6919
     stx_libbasic3 classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6920
    "
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6921
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6922
    "Modified: / 27-09-2011 / 18:12:33 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6923
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6924
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6925
compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6926
    "the opposite of autoloaded class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6927
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6928
    ^ self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[(attr includes:#autoload) not]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6929
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6930
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6931
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6932
    "Modified: / 21-08-2006 / 18:48:31 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6933
    "Modified (comment): / 05-03-2012 / 12:21:23 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6934
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6935
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6936
compiled_classNamesForPlatform
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6937
    "answer the classes to be compiled only for the current platformName"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6938
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6939
    ^ self compiled_classNamesForPlatform:OperatingSystem platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6940
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6941
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6942
compiled_classNamesForPlatform:platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6943
    "answer the classes to be compiled only for platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6944
     platformName is one of #unix, #win32 (OperatingSystem platformName)"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6945
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6946
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6947
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6948
            (attr includes:#autoload) not and:[attr includes:platformName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6949
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6950
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6951
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6952
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6953
    "Modified: / 09-10-2006 / 13:30:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6954
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6955
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6956
compiled_classNames_common
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6957
    "classes to be compiled for any platform"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6958
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6959
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6960
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6961
            attr isEmptyOrNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6962
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6963
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6964
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6965
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6966
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6967
compiled_classNames_unix
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6968
    "class, only to be compiled under unix"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6969
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6970
    ^ self compiled_classNamesForPlatform:#unix.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6971
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6972
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6973
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6974
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6975
compiled_classNames_windows
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6976
    "class, only to be compiled under windows"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6977
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6978
    ^ self compiled_classNamesForPlatform:#win32.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6979
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6980
    "Created: / 18-08-2006 / 13:37:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6981
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6982
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  6983
extensionClasses
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  6984
    "answer the set of classes, which are extended by the package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  6985
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6986
    ^ self extensionClassesWithSuperclasses:false
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6987
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6988
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6989
     stx_libboss extensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6990
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6991
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6992
    "Modified: / 06-09-2011 / 10:21:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6993
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6994
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6995
extensionClassesWithSuperclasses:withSuperclassesBoolean
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6996
    "answer the set of classes, which are extended by the package"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6997
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  6998
    |classes|
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  6999
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7000
    classes := IdentitySet new.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7001
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7002
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7003
        |mthdCls extendedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7004
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7005
        mthdCls := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7006
        (mthdCls notNil and:[mthdCls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7007
            extendedClass := mthdCls theNonMetaclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7008
            (classes includes:extendedClass) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7009
                withSuperclassesBoolean ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7010
                    extendedClass withAllSuperclassesDo:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7011
                        classes add:eachClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7012
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7013
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7014
                    classes add:extendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7015
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7016
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7017
        ].
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7018
    ].
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7019
    ^ classes.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7020
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7021
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7022
        stx_libboss extensionClasses
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7023
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7024
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7025
    "Created: / 06-09-2011 / 10:17:06 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7026
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7027
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7028
extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7029
    "list my extension methods.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7030
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7031
     Use #extensionMethodsNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7032
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7033
    ^ self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7034
        pairWiseCollect:[:className :selector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7035
            (Smalltalk classNamed:className) compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7036
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7037
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7038
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7039
     stx_libbasic2 extensionMethodNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7040
     stx_libbasic2 extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7041
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7042
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7043
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7044
extensionPackages
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7045
    "answer the set of packages, which are extended by this package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7046
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7047
    ^ self allExtensionClasses collect:[:eachClass| eachClass package]
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7048
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7049
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7050
        stx_libboss extensionPackages
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7051
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7052
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7053
    "Modified: / 06-09-2011 / 10:20:47 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7054
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7055
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7056
hasAllClassesFullyLoaded
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  7057
    "return true, if all classes are present and loaded (not autoloaded)"
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7058
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7059
    ^ self hasAllClassesLoaded:true
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7060
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7061
    "Created: / 25-10-2006 / 16:08:25 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7062
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7063
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7064
hasAllClassesLoaded
10205
33fadd7b4fd1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10203
diff changeset
  7065
    "return true, if all classes are present (although, some might be autoloaded)"
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7066
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7067
    ^ self hasAllClassesLoaded:false
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7068
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7069
    "Modified: / 25-10-2006 / 16:08:11 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7070
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7071
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7072
hasAllClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7073
    "check if all classes for this platform are present.
12421
67898c88eceb comment/format in: #hasAllClassesLoaded:
Claus Gittinger <cg@exept.de>
parents: 12416
diff changeset
  7074
     If checkIfFullyLoaded is true, they must be fully loaded; that means: not autoloaded"
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7075
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7076
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7077
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[ attr includes:#autoload]])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7078
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7079
    and:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7080
        self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7081
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7082
            loaded:checkIfFullyLoaded ]
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7083
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7084
    "Modified: / 07-11-2006 / 11:47:30 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7085
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7086
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7087
hasAllCompiledClassesFullyLoaded
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7088
    "return true, if all compiled classes are present and loaded"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7089
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7090
    ^ self hasAllCompiledClassesLoaded:true
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7091
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7092
    "Created: / 07-11-2006 / 11:48:02 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7093
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7094
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7095
hasAllCompiledClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7096
    "check if all compiled classes for this platform are present.
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7097
     If checkIfFullyLoaded is true, they must be fully loaded, that is not autoloaded"
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7098
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7099
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7100
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7101
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7102
    and:[
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7103
       self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7104
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7105
            loaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7106
    ]
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7107
!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7108
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7109
hasAllExtensionsLoaded
10203
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  7110
    "answer true, if all extensions of this package have been loaded.
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  7111
     This is a query - so no side effects please"
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  7112
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7113
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7114
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7115
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7116
        cls := Smalltalk loadedClassNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7117
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7118
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7119
                Transcript showCR:(self name,' missing extension class "',className,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7120
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7121
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7122
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7123
        "there is no possibility that we installed an extension method in an unloaded class"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7124
        (cls isLoaded not or:[(cls compiledMethodAt:selector) isNil]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7125
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7126
                Transcript showCR:(self name,' missing extension method "',className,'>>',selector,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7127
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7128
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7129
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7130
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7131
    ^ true.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7132
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7133
    "Created: / 17-08-2006 / 00:50:01 / cg"
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7134
    "Modified: / 25-10-2006 / 00:01:10 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7135
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7136
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7137
hasClasses:classNames loaded:checkIfFullyLoaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7138
    "answer true, if all classes referenced by classNames have been loaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7139
     into the image. If checkIfFullyLoaded, classes installed as autoloaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7140
     are not considered"
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7141
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7142
    classNames do:[:eachClassName |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7143
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7144
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7145
        cls := Smalltalk loadedClassNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7146
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7147
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7148
               (self name, ' [info]: missing class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7149
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7150
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7151
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7152
        (checkIfFullyLoaded and:[cls isLoaded not]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7153
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7154
                (self name,' [info]: unloaded class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7155
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7156
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7157
        ].
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7158
    ].
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7159
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7160
    ^ true
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7161
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7162
9906
9efd21c9b1b6 hasExtensions is a bad name (conflicts with the other query)
Claus Gittinger <cg@exept.de>
parents: 9904
diff changeset
  7163
hasExtensionMethods
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7164
    ^ self extensionMethodNames notEmpty
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7165
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7166
    "Created: / 14-09-2006 / 14:19:35 / cg"
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7167
!
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7168
12369
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7169
hasPostLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7170
    "/ true if postLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7171
    ^ (self class whichClassIncludesSelector:#postLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7172
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7173
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7174
hasPostUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7175
    "/ true if postUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7176
    ^ (self class whichClassIncludesSelector:#postUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7177
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7178
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7179
hasPreLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7180
    "/ true if preLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7181
    ^ (self class whichClassIncludesSelector:#preLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7182
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7183
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7184
hasPreUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7185
    "/ true if preUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7186
    ^ (self class whichClassIncludesSelector:#preUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7187
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7188
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7189
isAbstract
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7190
    ^ self == ProjectDefinition
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7191
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7192
    "Modified (format): / 20-08-2011 / 22:47:46 / cg"
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7193
!
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7194
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7195
isFullyLoaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7196
    ^ self hasAllCompiledClassesFullyLoaded
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  7197
    and:[self hasAllClassesLoaded and:[self hasAllExtensionsLoaded]]
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7198
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7199
    "Created: / 24-10-2006 / 23:52:23 / cg"
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7200
    "Modified: / 20-08-2011 / 22:47:16 / cg"
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7201
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7202
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7203
projectType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7204
    ^ self subclassResponsibility
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7205
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7206
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7207
!ProjectDefinition class methodsFor:'queries-privacy'!
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7208
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7209
showClassDocumentationOf:aClass
12198
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7210
    "used by the HTMLDoc-generator to ask if a classes' protocol is to be documented
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7211
     or hidden.
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7212
     (used for expecco, to suppress documentation of workflow- and expecco classes
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7213
     in the expecco-class browser)"
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7214
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7215
    ^ true
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7216
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7217
    "Created: / 05-11-2007 / 16:44:16 / cg"
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7218
! !
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7219
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7220
!ProjectDefinition class methodsFor:'sanity checks'!
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7221
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7222
validateDescription
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  7223
    "perform some consistency checks (set of classes in project same as those listed in description);
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7224
     called before checking in build support files.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7225
     Somewhat obsolete: use the ProjectChecker, which does more checks"
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  7226
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7227
    |emptyProjects nonProjects emptyOrNonProjects classesInImage 
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7228
     classesInDescription onlyInImage onlyInDescription missingPools myPackage|
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7229
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7230
    emptyProjects := Set withAll:self subProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7231
    Smalltalk allClassesDo:[:cls |
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7232
        emptyProjects remove:(cls package) ifAbsent:[].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7233
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7234
    nonProjects := self subProjects select:[:p |
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7235
                    (ProjectDefinition definitionClassForPackage: p) isNil
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7236
                   ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7237
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7238
    emptyOrNonProjects := Set withAll:emptyProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7239
    emptyOrNonProjects addAll:nonProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7240
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7241
    emptyOrNonProjects notEmpty ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7242
        (Dialog
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7243
            confirm:('The following projects are non-existent, empty or without description:\\    '
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7244
                    , ((emptyOrNonProjects
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7245
                            asSortedCollection
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7246
                                collect:[:p | p allBold])
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7247
                                asStringWith:'\    ')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7248
                    , '\\Continue ?') withCRs
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7249
            yesLabel:'OK' noLabel:'Cancel')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7250
        ifFalse:[
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7251
            AbortSignal raise
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7252
        ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7253
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7254
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7255
    myPackage := self package.
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7256
    classesInImage := Smalltalk allClasses select:[:cls | (cls package == myPackage) and:[cls isPrivate not]].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7257
    "/ classesInDescription := self classes asIdentitySet.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7258
    classesInDescription := IdentitySet new.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7259
    ((self compiled_classNamesForPlatform:(OperatingSystem platformName))
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7260
    , (self compiled_classNames_common)
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7261
    , (self autoloaded_classNames)) do:[:nm |
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7262
        |cls|
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7263
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7264
        cls := Smalltalk at:nm asSymbol.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7265
        cls isNil ifTrue:[
14834
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7266
            (self autoloaded_classNames includes:nm) ifTrue:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7267
                Transcript showCR:'missing autoloaded class: ',nm.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7268
            ] ifFalse:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7269
                self error:('missing class: ',nm) mayProceed:true.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7270
            ]
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7271
        ] ifFalse:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7272
            classesInDescription add:cls.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7273
        ]
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7274
    ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7275
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7276
    missingPools := Set new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7277
    classesInDescription do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7278
        eachClass sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7279
            |pool|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7280
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7281
            pool := eachClass nameSpace classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7282
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7283
                eachClass nameSpace ~~ Smalltalk ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7284
                    pool := Smalltalk classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7285
                ] 
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7286
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7287
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7288
                Transcript showCR:'missing pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7289
                missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7290
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7291
                pool isSharedPool ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7292
                    Transcript showCR:'not a shared pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7293
                    missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7294
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7295
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7296
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7297
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7298
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7299
    missingPools notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7300
        (Dialog
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7301
            confirm:('The following sharedpools are non-existent, or not pools:\\    '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7302
                    , ((missingPools
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7303
                            asSortedCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7304
                                collect:[:p | p allBold])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7305
                                asStringWith:'\    ')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7306
                    , '\\Continue ?') withCRs
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7307
            yesLabel:'OK' noLabel:'Cancel')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7308
        ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7309
            AbortSignal raise
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7310
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7311
    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7312
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7313
"/ also found by ProjectChecker...
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7314
    classesInImage ~= classesInDescription ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7315
        onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7316
        onlyInImage notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  7317
            Transcript show:self name; show:': only in image: '; showCR:onlyInImage
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7318
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7319
        onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7320
        onlyInDescription notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  7321
            Transcript show:self name; show:': only in description: '; showCR:onlyInDescription
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7322
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7323
        (Dialog confirm:'The set of classes in the image is different from the listed classes in the project definition.\\Proceed?' withCRs) ifFalse:[
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7324
            AbortSignal raiseRequest
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7325
        ]
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7326
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7327
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7328
"/    self validateOrderOfClasses
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7329
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7330
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7331
     squeak_vmMaker validateDescription
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7332
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7333
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7334
    "Modified: / 06-03-2012 / 11:31:37 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7335
!
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7336
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7337
validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7338
    "check if the project's classes are listed in the correct dependency order in the classList.
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7339
     This would be required, if the generated makefile would compile files in that order,
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7340
     and superclasses must be compiled before subclasses (for the header files).
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7341
     However, the makefile list is generated by a separate mechanism, so that is not requiered."
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7342
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7343
    |classesInDescriptionInOrder classesInProject already|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7344
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7345
    classesInDescriptionInOrder := OrderedCollection new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7346
    classesInDescriptionInOrder := 
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7347
        self compiled_classNames 
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7348
            collect:[:eachName |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7349
                |cls|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7350
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7351
                cls := Smalltalk at:eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7352
                self assert:cls notNil message:'missing class: ',eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7353
                cls
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7354
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7355
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7356
    classesInProject := classesInDescriptionInOrder asSet.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7357
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7358
    already := Set new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7359
    classesInDescriptionInOrder do:[:eachClass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7360
        eachClass allSuperclassesDo:[:superclass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7361
            (classesInProject includes:superclass) ifTrue:[
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7362
                "/ if in the set, it must have been already listed
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7363
                self 
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7364
                    assert:(already includes:superclass) 
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7365
                    message:('superclass "%1" not compiled before "%2"'
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7366
                                    bindWith:superclass name
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7367
                                    with:eachClass name).
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7368
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7369
        ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7370
        already add:eachClass.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7371
    ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7372
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7373
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7374
     stx_goodies_refactoryBrowser_lint validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7375
     squeak_vmMaker validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7376
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7377
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7378
    "Created: / 05-03-2012 / 12:18:45 / cg"
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7379
! !
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7380
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7381
!ProjectDefinition class methodsFor:'testing'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7382
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7383
isApplicationDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7384
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7385
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7386
    "Created: / 23-08-2006 / 15:17:32 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7387
    "Modified: / 20-09-2006 / 14:59:56 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7388
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7389
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7390
isConsoleApplication
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7391
    ^ false
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7392
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7393
    "Created: / 20-09-2006 / 14:59:49 / cg"
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7394
!
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7395
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7396
isGUIApplication
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7397
    ^ false
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7398
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7399
    "Created: / 20-09-2006 / 14:59:49 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7400
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7401
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7402
isLibraryDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7403
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7404
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7405
    "Created: / 23-08-2006 / 15:17:46 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7406
    "Modified: / 20-09-2006 / 15:00:00 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7407
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7408
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7409
isProjectDefinition
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7410
    "concrete i.e. not abstract"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7411
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7412
    ^ self isAbstract not
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7413
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7414
    "Created: / 10-08-2006 / 16:24:02 / cg"
13285
bd6b2a49c8af comment
Claus Gittinger <cg@exept.de>
parents: 13251
diff changeset
  7415
    "Modified: / 08-02-2011 / 10:03:49 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7416
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7417
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7418
!ProjectDefinition::AbbrevEntry methodsFor:'accessing'!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7419
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7420
category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7421
    ^ category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7422
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7423
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7424
className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7425
    ^ className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7426
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7427
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  7428
className:classNameArg fileName:fileNameArg category:categoryArg numClassInstVars:numClassInstVarsArg
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7429
    className := classNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7430
    fileName := fileNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7431
    category := categoryArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7432
    numClassInstVars := numClassInstVarsArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7433
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7434
    "Created: / 18-08-2011 / 14:18:30 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7435
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7436
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7437
fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7438
    ^ fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7439
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7440
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7441
numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7442
    ^ numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7443
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7444
    "Created: / 18-08-2011 / 14:18:37 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7445
! !
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7446
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  7447
!ProjectDefinition class methodsFor:'documentation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  7448
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7449
version
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7450
    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.473 2013-06-05 08:40:14 cg Exp $'
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7451
!
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7452
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  7453
version_CVS
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7454
    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.473 2013-06-05 08:40:14 cg Exp $'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7455
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7456
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7457
version_SVN
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  7458
    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  7459
! !
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7460
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  7461
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7462
ProjectDefinition initialize!