ProjectDefinition.st
author Claus Gittinger <cg@exept.de>
Tue, 10 Jun 2014 12:05:15 +0200
changeset 16554 3f91905247d3
parent 16541 d258a79cee6e
child 16571 e7bc644361e4
permissions -rw-r--r--
class: ProjectDefinition changed: #searchForProjectsWhichProvideHeaderFiles MUST include referencedPrerequisites when generating the LOCALINCLUDES settings of the make.proto. Otherwise, classes referenced without namespace prefix in other packages are not correctly resolvable by stc. (see comment in localIncludes generation method)
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
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    15
	instanceVariableNames:''
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    16
	classVariableNames:'LibraryType GUIApplicationType NonGUIApplicationType
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
    17
		PackagesBeingLoaded Verbose AbbrevDictionary AccessLock
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
    18
		FolderForSubApplicationsType'
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    19
	poolDictionaries:''
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    20
	category:'System-Support-Projects'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    21
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    22
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
    23
ProjectDefinition class instanceVariableNames:'safeForOverwrittenMethods extensionOverwriteInfo projectIsLoaded'
9607
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
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    26
 No other class instance variables are inherited by this class.
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
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    29
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    30
Object subclass:#AbbrevEntry
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    31
	instanceVariableNames:'className fileName category numClassInstVars'
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    32
	classVariableNames:''
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    33
	poolDictionaries:''
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
    34
	privateIn:ProjectDefinition
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    35
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    36
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    37
!ProjectDefinition class methodsFor:'documentation'!
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    38
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    39
buildingMakefiles
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    40
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    41
    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
    42
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    43
    redefinable build-file attributes:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    44
        stcOptimizationOptions  -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    45
        stcWarningOptions       -> STCLOCALOPT
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    46
        localIncludes_unix      -> LOCALINCLUDES (Make.proto)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    47
        localIncludes_win32     -> LOCALINCLUDES (bc.mak)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    48
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    49
    for applications:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    50
        startupClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    51
        startupSelector
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    52
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    53
    for libraries:
12210
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
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    57
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    58
copyright
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    59
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    60
 COPYRIGHT (c) 2006 by eXept Software AG
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
    61
              All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    62
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    63
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    64
 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
    65
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    66
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    67
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    68
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    69
"
9714
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
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    72
documentation
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    73
"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    74
    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
    75
    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
    76
    compiled and included in a compiled class library just like any other class.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    77
    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
    78
    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
    79
    information and can generate makefiles and other build-support files for compilation.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    80
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    81
    Some special notes about extension methods:
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    82
    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
    83
    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
    84
    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
    85
    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
    86
    it has an overriding extension loaded).
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    87
    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
    88
    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
    89
    unloaded.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    90
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    91
"
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    92
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    93
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    94
!ProjectDefinition class methodsFor:'instance creation'!
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
    95
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    96
definitionClassForMonticelloPackage:aMonicelloPackagename
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    97
    ^ self definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    98
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
    99
    "
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   100
     self definitionClassForMonticelloPackage:'foobar'
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
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   104
definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:createIfAbsent
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   105
    ^ self allSubclasses
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   106
        detect:[:eachProjectDefinition |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   107
            eachProjectDefinition monticelloPackageName = aMonicelloPackagename ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   108
        ifNone:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   109
            |dfn squeakPackageInfo|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   110
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   111
            createIfAbsent ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   112
                dfn := ApplicationDefinition
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   113
                    definitionClassForPackage:'mc:',aMonicelloPackagename createIfAbsent:true projectType:GUIApplicationType.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   114
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   115
                "/ if the squeak-stuff is loaded, use it.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   116
                PackageInfo notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   117
                    squeakPackageInfo := PackageInfo allSubclasses
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   118
                                            detect:[:pi | pi new packageName = aMonicelloPackagename] ifNone:nil.
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
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   121
                squeakPackageInfo notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   122
                    dfn classNames:(squeakPackageInfo new classes collect:[:each | each name]).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   123
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   124
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   125
                nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   126
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   127
        ]
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   128
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   129
    "
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   130
     self definitionClassForMonticelloPackage:'foobar'
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   131
     self definitionClassForMonticelloPackage:'foobar' createIfAbsent:true
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   132
    "
13118
06c6d0c09bb2 changed: #definitionClassForMonticelloPackage:createIfAbsent:
Claus Gittinger <cg@exept.de>
parents: 13090
diff changeset
   133
06c6d0c09bb2 changed: #definitionClassForMonticelloPackage:createIfAbsent:
Claus Gittinger <cg@exept.de>
parents: 13090
diff changeset
   134
    "Modified: / 30-10-2010 / 00:26:07 / cg"
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   135
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   136
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   137
definitionClassForPackage:aPackageID
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   138
    ^ self definitionClassForPackage:aPackageID createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   139
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   140
    "Modified: / 17-08-2006 / 14:33:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   141
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   142
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   143
definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   144
    ^ self definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent projectType:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   145
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   146
    "Modified: / 23-08-2006 / 14:29:15 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   147
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   148
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   149
definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType:typeOrNil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   150
    |packageDefinitionClassName class|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   151
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
   152
    packageDefinitionClassName := self initialClassNameForDefinitionOf:aPackageID.
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   153
    class := Smalltalk classNamed:packageDefinitionClassName.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   154
    class isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   155
        doCreateIfAbsent ifTrue:[
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   156
            typeOrNil = GUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   157
                class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   158
            ] ifFalse:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   159
                typeOrNil = NonGUIApplicationType ifTrue:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   160
                    class := ApplicationDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   161
                ] ifFalse:[
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   162
                    class := LibraryDefinition newForPackage:aPackageID.
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   163
                ]
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
   164
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   165
            "setup before prerequisites are defined"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   166
            class setupForType:typeOrNil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   167
            "/ look what is there and include it; is this ok ?
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   168
            class compileDescriptionMethods
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   169
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   170
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   171
        typeOrNil notNil ifTrue:[
15371
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   172
            doCreateIfAbsent ifTrue:[
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   173
                class projectType == typeOrNil ifFalse: [
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   174
                    class setupForType:typeOrNil.
7b8fc09e7490 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15367
diff changeset
   175
                ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   176
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   177
        ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   178
    ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   179
    ^ class
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   180
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   181
    "Created: / 23-08-2006 / 14:29:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   182
    "Modified: / 23-08-2006 / 15:35:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   183
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   184
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   185
definitionClassForPackage:newProjectID projectType:typeOrNil createIfAbsent:createIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   186
    ^ (self definitionClassForType:typeOrNil)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   187
            definitionClassForPackage:newProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   188
            createIfAbsent:createIfAbsent
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   189
            projectType:typeOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   190
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   191
    "Created: / 23-08-2006 / 14:28:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   192
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   193
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   194
definitionClassForType: type
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   195
    "answer the class that describes a give project type"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   196
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   197
    (type = LibraryType) ifTrue:[ ^ LibraryDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   198
    (type = GUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   199
    (type = NonGUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   200
    (type = 'Application') ifTrue:[ ^ ApplicationDefinition ].     "/ temporary - for backward compat.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   201
    self error:'unknown project type'.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   202
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   203
    "Created: / 17-08-2006 / 14:46:28 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   204
    "Modified: / 23-08-2006 / 13:49:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   205
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   206
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   207
newForPackage:packageID
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   208
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   209
        newNamed:(self initialClassNameForDefinitionOf:packageID)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   210
        package:packageID.
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   211
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   212
    "Created: / 11-08-2006 / 14:27:19 / cg"
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
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   215
newNamed:newName package:packageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   216
    |newClass|
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   217
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   218
    "/ for now, we are strict.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   219
    self assert:(self initialClassNameForDefinitionOf:packageID) = newName.
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   220
    self assert:(self ~~ ProjectDefinition).  "ProjectDefinition is abstract"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   221
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   222
    newClass := self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   223
                    subclass:(newName asSymbol)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   224
                    instanceVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   225
                    classVariableNames:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   226
                    poolDictionaries:''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   227
                    category:(self defaultCategory).
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   228
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   229
    newClass package:packageID asSymbol.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   230
    ^ newClass
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   231
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   232
    "Created: / 09-08-2006 / 17:57:37 / fm"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   233
    "Modified: / 09-08-2006 / 19:27:53 / fm"
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   234
    "Modified: / 17-08-2006 / 17:24:23 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   235
! !
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   236
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   237
!ProjectDefinition class methodsFor:'accessing'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   238
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   239
directory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   240
    "for packageId compatibility"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   241
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   242
    ^ self moduleDirectory
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
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   245
     bosch_dapasx_datenbasis_Definition moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   246
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   247
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   248
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   249
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   250
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   251
     stx_goodies_xml_vw moduleDirectory
12575
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
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   254
    "Created: / 08-08-2006 / 20:25:39 / fm"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   255
    "Modified: / 18-08-2006 / 12:18:33 / cg"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   256
!
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   257
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   258
extensionsRevisionInfoForManager:managerOrNil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   259
    "return the revisionInfo object for my extensions for a particular source code manager.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   260
     Return nil, if there is either no manager, or I have no extensions"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   261
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   262
    |mgr versionMethod revString|
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   263
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   264
    (mgr := managerOrNil) isNil ifTrue:[
15603
7da6f15bd81c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15528
diff changeset
   265
        mgr := SourceCodeManagerUtilities sourceCodeManagerFor:self.
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   266
        mgr isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   267
            ^ nil
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
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   271
    versionMethod := mgr nameOfVersionMethodForExtensions.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   272
    (self class implements:versionMethod) ifFalse:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   273
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   274
    revString := self perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   275
    revString isNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   276
        ^ nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   277
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   278
    ^ mgr revisionInfoFromString:revString.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   279
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   280
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   281
     (stx_libcomp extensionsRevisionInfoForManager:nil) revision  
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   282
     (stx_libbasic extensionsRevisionInfoForManager:nil) 
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   283
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   284
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   285
    "Created: / 25-11-2011 / 14:34:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   286
!
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   287
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   288
initialClassNameForDefinitionOf:aPackageId
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   289
    "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
   290
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   291
    |s|
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   292
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   293
    s := aPackageId asString copy replaceAny:':/' with:$_.
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   294
    (s endsWith:$_) ifTrue:[
15164
0d122c4ad04a Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 15126
diff changeset
   295
        s := s copyButLast:1
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   296
    ].
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   297
    ^ s
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   298
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
   299
    "
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   300
     ProjectDefinition initialClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   301
     ProjectDefinition initialClassNameForDefinitionOf:'stx:libbasic' 
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' 
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
   304
     ProjectDefinition initialClassNameForDefinitionOf:'stx_goodies_xml' 
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
   305
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   306
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   307
    "Created: / 09-08-2006 / 17:44:47 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   308
    "Modified: / 11-08-2006 / 14:00:05 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   309
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   310
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   311
libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   312
    ^ self package asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   313
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   314
    "
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   315
     bosch_dapasx_datenbasis libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   316
     stx_libbasic3 libraryName
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   317
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   318
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   319
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   320
    "Modified: / 18-08-2006 / 12:36:45 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   321
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   322
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   323
libraryNameFor:aProjectID
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   324
    ^ aProjectID asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   325
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   326
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   327
     bosch_dapasx_datenbasis libraryName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   328
     stx_libbasic3 libraryNameFor:'stx:libbasic'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   329
     stx_libbasic3 libraryNameFor:'bosch:dapasx/datenbasis'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   330
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   331
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   332
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   333
    "Modified: / 18-08-2006 / 12:37:02 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   334
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   335
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   336
loadDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   337
    "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
   338
     return that directory. Otherwise return nil."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   339
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   340
    ^ self getAttribute:#projectDirectory
14577
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
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   343
loadDirectory:aDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   344
    "remember the directory from which I was loaded from"
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   345
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   346
    self setAttribute:#projectDirectory to:aDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   347
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   348
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   349
module
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   350
    ^ self moduleOfClass:self
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   351
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   352
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   353
       bosch_dapasx_datenbasis_Definition module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   354
       DapasX_Datenbasis module
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   355
       stx_libbasic3 module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   356
       stx_libbasic3 directory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   357
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   358
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   359
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   360
    "Modified: / 09-08-2006 / 16:16:37 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   361
    "Modified: / 17-08-2006 / 20:50:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   362
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   363
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   364
moduleDirectory
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   365
    ^ (PackageId from:self package) directory
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   366
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   367
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   368
     bosch_dapasx_datenbasis_Definition moduleDirectory
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   369
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   370
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   371
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   372
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   373
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   374
     stx_goodies_xml_vw moduleDirectory
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   375
     cg_demos_demo1 moduleDirectory 
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   376
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   377
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   378
    "Created: / 08-08-2006 / 20:25:39 / fm"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   379
    "Modified (comment): / 05-09-2012 / 10:07:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   380
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   381
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   382
moduleDirectoryFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   383
    ^ (aProjectID subStrings:$:) last
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   384
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   385
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   386
        bosch_dapasx_datenbasis_Definition moduleDirectory
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   387
        bosch_dapasx_parameter_system_Definition moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   388
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   389
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   390
    "Created: / 08-08-2006 / 20:25:39 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   391
    "Modified: / 17-08-2006 / 14:13:41 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   392
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   393
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   394
moduleDirectory_win32
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   395
    ^ (PackageId from:self package) directory copyReplaceAll:$/ with:$\
9891
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
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   398
     bosch_dapasx_datenbasis moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   399
     bosch_dapasx_parameter_system moduleDirectory_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   400
     stx_libbasic3 moduleDirectory_win32
9891
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
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   403
    "Created: / 14-09-2006 / 20:19:17 / cg"
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   404
!
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   405
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   406
moduleDirectory_win32For: projectID
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   407
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   408
    ^(self moduleDirectoryFor:projectID) copyReplaceAll:$/ with:$\
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   409
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   410
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   411
     self moduleDirectory_win32For: #'bosch:dapasx/pav_vergleich'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   412
     self moduleDirectory_win32For: #'stx:goodies/xml/stx'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   413
     self moduleDirectory_win32For: #'stx:libbasic2'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   414
    "
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   415
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   416
    "Modified: / 16-07-2013 / 19:47:24 / cg"
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   417
!
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   418
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   419
moduleFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   420
    ^ (aProjectID subStrings:$:) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   421
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   422
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   423
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   424
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   425
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   426
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   427
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   428
    "Modified: / 17-08-2006 / 14:13:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   429
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   430
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   431
moduleOfClass:aClass
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   432
    ^ self moduleFor:aClass package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   433
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   434
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   435
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   436
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   437
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   438
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   439
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   440
    "Modified: / 17-08-2006 / 14:13:51 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   441
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   442
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   443
monticelloPackageName
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   444
    "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
   445
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   446
    ^ nil
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   447
!
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   448
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   449
msdosPathToPackage:toPackageID from:fromPackageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   450
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   451
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
   452
    |parts1 parts2 common up down|
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   453
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   454
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   455
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   456
    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
   457
    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
   458
    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
   459
    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
   460
       down isEmpty ifTrue:[^ '.'].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   461
        ^ down.
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   462
    ].
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
   463
    down isEmpty ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   464
        ^ up.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   465
    ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   466
    ^ up, '\', down
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   467
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   468
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   469
     self msdosPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   470
     self msdosPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   471
     self msdosPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   472
     self msdosPathToPackage:'exept:expecco' from:'exept:expecco/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   473
     self msdosPathToPackage:'exept:expecco/application' from:'exept:expecco'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   474
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   475
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   476
    "Created: / 17-08-2006 / 14:26:39 / cg"
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   477
    "Modified: / 14-09-2006 / 22:04:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   478
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   479
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   480
packageDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   481
    "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
   482
     return that directory. 
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   483
     Otherwise ask Smalltalk for my package directory a long the package path."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   484
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   485
    |loadDirectory|
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   486
14586
4e6d15f5defc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14585
diff changeset
   487
    (loadDirectory := self loadDirectory) ifNotNil:[ ^ loadDirectory ].
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
   488
    ^ Smalltalk packageDirectoryForPackageId: self package
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   489
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   490
    "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
   491
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   492
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   493
packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   494
    "the last component"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   495
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   496
    ^ self packageNameFor: self package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   497
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   498
    "
10810
e62a55885c85 New: #allPreRequisitesSorted
Stefan Vogel <sv@exept.de>
parents: 10806
diff changeset
   499
     stx_libwidg2 packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   500
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   501
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   502
     bosch_dapasx_parameter_system packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   503
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   504
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   505
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   506
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   507
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   508
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   509
packageNameFor: aProjectID
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   510
    ^ (aProjectID asCollectionOfSubstringsSeparatedByAny:':/') last.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   511
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   512
    "
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   513
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   514
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   515
     bosch_dapasx_parameter_system packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   516
     cg_croquet packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   517
     stx_goodies_xml_vw packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   518
     stx_goodies_xml_vw packageDirectory
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   519
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   520
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   521
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   522
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   523
    "Modified: / 11-08-2006 / 14:02:32 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   524
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   525
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   526
parentProject
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   527
    ^ (self parentProjectFor: self package)
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   528
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   529
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   530
    bosch_dapasx_hw_schnittstellen_Definition  parentProject
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   531
    DapasX_Datenbasis parentProject
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   532
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   533
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   534
    "Created: / 07-08-2006 / 20:18:27 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   535
    "Modified: / 08-08-2006 / 10:47:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   536
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   537
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   538
parentProjectFor: aProjectID
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   539
    ^ (aProjectID subStrings: $/) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   540
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   541
"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
   542
    bosch_dapasx_hw_schnittstellen parentProject
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   543
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   544
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   545
    "Created: / 07-08-2006 / 20:18:27 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   546
    "Modified: / 08-08-2006 / 10:47:37 / fm"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
   547
    "Modified: / 23-08-2006 / 15:07:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   548
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   549
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   550
pathSeparator:platformName
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   551
    ^ platformName == #unix ifTrue:['/'] ifFalse:['\'].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   552
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   553
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   554
pathTo:aBaseFilename inPackage:aPackageID architecture:arch
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   555
    "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
   556
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   557
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   558
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   559
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   560
    p := self pathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   561
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   562
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   563
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   564
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   565
pathToPackage:toPackageID from:fromPackageID withSeparator:pathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   566
    "Returns the path to the package defined by aPackageID relative to my path"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   567
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   568
    |parts1 parts2 common up down rel oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   569
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   570
    oneUp := '..', pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   571
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   572
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   573
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   574
    common := parts1 commonPrefixWith:parts2.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   575
    common notEmpty ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   576
        up := ((1 to:parts1 size - common size) collect:[:p | oneUp]) asStringWith:''.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   577
        down := (parts2 copyFrom:common size+1) asStringWith:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   578
        (up isEmpty and:[down isEmpty]) ifTrue:[^ '.'].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   579
        ^ up , down
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   580
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   581
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   582
    rel := (self topRelativePathToPackage:toPackageID withSeparator:pathSeparator).
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   583
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   584
        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the separator remains
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   585
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   586
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   587
    ^ '$(TOP)', pathSeparator, oneUp, rel.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   588
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   589
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   590
     self pathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   591
     self pathToPackage:'stx:libbasic' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   592
     self pathToPackage:'bosch:dapasx/application' from:'stx:libbasic' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   593
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   594
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   595
    "Created: / 14-09-2006 / 15:21:10 / cg"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   596
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   597
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   598
pathToPackage:aPackageID withSeparator:pathSeparator
9850
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
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   601
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   602
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   603
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   604
        ^ self pathToPackage:aPackageID from:self package withSeparator:pathSeparator.
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   605
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   606
    rel := self topRelativePathToPackage:aPackageID withSeparator:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   607
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   608
        ^ '$(TOP)', (rel copyFrom:'stx/' size).   "keep the separator"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   609
    ] ifFalse:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   610
        ^ '$(TOP)', pathSeparator, '..', pathSeparator, rel
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   611
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   612
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   613
    "
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   614
     exept_expecco_application pathToPackage:'exept:expecco/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   615
     exept_expecco_application pathToPackage:'exept:expecco/report' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   616
     stx_libbasic pathToPackage:'exept:expecco/application' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   617
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   618
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   619
    "Modified: / 16-08-2006 / 18:55:41 / User"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   620
    "Created: / 14-09-2006 / 13:21:23 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   621
    "Modified: / 14-09-2006 / 15:23:59 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   622
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   623
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   624
pathToTopFor:aProjectID withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   625
    "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"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   626
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   627
    |parts oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   628
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   629
    oneUp := '..', aPathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   630
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   631
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   632
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   633
    parts first = 'stx' ifTrue:[
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   634
        parts size == 1 ifTrue:[^ ''].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   635
        ^ (((2 to:parts size-1) collect:[:p | oneUp]) asStringWith:'') , '..'
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   636
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   637
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   638
    ^ ((parts collect:[:p | oneUp]) asStringWith:'') , 'stx'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   639
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   640
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   641
     self pathToTopFor: #'exept' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   642
     self pathToTopFor: #'exept:expecco' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   643
     self pathToTopFor: #'exept:expecco/application' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   644
     self pathToTopFor: #'stx' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   645
     self pathToTopFor: #'stx:libview' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   646
     self pathToTopFor: #'stx:goodies/foo' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   647
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   648
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   649
    "Created: / 14-09-2006 / 14:59:53 / cg"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   650
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   651
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   652
pathToTopWithSeparator:aPathSeparator
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   653
    "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
   654
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   655
    ^ self pathToTopFor:self package withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   656
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   657
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   658
     exept_expecco_application pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   659
     stx_libbasic pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   660
     stx_goodies_xml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   661
     stx_libhtml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   662
     stx_goodies_refactoryBrowser_changes pathToTopWithSeparator:'\'
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   663
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   664
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   665
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   666
    "Modified: / 14-09-2006 / 15:01:47 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   667
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   668
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   669
projectIsLoaded
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   670
    "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
   671
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   672
    projectIsLoaded isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   673
        projectIsLoaded := false.
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   674
    ].
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   675
    ^ projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   676
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   677
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   678
      stx_libbasic projectIsLoaded
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   679
      (ProjectDefinition definitionClassForPackage:#'stx:libbasic') projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   680
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   681
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   682
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   683
projectIsLoaded:aBoolean
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   684
    projectIsLoaded := aBoolean.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   685
    aBoolean ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   686
        "register myself as dependent - I want to get notified on method changes"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   687
        self class addDependent:self.
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   688
        self postLoadAction.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   689
        self executeHooks: #postLoad.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   690
    ].
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   691
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   692
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   693
topRelativePathTo:aBaseFilename inPackage:aPackageID architecture:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   694
    "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
   695
     and adding for each one '../' to get the ST/X top directory"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   696
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   697
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   698
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   699
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   700
    p := self topRelativePathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   701
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   702
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   703
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   704
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   705
topRelativePathToPackage:aPackageID withSeparator:aDirectorySeparator
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   706
    "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
   707
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   708
    ^ aPackageID asString copyReplaceAny:':/' with:aDirectorySeparator first
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   709
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   710
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   711
     self topRelativePathToPackage:'stx:goodies/xml' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   712
     self topRelativePathToPackage:'bosch:dapasx/kernel' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   713
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   714
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   715
    "Created: / 14-09-2006 / 13:20:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   716
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   717
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   718
!ProjectDefinition class methodsFor:'accessing - coverage'!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   719
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   720
excludedFromCoverage
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   721
    "List of classes and/or methods excluded from coverage report.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   722
     Entries maybe ClassName or #(ClassName selector)
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   723
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   724
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   725
     in #Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   726
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   727
    ^ #()
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   728
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   729
    "Created: / 28-06-2013 / 02:11:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   730
    "Modified (comment): / 28-06-2013 / 11:25:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   731
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   732
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   733
excludedFromCoverage: aMethod
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   734
    "Return true if given method should be excluded from coverage
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   735
     info. This method may be overridden automagically omit methods
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   736
     matching some criteria.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   737
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   738
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   739
     in Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   740
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   741
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   742
    ^false
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   743
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   744
    "Created: / 28-06-2013 / 02:14:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   745
    "Modified (comment): / 28-06-2013 / 11:25:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   746
! !
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   747
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
   748
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
   749
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   750
!ProjectDefinition class methodsFor:'accessing - packaging'!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   751
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   752
classNames:aCollectionOfClassNames
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   753
    "set the set of classes"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   754
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   755
    self classNamesAndAttributes:aCollectionOfClassNames usingCompiler:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   756
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   757
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   758
classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   759
    "set the set of classes. and attributes
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   760
     Because this requires compilation of my classList-method, a compiler can be passed in,
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   761
     which has to do the job.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   762
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   763
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   764
    |oldSpec newCode|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   765
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   766
    oldSpec := self classNamesAndAttributes.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   767
    newSpec = oldSpec ifTrue: [^ self].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   768
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   769
    newCode := self classNamesAndAttributes_codeFor:newSpec.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   770
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   771
    self compile:newCode categorized:'description - contents' using:compilerOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   772
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   773
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   774
excludeClasses:toExclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   775
    "exclude (remove from classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   776
     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
   777
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   778
     (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
   779
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   780
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   781
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   782
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   783
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   784
    toExclude do:[:eachClassToExclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   785
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   786
        className := eachClassToExclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   787
        (self allClassNames includes:className) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   788
            |idx|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   789
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   790
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   791
            idx ~~ 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   792
                newSpec := newSpec copyWithoutIndex:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   793
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   794
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   795
    ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   796
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   797
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   798
    "Created: / 30-08-2007 / 18:28:28 / cg"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   799
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   800
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   801
excludeMethodFor:selector inClassNamed:className usingCompiler:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   802
    "exclude (remove from extensionList) a method by name.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   803
     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
   804
     which has to do the job.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   805
     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
   806
     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
   807
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   808
    |oldSpec newSpec newCode idx|
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   809
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   810
    oldSpec := self extensionMethodNames.
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   811
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   812
    idx := (1 to:oldSpec size-1 by:2) 
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   813
                detect:[:i |
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   814
                    ((oldSpec at:i) = className)
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   815
                    and:[ (oldSpec at:i+1) = selector ]]
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   816
                ifNone:[ ^ self ].
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   817
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   818
    "/ attention: there are two spec-elements per method
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
   819
    newSpec := oldSpec copyWithoutIndex:idx toIndex:idx+1.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   820
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   821
    newCode := self extensionMethodNames_code_For:newSpec.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   822
    self compile:newCode categorized:'description - contents' using:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   823
!
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   824
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   825
excludeMethods:toRemove usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   826
    "exclude (remove from extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   827
     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
   828
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   829
     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
   830
     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
   831
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   832
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   833
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   834
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   835
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   836
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   837
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   838
    toRemove do:[:eachMethodToRemove |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   839
        |className selector idx|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   840
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   841
        (extensionMethods includes:eachMethodToRemove) ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   842
            className := eachMethodToRemove mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   843
            selector := eachMethodToRemove selector.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   844
            idx := (1 to:newSpec size-1 by:2) 
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   845
                        detect:[:i |
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   846
                            ((newSpec at:i) = className)
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   847
                            and:[ (newSpec at:i+1) = selector ]]
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   848
                        ifNone:nil.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   849
            idx notNil ifTrue:[
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   850
                "/ attention: there are two spec-elements per method
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   851
                newSpec := newSpec removeFromIndex:idx toIndex:idx+1
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   852
            ]
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   853
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   854
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   855
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   856
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   857
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   858
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   859
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   860
includeClasses:toInclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   861
    "include (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   862
     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
   863
     which has to do the job.
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   864
     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
   865
     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
   866
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   867
    |oldSpec newSpec|
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   868
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   869
    oldSpec := self classNamesAndAttributes.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   870
    newSpec := oldSpec copy.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   871
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   872
    toInclude do:[:eachClassToInclude |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   873
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   874
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   875
        className := eachClassToInclude theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   876
        (self compiled_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   877
            | idx entry|
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 := oldSpec 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 copyWith:(Array with:className)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   882
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   883
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   884
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   885
                    entry := entry copyWithout:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   886
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   887
                newSpec at:idx put:entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   888
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   889
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   890
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   891
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   892
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   893
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   894
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   895
includeMethods:toInclude usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   896
    "include (add to extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   897
     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
   898
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   899
     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
   900
     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
   901
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   902
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   903
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   904
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   905
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   906
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   907
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   908
    toInclude do:[:eachMethodToInclude |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   909
        (extensionMethods includes:eachMethodToInclude) ifFalse:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   910
            newSpec := newSpec copyWith:eachMethodToInclude mclass name.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   911
            newSpec := newSpec copyWith:eachMethodToInclude selector.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   912
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   913
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   914
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   915
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   916
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   917
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
   918
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   919
makeClassesAutoloaded:toMakeAutoloaded usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   920
    "include as autoloaded (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   921
     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
   922
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   923
     (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
   924
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   925
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   926
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   927
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   928
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   929
    toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   930
        |className|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   931
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   932
        className := eachClassToMakeAutoloaded theNonMetaclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   933
        (self autoloaded_classNames includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   934
            |idx entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   935
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   936
            idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   937
            idx == 0 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   938
                newSpec := newSpec copyWith:(Array with:className with:#autoload)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   939
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   940
                entry := newSpec at:idx.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   941
                entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   942
                    entry := (entry copyWithout:#autoload) copyWith:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   943
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   944
                    entry := Array with:entry with:#autoload
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   945
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   946
                newSpec at:idx put:entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   947
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
   948
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   949
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   950
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   951
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   952
!
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   953
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   954
updateContentsMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   955
    "regenerate the contents-describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   956
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   957
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   958
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   959
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   960
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   961
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   962
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   963
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   964
        do:[
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   965
            self 
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   966
                forEachContentsMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   967
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   968
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   969
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   970
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   971
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   972
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   973
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   974
        ].
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   975
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   976
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   977
updateExtensionMethodNamesUsingCompiler:compilerOrNil
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   978
    "set the set of extension methods
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   979
     Because this requires compilation of my extensionMethodNames-method, 
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   980
     a compiler can be passed in, which has to do the job.
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   981
     (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
   982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   983
    |newCode|
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   984
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
   985
    newCode := self extensionMethodNames_code.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   986
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   987
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   988
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   989
updateMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   990
    "regenerate the all contents- plus version describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   991
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   992
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   993
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   994
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   995
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   996
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   997
    Class packageQuerySignal
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   998
        answer:self package
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
   999
        do:[
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1000
            self 
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1001
                forEachMethodsCodeToCompileDo:
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1002
                    [:code :category |
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1003
                        (compilerOrNil ? self theMetaclass compilerClass)
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1004
                            compile:code
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1005
                            forClass:self theMetaclass
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1006
                            inCategory:category.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1007
                    ]
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1008
                ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1009
        ].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1010
! !
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1011
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1012
!ProjectDefinition class methodsFor:'accessing - tests'!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1013
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1014
excludedFromTestSuite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1015
    "List of testcases and/or tests excluded from testsuite.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1016
     Entries maybe ClassName or #(ClassName testName)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1017
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1018
    ^ #()
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1019
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1020
    "Created: / 03-06-2011 / 16:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1021
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1022
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1023
testSuite
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1024
    "generate and return a testSuite containing all of my test-classes"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1025
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1026
    |suite classes|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1027
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1028
    suite := TestSuite named:self package.
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1029
    classes := self classes
14877
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1030
                select:[:each |
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1031
                    [
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1032
                    each isLoaded ifFalse:[each autoload].
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1033
                    (each isTestCaseLike) and:[ each isAbstract not ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1034
                    ] on: Autoload autoloadFailedSignal do:[
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1035
                        false
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1036
                    ]
0e4127d94963 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14866
diff changeset
  1037
                ].
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1038
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1039
    classes := classes asSortedCollection:[:a :b | a name <= b name ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1040
    classes do: [:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1041
        | tests |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1042
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1043
        tests := eachClass suite tests.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1044
        tests := tests reject:[:test|self shouldExcludeTest: test].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1045
        suite addTests: tests
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1046
    ].
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1047
    ^ suite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1048
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1049
    "Created: / 01-04-2011 / 15:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1050
    "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
  1051
    "Modified: / 08-08-2011 / 14:59:45 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1052
! !
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1053
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1054
!ProjectDefinition class methodsFor:'class initialization'!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1055
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1056
initialize
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1057
    AccessLock isNil ifTrue:[
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1058
        LibraryType := #Library.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1059
        GUIApplicationType := #'GUI-Application'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1060
        NonGUIApplicationType := #'NonGUI-Application'.
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1061
        FolderForSubApplicationsType := #'Folder for Subapplications'.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1062
        AccessLock := Semaphore forMutualExclusion name:'ProjectDefinition Lock'.
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1063
        Verbose := false.
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  1064
        PackagesBeingLoaded := Set new.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1065
    ].
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1066
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1067
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1068
     self initialize
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1069
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1070
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1071
    "Modified: / 18-08-2011 / 13:48:31 / cg"
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1072
!
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1073
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1074
initializeAllProjectDefinitions
16179
7acaf638974b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16163
diff changeset
  1075
    "tells all already loaded project definition classes that they are loaded
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1076
     (i.e. calls postLoadAction).
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1077
     This needs everything else (especially the compiler etc.) to be initialized.
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1078
     Therefore, it's not invoked by the projDef's #initialize, 
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1079
     but instead explicitely, by Smalltalk as a late step in the startup."
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1080
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1081
    |isStandAloneApp|
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1082
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1083
    isStandAloneApp := Smalltalk isStandAloneApp.
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1084
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1085
    self allSubclassesDo:[:eachProjectDefinitionClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1086
        eachProjectDefinitionClass isAbstract ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1087
            isStandAloneApp ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1088
                eachProjectDefinitionClass installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1089
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1090
            eachProjectDefinitionClass projectIsLoaded:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1091
        ]
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1092
    ].
10115
a43005ac7423 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10114
diff changeset
  1093
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1094
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1095
     self initialize
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1096
    "
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1097
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1098
    "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
  1099
!
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1100
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1101
installAutoloadedClasses
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1102
    "install all of my autoloaded classes (if any)"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1103
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1104
    |classesToFixClassFileName|
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1105
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1106
    classesToFixClassFileName := OrderedCollection new.
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1107
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1108
    self autoloaded_classNames do:[:className |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1109
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1110
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1111
        "/ 'install as autoloaded: ' errorPrint. className errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1112
        (cls := Smalltalk classNamed:className) isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1113
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1114
                (self name,' [warning]: failed to install autoloaded: ',className) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1115
                (self name,' [info]: reason: ',ex description) errorPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1116
                "/ thisContext fullPrintAll.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1117
            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1118
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1119
                    installAutoloadedClassNamed:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1120
                    category:'* as yet unknown category *'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1121
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1122
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1123
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1124
            cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1125
                classesToFixClassFileName add:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1126
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1127
        ].
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1128
    ].
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1129
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1130
    Smalltalk addStartBlock:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1131
        |abbrevs|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1132
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1133
        abbrevs := self abbrevs.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1134
        "/ patch the classFileNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1135
        classesToFixClassFileName do:[:cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1136
            |entry classFilenameFromAbbreviations|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1137
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1138
            entry := abbrevs at:cls name ifAbsent:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1139
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1140
                classFilenameFromAbbreviations := entry fileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1141
                classFilenameFromAbbreviations notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1142
                    classFilenameFromAbbreviations := classFilenameFromAbbreviations,'.st'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1143
                    (classFilenameFromAbbreviations ~= cls getClassFilename) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1144
                        cls setClassFilename:classFilenameFromAbbreviations
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1145
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1146
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1147
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1148
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1149
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1150
        "/ patch the categories
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1151
        Class withoutUpdatingChangesDo:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1152
            |entry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1153
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1154
            self classNames do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1155
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1156
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1157
                ((cls := Smalltalk at: nm) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1158
                        and:[ cls isLoaded not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1159
                        and:[ (entry := abbrevs at:cls name ifAbsent:[nil]) notNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1160
                ]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1161
                    cls category: (entry category)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1162
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1163
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1164
        ]
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1165
    ].
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1166
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1167
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1168
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1169
     stx_libbasic installAutoloadedClasses
12268
b3cd2af642f2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 12264
diff changeset
  1170
     stx_libhtml installAutoloadedClasses
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1171
     stx_libtool2 installAutoloadedClasses
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1172
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1173
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1174
    "Created: / 23-10-2006 / 16:02:12 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1175
    "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
  1176
    "Modified: / 20-08-2011 / 23:32:32 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1177
! !
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1178
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1179
!ProjectDefinition class methodsFor:'code generation'!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1180
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1181
applicationIconFileName_code
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1182
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1183
        s nextPutLine:'applicationIconFileName'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1184
        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
  1185
        s cr;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1186
        nextPutLine:'    ^ nil';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1187
        nextPutLine:'    "/ ^ self applicationName'.
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1188
    ].
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1189
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1190
    "
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1191
     self applicationIconFileName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1192
     stx_libbasic3 applicationIconFileName_code
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1193
    "
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1194
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1195
    "Created: / 18-08-2006 / 16:21:01 / cg"
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1196
!
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1197
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1198
classNamesAndAttributes_codeFor:aSpecArray
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1199
    "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
  1200
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1201
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1202
        s nextPutLine:'classNamesAndAttributes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1203
        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
  1204
        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
  1205
        s nextPutLine:'     or an array-literal consisting of class name and attributes.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1206
        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
  1207
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1208
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1209
        s nextPutLine:'        "<className> or (<className> attributes...) in load order"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1210
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1211
        (self classNamesAndAttributesFromSpecArray:aSpecArray) do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1212
            s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1213
            entry storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1214
            s cr.
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
        s nextPutLine:'    )'
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1217
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1218
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1219
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1220
     stx_libbasic3 classNamesAndAttributes_codeFor:(stx_libbasic3 classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1221
     exept_expecco classNamesAndAttributes_codeFor:(exept_expecco classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1222
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1223
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1224
    "Modified: / 08-08-2006 / 19:24:34 / fm"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1225
    "Created: / 19-02-2007 / 15:43:27 / cg"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1226
!
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1227
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1228
classNamesAndAttributes_code_ignoreOldEntries:ignoreOldEntries ignoreOldDefinition:ignoreOldDefinition
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1229
    "generate method code returning all classes of the project.
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1230
     Platform attributes are kept from the old definition.
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1231
     If ignoreOldEntries is true, the list is completely recreated;
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1232
     if false, existing entries are preserved.
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1233
     If ignoreOldDefinition is true, the autoload attribute is set/reset if
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1234
     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
  1235
     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
  1236
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1237
    |newSpec oldSpec ignored|
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1238
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1239
    oldSpec := self classNamesAndAttributesAsSpecArray.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1240
    ignored := self ignoredClassNames asSet.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1241
    newSpec := OrderedCollection new.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1242
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1243
    ignoreOldEntries ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1244
        oldSpec do:[:oldEntry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1245
            |newEntry className cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1246
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1247
            newEntry := oldEntry copy.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1248
            className := newEntry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1249
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1250
            (ignored includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1251
                cls := Smalltalk classNamed:className.
14354
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1252
                cls notNil ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1253
                    ignoreOldDefinition ifTrue:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1254
                        cls isLoaded ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1255
                            (newEntry includes:#autoload) ifFalse:[
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1256
                                newEntry := newEntry copyWith:#autoload.
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1257
                            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1258
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1259
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1260
                    "JV @ 2010-06-19
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1261
                     Force merge default class attributes with existing ones"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1262
                    newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1263
                    newSpec add:newEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1264
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1265
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1266
        ].
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1267
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1268
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1269
    self searchForClasses do:[:eachClass |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1270
        |className attributes oldSpecEntry oldAttributes newEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1271
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1272
        className := eachClass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1273
        (ignored includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1274
            oldSpecEntry := oldSpec detect:[:entry | entry first = className] ifNone:nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1275
14354
4a571b9eb43c changed: #classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition:
Stefan Vogel <sv@exept.de>
parents: 14351
diff changeset
  1276
            (ignoreOldEntries or:[oldSpecEntry isNil]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1277
                (eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1278
                    (self additionalClassNamesAndAttributes includes:className) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1279
                        (oldSpecEntry size > 1) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1280
                            oldAttributes := oldSpecEntry copyFrom:2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1281
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1282
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1283
                        ignoreOldDefinition ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1284
                            "take autoload attribute from classes state in the image"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1285
                            oldAttributes notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1286
                                attributes := oldAttributes copyWithout:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1287
                            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1288
                                attributes := #()
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1289
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1290
                            eachClass isLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1291
                                attributes := attributes copyWith:#autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1292
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1293
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1294
                            "keep any existing attribute"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1295
                            oldAttributes notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1296
                                attributes := oldAttributes.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1297
                            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1298
                                attributes := eachClass isLoaded ifTrue:[ #() ] ifFalse:[ #(autoload) ].
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
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1301
                        "JV @ 2010-06-19
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1302
                         Support fo additional class attributes and programming language attribute"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1303
                        attributes := self mergeDefaultClassAttributesFor: eachClass with: attributes.
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
                        newEntry := Array with:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1306
                        attributes notEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1307
                            newEntry := newEntry , attributes.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1308
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1309
                        newSpec add:newEntry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1310
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1311
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1312
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1313
        ]
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1314
    ].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1315
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1316
    ^ self classNamesAndAttributes_codeFor:newSpec
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1317
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1318
    "
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1319
     stx_libbasic3 classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1320
     exept_expecco classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1321
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1322
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1323
    "Modified: / 08-08-2006 / 19:24:34 / fm"
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1324
    "Created: / 10-10-2006 / 22:00:50 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1325
    "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
  1326
    "Modified: / 06-09-2011 / 07:48:52 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1327
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1328
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1329
companyName_code
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1330
    ^ self companyName_codeFor:self companyName
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1331
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1332
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1333
     self companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1334
     stx_libbasic3 companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1335
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1336
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1337
    "Created: / 18-08-2006 / 16:20:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1338
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1339
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1340
companyName_codeFor:aString
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1341
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1342
        s nextPutLine:'companyName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1343
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #companyName) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1344
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1345
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1346
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1347
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1348
     self companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1349
     stx_libbasic3 companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1350
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1351
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1352
    "Created: / 18-08-2006 / 16:20:42 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1353
    "Modified: / 05-03-2014 / 17:00:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1354
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1355
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1356
compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1357
    (self isLibraryDefinition
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1358
    or:[ self isApplicationDefinition ] ) ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1359
        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
  1360
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1361
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1362
    self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1363
        forEachMethodsCodeToCompileDo:[:code :category |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1364
            self compile:code categorized:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1365
        ].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1366
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1367
"/    self instAndClassMethodsDo:[:m | m package:self package].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1368
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1369
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1370
     DapasXProject compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1371
     DapasX_Datenbasis compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1372
     bosch_dapasx_interactiver_editor compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1373
     stx_libbasic compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1374
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1375
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1376
    "Created: / 09-08-2006 / 18:00:31 / fm"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1377
    "Modified: / 05-09-2006 / 13:46:29 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1378
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1379
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1380
description_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1381
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1382
        s nextPutLine:'description'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1383
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #description) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1384
        s cr; nextPutLine:'    ^ ',self description asString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1385
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1386
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1387
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1388
     self description_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1389
     stx_libbasic3 description_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1390
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1391
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1392
    "Created: / 17-08-2006 / 21:24:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1393
    "Modified: / 18-08-2006 / 16:16:24 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1394
    "Modified: / 05-03-2014 / 17:00:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1395
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1396
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1397
effectiveSubProjects
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1398
    "get the subProjects, that are not excluded"
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1399
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1400
    |subProjects|
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1401
15879
6b1d22b969d8 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15764
diff changeset
  1402
    subProjects := self subProjects asNewOrderedSet.
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1403
    subProjects
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1404
        addAll:self includedInSubProjects;
15026
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1405
        removeAllFoundIn:self excludedFromSubProjects;
03842e0011b1 Refactoring:
Stefan Vogel <sv@exept.de>
parents: 15024
diff changeset
  1406
        remove:self package ifAbsent:[].
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1407
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1408
    ^ subProjects
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1409
!
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1410
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1411
excludedFromPreRequisites_code
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1412
    "generate the code of the #excludedFromPreRequisites method"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1413
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1414
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1415
        s nextPutLine:'excludedFromPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1416
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #excludedFromPreRequisites) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1417
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1418
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1419
        s nextPutLine:'    )'
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1420
    ].
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1421
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1422
    "Modified: / 05-03-2014 / 17:00:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1423
!
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1424
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1425
extensionMethodNames_code
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1426
    ^ self extensionMethodNames_code_ignoreOldEntries:true
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1427
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1428
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1429
     self extensionMethodNames_code
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1430
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1431
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1432
    "Created: / 17-08-2006 / 21:21:48 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1433
    "Modified: / 10-10-2006 / 22:02:42 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1434
!
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1435
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1436
extensionMethodNames_code_For:extensionMethodNames
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1437
    ^ String streamContents:[:s |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1438
        |spec|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1439
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1440
        s nextPutLine:'extensionMethodNames'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1441
        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
  1442
        s nextPutLine:'     Entries are pairwise elements, consisting of class-name and selector."'.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1443
        s nextPutLine:''.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1444
        s nextPutLine:'    ^ #('.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1445
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1446
        spec := extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1447
        spec do:[:entry |
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1448
            |mclassName mselector|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1449
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1450
            mclassName := entry key asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1451
            (mclassName endsWith:' class') ifTrue:[
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1452
                mclassName := mclassName asString.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1453
            ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1454
            mselector := entry value asSymbol.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1455
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1456
            s spaces:8.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1457
            mclassName storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1458
            s space.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1459
            mselector storeArrayElementOn:s.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1460
            s cr.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1461
        ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1462
        s nextPutLine:'    )'
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1463
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1464
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1465
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1466
extensionMethodNames_code_ignoreOldEntries:ignoreOldEntries
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1467
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1468
        |oldSpec|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1469
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1470
        s nextPutLine:'extensionMethodNames'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1471
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #extensionMethodNames) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1472
        s nextPutLine:''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1473
        s nextPutLine:'    ^ #('.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1474
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1475
        oldSpec := self extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1476
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1477
        ignoreOldEntries ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1478
            oldSpec do:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1479
                |mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1480
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1481
                mclassName := entry key asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1482
                (mclassName endsWith:' class') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1483
                    mclassName := mclassName asString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1484
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1485
                mselector := entry value asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1486
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1487
                s spaces:8.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1488
                mclassName storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1489
                s space.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1490
                mselector storeArrayElementOn:s.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1491
                s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1492
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1493
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1494
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1495
        self searchForExtensions do:[:eachMethod |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1496
            |attributes oldSpecEntry mclassName mselector|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1497
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1498
            mclassName := eachMethod mclass name.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1499
            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
  1500
            "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
  1501
             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
  1502
             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
  1503
             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
  1504
            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
  1505
                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
  1506
                (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
  1507
                    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
  1508
                    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
  1509
                    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
  1510
                    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
  1511
                    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
  1512
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  1513
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1514
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1515
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1516
        s nextPutLine:'    )'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1517
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1518
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1519
    "
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1520
     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
  1521
     stx_libjava extensionMethodNames_code_ignoreOldEntries:false
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1522
     stx_libtool extensionMethodNames_code_ignoreOldEntries:true
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1523
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1524
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1525
    "Created: / 10-10-2006 / 22:02:36 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1526
    "Modified: / 23-10-2006 / 11:07:29 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1527
    "Modified: / 05-03-2014 / 17:00:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1528
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1529
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1530
forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1531
    "generate code for each contents-specifying method
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1532
     (classesAndAttributes, extensionMethodNames, etc.),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1533
     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
  1534
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1535
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1536
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1537
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1538
        value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1539
        value:'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1540
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1541
    aTwoArgBlock
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1542
        value: (self extensionMethodNames_code_ignoreOldEntries:ignoreOldDefinition)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1543
        value: 'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1544
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1545
    aTwoArgBlock
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1546
        value: self mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1547
        value: 'description'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1548
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1549
    aTwoArgBlock
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1550
        value: self referencedPreRequisites_code
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1551
        value: 'description'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1552
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1553
    ((self class includesSelector:#excludedFromPreRequisites) not or:[ignoreOldDefinition]) ifTrue:[
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1554
        aTwoArgBlock
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1555
            value: self excludedFromPreRequisites_code
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1556
            value: 'description'.
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1557
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1558
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1559
    "/ JV:  No, subProjects **should not** be automatically generated.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1560
    "/      Remember, they are not required to be loaded!! So, generate
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1561
    "/      subProjects only if there's no such method yet.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1562
    (self class methodDictionary includesKey: #subProjects) ifFalse:[
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1563
        aTwoArgBlock
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1564
            value: self subProjects_code
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1565
            value: 'description'.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1566
    ].
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1567
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1568
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1569
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1570
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1571
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1572
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1573
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1574
    "Modified: / 25-11-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1575
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1576
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1577
forEachMethodsCodeToCompileDo:aTwoArgBlock
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1578
    "update code for each method (contents plus version info),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1579
     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
  1580
     New items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1581
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1582
    self forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:false
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1583
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1584
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1585
forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1586
    "generate code for each method (contents plus version info),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1587
     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
  1588
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1589
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1590
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1591
    self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1592
        forEachContentsMethodsCodeToCompileDo:aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1593
        ignoreOldDefinition:ignoreOldDefinition.
10013
c6cd8f035693 pretty format of generated methods
Stefan Vogel <sv@exept.de>
parents: 10011
diff changeset
  1594
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1595
    "/  code like:
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1596
    "/
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1597
    "/ (self class includesSelector:#productName) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1598
    "/     aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1599
    "/         value: self productName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1600
    "/         value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1601
    "/ ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1602
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1603
    #(
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1604
        (productName productName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1605
        (description description_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1606
        (companyName companyName_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1607
        (legalCopyright legalCopyright_code)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1608
    ) pairsDo:[:selector :codeMethodSelector |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1609
        (self class includesSelector:selector) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1610
            aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1611
                value: (self perform:codeMethodSelector)
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1612
                value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1613
        ].
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1614
    ].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1615
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1616
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1617
        aTwoArgBlock
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1618
            value: self monticelloTimestamps_code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1619
            value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1620
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1621
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1622
    "Created: / 18-08-2006 / 16:22:37 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1623
    "Modified: / 09-11-2010 / 18:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1624
    "Modified: / 21-12-2011 / 16:42:41 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1625
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1626
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1627
legalCopyright_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1628
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1629
        s nextPutLine:'legalCopyright'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1630
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #legalCopyright) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1631
        s cr; nextPutLine:'    ^ ', self legalCopyright storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1632
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1633
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1634
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1635
     self legalCopyright_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1636
     stx_libbasic3 legalCopyright_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1637
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1638
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1639
    "Created: / 18-08-2006 / 16:21:01 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1640
    "Modified: / 05-03-2014 / 17:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1641
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1642
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1643
mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1644
    "generate the code of the #mandatoryPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1645
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1646
    |preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1647
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1648
    preRequisites := self searchForPreRequisites first.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1649
    preRequisites removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1650
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1651
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1652
        s nextPutLine:'mandatoryPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1653
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #mandatoryPreRequisites) comment; nextPutLine:'"'.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1654
        s nextPutLine:''.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1655
        s nextPutLine:'    ^ #('.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1656
        preRequisites keys asSortedCollection do:[:eachPackageID |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1657
            |reason|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1658
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1659
            s spaces:8.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1660
            eachPackageID asSymbol storeOn:s.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1661
            reason := preRequisites at:eachPackageID ifAbsent:nil.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1662
            reason notEmptyOrNil ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1663
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPutAll:' "'.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1664
            ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1665
            s cr.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1666
        ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1667
        s nextPutLine:'    )'
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1668
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1669
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1670
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1671
     demo_demoApp1 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1672
     stx_libbasic3 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1673
     stx_libtool2 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1674
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1675
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1676
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1677
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1678
    "Modified: / 09-10-2006 / 14:27:20 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1679
    "Modified: / 05-03-2014 / 17:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1680
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1681
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1682
productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1683
    ^ String streamContents:[:s |
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1684
        s nextPutLine:'productInstallDirBaseName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1685
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productInstallDirBaseName) comment; nextPutLine:'"'.
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1686
        s cr;
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1687
        nextPutLine:'    ^ (self package asCollectionOfSubstringsSeparatedByAny:'':/'') last'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1688
    ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1689
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1690
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1691
     self productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1692
     stx_libbasic3 productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1693
     stx_clients_Clock_QlockTwoWatchApplication productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1694
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1695
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1696
    "Created: / 21-12-2011 / 16:38:11 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1697
    "Modified: / 05-03-2014 / 17:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1698
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1699
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1700
productName_code
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1701
    ^ self productName_codeFor:(self productName)
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1702
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1703
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1704
     self productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1705
     stx_libbasic3 productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1706
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1707
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1708
    "Created: / 18-08-2006 / 16:14:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1709
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1710
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1711
productName_codeFor:aString
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1712
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1713
        s nextPutLine:'productName'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1714
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productName) comment; nextPutLine:'"'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1715
        s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1716
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1717
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
     self productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1720
     stx_libbasic3 productName_code
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
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1723
    "Created: / 18-08-2006 / 16:14:19 / cg"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1724
    "Modified: / 05-03-2014 / 17:00:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1725
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1726
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1727
referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1728
    "generate the code of the #referencedPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1729
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1730
    |preRequisitesColl preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1731
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1732
    preRequisitesColl := self searchForPreRequisites.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  1733
    preRequisites := preRequisitesColl second.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1734
    preRequisites 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1735
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1736
        removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1737
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1738
    ^ String streamContents:[:s |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1739
        s nextPutLine:'referencedPreRequisites'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1740
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #referencedPreRequisites) comment; nextPutLine:'"'.
14843
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 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1759
     stx_libbasic3 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1760
     stx_libtool2 referencedPreRequisites_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"
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1766
    "Modified: / 05-03-2014 / 17:00:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1767
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1768
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1769
subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1770
    "generate the code of the #subProjects method.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1771
     Returns nil if no such code is needed (because there are none)"
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1772
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1773
    ^ String streamContents:[:s |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1774
        s nextPutLine:'subProjects'.
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1775
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #subProjects) comment; nextPutLine:'"'.
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1776
        s nextPutLine:''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1777
        s nextPutLine:'    ^ #('.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1778
        ProjectDefinition allSubclassesDo:[:each |
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1779
            (each package startsWith:(self package,'/')) ifTrue:[
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1780
                s nextPutLine:'        #''',each package,''''.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1781
            ]
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1782
        ].
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1783
        s nextPutLine:'    )'
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1784
    ].
16222
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1785
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1786
    "Modified: / 05-03-2014 / 17:00:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1787
!
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1788
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1789
svnRevisionNr_code: revisionNrOrNil
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1790
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1791
        s nextPutLine:'svnRevisionNr'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1792
        s nextPutLine:'    "Return a SVN revision number of myself.'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1793
        s nextPutLine:'     This number is updated after a commit"'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  1794
        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
  1795
        nextPutLine:'    ^ "$SVN-Revision:"''', ('%-16s' printf: (Array with: revisionNrOrNil printString)) , '''"$"'.
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1796
    ].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1797
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1798
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1799
     self svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1800
     stx_libbasic3 svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1801
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1802
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1803
    "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
  1804
    "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
  1805
    "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
  1806
! !
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1807
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  1808
!ProjectDefinition class methodsFor:'defaults'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1809
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1810
applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1811
    GUIApplicationType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1812
    ^ Array with:GUIApplicationType with:NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1813
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1814
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1815
     self applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1816
    "
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1817
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1818
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1819
defaultCategory
10466
aa61cdb54299 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10434
diff changeset
  1820
    ^'* Projects & Packages *'
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1821
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1822
    "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
  1823
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  1824
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1825
defaultProjectType
9745
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  1826
    ^ self libraryTypes first
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  1827
    "/ ^ self applicationTypes first
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1828
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1829
    "Created: / 23-08-2006 / 14:27:32 / cg"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1830
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1831
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1832
defaultProjectTypeForGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1833
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1834
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1835
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1836
defaultProjectTypeForNonGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1837
    ^ NonGUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1838
!
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1839
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1840
folderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1841
    ^ FolderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1842
!
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1843
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1844
guiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1845
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1846
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1847
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1848
libraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1849
    ^ LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1850
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1851
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1852
libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1853
    LibraryType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1854
    ^ Array with:LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1855
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1856
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1857
     self libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1858
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1859
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1860
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1861
nonGuiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1862
    ^ NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1863
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1864
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1865
projectTypeSelectors
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1866
    "a list of possible project type selectors"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1867
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1868
    ^ #( libraryType guiApplicationType nonGuiApplicationType folderForSubApplicationsType )
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1869
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1870
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1871
     self libraryType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1872
     self guiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1873
     self nonGuiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1874
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1875
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1876
    "Created: / 23-08-2006 / 14:27:32 / cg"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1877
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1878
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1879
projectTypes
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1880
    "a list of possible project types (shown in the new-package dialog's combo list)"
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1881
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  1882
    ^ self libraryTypes , self applicationTypes , { FolderForSubApplicationsType }
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1883
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1884
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1885
     self projectTypes
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1886
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  1887
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  1888
    "Created: / 23-08-2006 / 14:27:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1889
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1890
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  1891
!ProjectDefinition class methodsFor:'description'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  1892
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1893
excludedFromPreRequisites
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1894
    "list packages which are to be explicitely excluded from the automatic constructed
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1895
     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
  1896
     my classes is considered to be a prerequisite package."
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1897
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1898
    ^ #()
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1899
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1900
    "Modified: / 17-08-2006 / 19:48:59 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1901
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  1902
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1903
excludedFromSubProjects
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1904
    "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
  1905
     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
  1906
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1907
    ^ #()
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1908
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  1909
    "Modified: / 17-08-2006 / 19:49:40 / cg"
10039
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  1910
!
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  1911
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1912
includedInPreRequisites
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1913
    "list packages which are to be explicitely included in the prerequisites list,
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1914
     even if not found by the automatic search.
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1915
     Redefine this, if classes from other packages are referred to via reflection
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1916
     or by constructing names dynamically (i.e. the search cannot find it)"
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1917
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1918
    ^ #()
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1919
!
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  1920
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1921
includedInSubProjects
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1922
    "list packages which are to be explicitely included in the subproject list,
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1923
     even if not found by the automatic search.
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1924
     However: they are not forced to be loaded when a package is loaded; 
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1925
     for those, redefine #includedInPreRequisites."
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1926
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1927
    ^ #()
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1928
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1929
    "Modified: / 17-08-2006 / 19:57:46 / cg"
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1930
!
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  1931
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1932
mandatoryPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1933
    "list packages which are mandatory as a prerequisite.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1934
     This are packages containing superclasses of my classes and classes which
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1935
     are extended by myself.
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  1936
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1937
     This method is generated automatically,
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1938
     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
  1939
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  1940
    ^ #()
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1941
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1942
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1943
preRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1944
    "list packages which are required as a prerequisite."
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1945
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1946
    "use an OrderedSet here, so that mandatory prerequisites come first"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1947
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1948
    ^ OrderedSet new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1949
        addAll:self mandatoryPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1950
        addAll:self referencedPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1951
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1952
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1953
        yourself.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  1954
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  1955
    "Modified: / 17-08-2006 / 19:54:21 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  1956
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  1957
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1958
preRequisitesFor:packageId 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1959
    |def|
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1960
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1961
    def := self definitionClassForPackage:packageId.
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  1962
    def isNil ifTrue:[
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  1963
        "Maybe the package is not loaded? Try to load it..."
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  1964
        [
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  1965
            Smalltalk loadPackage:packageId.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1966
            def := self definitionClassForPackage:packageId
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  1967
        ] on:PackageLoadError do:[:ex| def := nil].
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  1968
    ].
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  1969
    ^ def isNil 
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1970
        ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1971
            "Still no project definition - maybe it does not exist?"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1972
            Transcript showCR:'Warning: no definition class for package: ', packageId.
14866
dc4ca8598270 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14860
diff changeset
  1973
            ((self searchForPreRequisites:packageId) 
dc4ca8598270 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14860
diff changeset
  1974
                fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1975
        ]
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1976
        ifFalse:[ def effectivePreRequisites ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1977
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1978
    "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
  1979
    "Modified: / 18-11-2011 / 14:52:43 / cg"
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  1980
    "Modified (format): / 19-11-2011 / 11:25:36 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1981
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1982
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1983
referencedPreRequisites
16213
27e97f818e5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16179
diff changeset
  1984
    "list packages which are a prerequisite, because they contain
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1985
     classes which are referenced by my classes.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1986
     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
  1987
     This method is generated automatically,
16213
27e97f818e5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16179
diff changeset
  1988
     by searching all classes (and their packages) which are referenced by my classes."
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1989
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1990
    ^ #()
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  1991
!
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  1992
9685
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  1993
siblingsAreSubProjects
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  1994
    ^ false
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  1995
!
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  1996
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  1997
splashFileName
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  1998
    "answer the base-name of the splash bitmap.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  1999
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2000
     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
  2001
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2002
    ^ nil.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2003
!
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2004
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2005
subProjects
14959
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2006
    "list packages which are known as subprojects. 
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2007
     The generated makefile will enter those and make there as well.
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2008
     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
  2009
     for those, redefine requiredPrerequisites."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2010
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2011
    ^ #()
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2012
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2013
    "Modified: / 17-08-2006 / 19:57:46 / cg"
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
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2016
!ProjectDefinition class methodsFor:'description - actions'!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2017
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2018
postLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2019
    "invoked after loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2020
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2021
    "/ 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
  2022
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2023
    "Modified: / 17-08-2006 / 19:59:17 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2024
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2025
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2026
preLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2027
    "invoked before loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2028
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2029
    "/ 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
  2030
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2031
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2032
preUnloadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2033
    "invoked before unloading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2034
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2035
    "/ 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
  2036
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2037
    "Modified: / 17-08-2006 / 19:59:26 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2038
! !
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2039
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  2040
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2041
!ProjectDefinition class methodsFor:'description - classes'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2042
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2043
additionalClassNamesAndAttributes
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  2044
    "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
  2045
     in the image (someone may have removed it by purpose)"
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  2046
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2047
    ^ #()
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2048
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2049
    "Created: / 21-08-2006 / 19:53:04 / cg"
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2050
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  2051
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  2052
classNamesAndAttributes
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2053
    "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
  2054
12202
99295d0c6e3f changed:
Claus Gittinger <cg@exept.de>
parents: 12201
diff changeset
  2055
    "/ should this be a subclassResponsibility here ?
9595
016b493d0fe8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9592
diff changeset
  2056
    ^ #()
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2057
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2058
    "Created: / 07-08-2006 / 19:02:57 / fm"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2059
    "Modified: / 07-08-2006 / 21:25:25 / fm"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2060
    "Modified: / 17-08-2006 / 20:47:20 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2061
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2062
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2063
extensionMethodNames
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2064
    "list class/selector pairs of extensions.
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2065
     A correponding method with real names must be present in my concrete subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2066
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  2067
    "/ should this be a subclassResponsibility here ?
9595
016b493d0fe8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9592
diff changeset
  2068
    ^ #()
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2069
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2070
    "Modified: / 17-08-2006 / 20:49:51 / cg"
10350
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2071
!
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2072
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2073
ignoredClassNames
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2074
    "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
  2075
     generated classNamesAndAttributes spec"
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2076
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2077
    ^ #()
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2078
f70405894961 added optional ignoredClassNames method.
Claus Gittinger <cg@exept.de>
parents: 10331
diff changeset
  2079
    "Created: / 23-01-2007 / 19:08:27 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2080
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2081
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2082
!ProjectDefinition class methodsFor:'description - compilation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2083
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2084
additionalBaseAddressDefinition_bc_dot_mak
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2085
    "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
  2086
     Subclasses may redefine this to something like
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2087
        LIB_BASE=$(LIBWIDG_BASE)
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2088
     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
  2089
    "
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2090
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2091
    ^ nil
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2092
!
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2093
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2094
additionalDefinitions
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2095
    "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
  2096
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2097
    ^ ''
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2098
!
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2099
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2100
additionalDefinitions_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2101
    "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
  2102
     Subclasses may redefine this."
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2103
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2104
    ^ self additionalDefinitions_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2105
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2106
    "Created: / 22-08-2006 / 23:59:32 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2107
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2108
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2109
additionalDefinitions_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2110
    "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
  2111
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2112
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2113
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2114
    "Created: / 22-08-2006 / 23:53:08 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2115
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2116
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2117
additionalDefinitions_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2118
    "obsolete - kept for compatibility with old project files"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2119
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2120
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2121
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2122
    "Created: / 22-08-2006 / 23:59:32 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2123
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2124
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2125
additionalHeaderRulesUsingTemplate:template withSeparator:pathSeparator
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2126
    "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
  2127
     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
  2128
     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
  2129
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2130
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2131
        (self extensionClassesWithSuperclasses:true) do:[:eachExtendedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2132
            |headerFileDirPath baseFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2133
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2134
            (eachExtendedClass isLoaded not or:[eachExtendedClass wasAutoloaded]) ifTrue:[
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2135
                headerFileDirPath := self pathToPackage:eachExtendedClass package withSeparator:pathSeparator.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2136
                baseFilename := self filenameForClass:eachExtendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2137
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2138
                s nextPutAll:(template
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2139
                                bindWith:headerFileDirPath
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2140
                                with:baseFilename).
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2141
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2142
        ].
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2143
    ].
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2144
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2145
    "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
  2146
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2147
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2148
additionalHeaderRules_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2149
    "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
  2150
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2151
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2152
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_bc_dot_mak)
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2153
        withSeparator:'\'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2154
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2155
    "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
  2156
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2157
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2158
additionalHeaderRules_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2159
    "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
  2160
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2161
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2162
        additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_make_dot_proto)
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2163
        withSeparator:'/'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2164
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2165
    "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
  2166
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2167
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2168
additionalLinkLibraries_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2169
    "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
  2170
     Subclasses may redefine this"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2171
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2172
    "backward compatibilty with old projects"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2173
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2174
    ^ self additionalLinkLibraries_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2175
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
    "Created: / 22-08-2006 / 23:53:33 / cg"
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
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2180
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
  2181
    "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
  2182
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2183
    ^ ''
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2184
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2185
    "Created: / 22-08-2006 / 23:53:33 / cg"
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2186
!
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2187
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2188
additionalLinkLibraries_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2189
    "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
  2190
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2191
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2192
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2193
    "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
  2194
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2195
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2196
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
  2197
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2198
    (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
  2199
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2200
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2201
# **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
  2202
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2203
# 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
  2204
# 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
  2205
# 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
  2206
!!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
  2207
$(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
  2208
!!ENDIF
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2209
' 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
  2210
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2211
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2212
        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
  2213
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2214
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2215
    "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
  2216
    "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
  2217
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2218
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2219
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
  2220
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2221
    (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
  2222
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2223
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2224
# 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
  2225
# 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
  2226
# 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
  2227
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
  2228
%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
  2229
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2230
' 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
  2231
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2232
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2233
        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
  2234
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2235
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2236
    "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
  2237
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2238
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2239
additionalRulesSvn_make_dot_proto
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2240
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2241
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2242
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2243
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2244
# 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
  2245
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
  2246
.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
  2247
        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
  2248
                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
  2249
                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
  2250
        else \
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2251
                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
  2252
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2253
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2254
%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
  2255
        @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
  2256
                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
  2257
                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
  2258
                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
  2259
        fi
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2260
        $(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
  2261
        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
  2262
        $(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
  2263
        @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
  2264
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2265
' 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
  2266
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2267
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2268
        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
  2269
    "
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2270
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2271
    "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
  2272
    "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
  2273
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2274
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2275
additionalRules_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2276
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2277
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2278
    ^ ''
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2279
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2280
    "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
  2281
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2282
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2283
additionalRules_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2284
    "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
  2285
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2286
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2287
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2288
    "Created: / 22-08-2006 / 23:59:16 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2289
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2290
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2291
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
  2292
    "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
  2293
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2294
    ^ ''
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2295
!
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2296
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2297
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
  2298
    "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
  2299
     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
  2300
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2301
    "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
  2302
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2303
    ^''
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2304
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2305
    "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
  2306
    "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
  2307
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2308
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2309
additionalTargets_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2310
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2311
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2312
    ^ ''
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2313
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2314
    "Created: / 23-08-2006 / 00:00:35 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2315
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2316
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2317
additionalTargets_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2318
    "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
  2319
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2320
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2321
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2322
    "Created: / 22-08-2006 / 23:53:33 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2323
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2324
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2325
globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2326
    "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
  2327
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2328
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2329
    ^ ''
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2330
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2331
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2332
globalDefines_unix
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2333
    "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
  2334
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2335
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2336
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2337
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2338
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2339
globalDefines_win32
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2340
    "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
  2341
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2342
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2343
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2344
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2345
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2346
localDefines
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2347
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2348
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2349
    ^ ''
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2350
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2351
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2352
localDefines_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2353
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2354
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2355
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2356
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2357
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2358
localDefines_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2359
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2360
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2361
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2362
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2363
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2364
localIncludes
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2365
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2366
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2367
    ^ ''
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2368
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2369
    "Created: / 06-09-2006 / 18:14:31 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2370
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2371
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2372
localIncludes_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2373
    "allow for the specification of additional include directories"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2374
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2375
    ^ self makeUnixIncludes:(self localIncludes)
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2376
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2377
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2378
    "Modified: / 06-09-2006 / 18:15:26 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2379
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2380
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2381
localIncludes_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2382
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2383
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2384
    ^ self makeWin32Includes:(self localIncludes)
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2385
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2386
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2387
    "Modified: / 06-09-2006 / 18:15:37 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2388
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2389
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
  2390
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
  2391
    "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
  2392
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2393
    ^ ''
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2394
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2395
    "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
  2396
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2397
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2398
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
  2399
    "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
  2400
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2401
    ^ 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
  2402
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2403
    "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
  2404
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2405
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2406
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
  2407
    "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
  2408
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2409
    ^ 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
  2410
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2411
    "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
  2412
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2413
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2414
singleHeaderRuleTemplate_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2415
    "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
  2416
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2417
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2418
%1\%2.$(H):
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2419
    pushd %1 \
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2420
    & $(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
  2421
    & popd
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2422
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2423
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2424
    "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
  2425
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2426
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2427
singleHeaderRuleTemplate_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2428
    "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
  2429
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2430
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2431
%1/%2.$(H):
15173
19cc70edf119 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15172
diff changeset
  2432
    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
  2433
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2434
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2435
    "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
  2436
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2437
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2438
stcOptimizationOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2439
    "see the stc reference / stc usage for options.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2440
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2441
        +optspace3                  most compact code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2442
                                    - use for all gui, application code.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2443
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2444
        +optinline +optinline2 +inlineNew
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2445
                                    fastest code
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2446
                                    - use only for computation-intensive classes"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2447
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2448
    ^ '+optspace3'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2449
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2450
    "Created: / 18-08-2006 / 12:50:27 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2451
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2452
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2453
stcWarningOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2454
    "see the stc reference / stc usage for options.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2455
     For now, the following variants are useful:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2456
        -warn                   no warnings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2457
        -warnNonStandard        no warnings about non-standard smalltalk features"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2458
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2459
    ^ '-warnNonStandard'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2460
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2461
    "Created: / 18-08-2006 / 12:51:38 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2462
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2463
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2464
!ProjectDefinition class methodsFor:'description - project information'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2465
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2466
applicationAdditionalIconFileNames
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2467
    "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
  2468
    (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
  2469
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2470
    ^ #()
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2471
!
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2472
11039
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2473
applicationIconFileName
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2474
    "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
  2475
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2476
    ^ nil
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2477
!
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  2478
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2479
companyName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2480
    "Returns a company string which will appear in <lib>.rc.
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2481
     Under win32, this is placed into the dlls file-info"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2482
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2483
    (
11172
04ba10b4fcf9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 11157
diff changeset
  2484
      #(
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2485
        'stx'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2486
        'exept'
11172
04ba10b4fcf9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 11157
diff changeset
  2487
      ) includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2488
        ^ 'eXept Software AG'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2489
    ].
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2490
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2491
    ^ 'My Company'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2492
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2493
    "Modified: / 18-08-2006 / 16:08:20 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2494
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2495
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2496
description
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2497
    "Returns a description string which will appear in vc.def / bc.def"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2498
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2499
    ^self productName,' ',self packageName
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2500
"/    ^ self name
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2501
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2502
    "Created: / 08-08-2006 / 11:15:01 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2503
    "Modified: / 17-08-2006 / 20:53:34 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2504
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2505
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2506
fileDescription
10416
e4fe2bf2276d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10414
diff changeset
  2507
    "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
  2508
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  2509
    ^self description
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2510
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2511
    "Modified: / 17-08-2006 / 20:27:07 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2512
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2513
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2514
fileMajorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2515
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2516
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  2517
    ^ self majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2518
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2519
    "Created: / 18-08-2006 / 12:03:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2520
    "Modified: / 30-08-2006 / 18:50:51 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2521
!
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
fileMinorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2524
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2525
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  2526
    ^ self minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2527
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2528
    "Created: / 18-08-2006 / 12:03:13 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2529
    "Modified: / 30-08-2006 / 18:50:46 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2530
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2531
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2532
fileReleaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2533
    "Returns a releaseNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2534
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2535
    "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
  2536
     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
  2537
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2538
    "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
  2539
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  2540
    ^ self cvsRevision last upTo:$m
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2541
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2542
    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
  2543
    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
  2544
    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
  2545
    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
  2546
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2547
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2548
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2549
    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
  2550
    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
  2551
    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
  2552
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2553
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2554
    "Created: / 18-08-2006 / 12:02:58 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2555
    "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
  2556
    "Modified: / 23-11-2012 / 11:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2557
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2558
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2559
fileRevisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2560
    "Returns a revisionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2561
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2562
    "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
  2563
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2564
    "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
  2565
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  2566
    ^ self cvsRevision first
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2567
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2568
    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
  2569
    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
  2570
    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
  2571
    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
  2572
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2573
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2574
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2575
    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
  2576
    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
  2577
    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
  2578
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2579
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2580
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2581
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2582
    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
  2583
    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
  2584
    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
  2585
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2586
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2587
    "Created: / 18-08-2006 / 12:02:39 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2588
    "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
  2589
    "Modified: / 23-11-2012 / 11:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2590
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2591
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2592
fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2593
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2594
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2595
    "<major>.<minor>.<rev>.<rel> (such as '1.2.17.1') "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2596
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2597
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2598
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2599
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2600
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2601
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2602
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2603
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2604
     self fileVersion
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
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2607
    "Modified: / 30-08-2006 / 18:51:49 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2608
!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2609
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2610
fileVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2611
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2612
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2613
    "<major>,<minor>,<revision>,<release> (such as '2,17,1,2') "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2614
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2615
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2616
        bindWith:self fileMajorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2617
        with:self fileMinorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2618
        with:self fileRevisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2619
        with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2620
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2621
    "Created: / 17-08-2006 / 20:16:17 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2622
    "Modified: / 30-08-2006 / 18:54:20 / cg"
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2623
!
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2624
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2625
internalName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2626
    "Returns a name string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2627
11041
3bb26d86e616 Fix #description and #internalName
Stefan Vogel <sv@exept.de>
parents: 11039
diff changeset
  2628
    ^ self package
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2629
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2630
    "Modified: / 17-08-2006 / 20:27:37 / cg"
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
legalCopyright
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2634
    "Returns a copyright string which will appear in <lib>.rc.
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2635
     Under win32, this is placed into the dlls file-info"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2636
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2637
    self module = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2638
        "hardwired-default"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2639
        ^ 'Copyright Claus Gittinger 1988-%1\nCopyright eXept Software AG 1998-%1'
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2640
            bindWith:(Date today year)
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2641
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2642
    self module = 'exept' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2643
        "hardwired-default"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2644
        ^ 'Copyright eXept Software AG 1998-%1'
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2645
            bindWith:(Date today year)
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2646
    ].
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2647
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2648
    ^ 'My CopyRight or CopyLeft'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2649
14911
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2650
    "
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2651
        self legalCopyright
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2652
    "
9135c889da5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14886
diff changeset
  2653
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2654
    "Modified: / 30-08-2006 / 18:53:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2655
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2656
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2657
majorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2658
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2659
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2660
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2661
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2662
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2663
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2664
    ^ Smalltalk majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2665
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2666
    "Created: / 17-08-2006 / 20:20:18 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2667
    "Modified: / 30-08-2006 / 18:52:13 / cg"
9575
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
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2670
minorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2671
    "Returns a versionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2672
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2673
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2674
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2675
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2676
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2677
    ^ Smalltalk minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2678
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2679
    "Created: / 17-08-2006 / 20:20:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2680
    "Modified: / 30-08-2006 / 18:52:16 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2681
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2682
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2683
productDate
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  2684
    "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
  2685
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2686
    "take the current date - by default"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2687
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2688
    ^ Timestamp now printStringRFC1123Format
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2689
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2690
    "Created: / 17-08-2006 / 20:17:28 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2691
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2692
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2693
productDescription
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2694
    "Returns a description (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2695
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2696
    ^ self description
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2697
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2698
    "Created: / 21-12-2010 / 09:32:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2699
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2700
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2701
productFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2702
    "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
  2703
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2704
    ^ self productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2705
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2706
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2707
     stx_projects_smalltalk productName
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2708
     stx_projects_smalltalk productFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2709
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2710
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2711
    "Created: / 01-03-2007 / 19:33:06 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2712
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2713
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2714
productInstallDir
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2715
    "Returns a default installDir which will appear in <app>.nsi."
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2716
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2717
    ^ '$PROGRAMFILES\',(self productInstallDirBaseName).
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2718
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2719
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2720
     stx_projects_smalltalk productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2721
     stx_clients_Clock_QlockTwoWatchApplication productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2722
    "
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2723
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2724
    "Created: / 14-09-2006 / 21:23:01 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2725
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2726
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2727
productInstallDirBaseName
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2728
    "Returns a default installDir which will appear in <app>.nsi.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2729
     This is usually not the one you want to keep"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2730
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2731
    ^ self module
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2732
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2733
    "Created: / 21-12-2011 / 16:31:38 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2734
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2735
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2736
productLicense
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2737
    "Returns the license (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2738
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2739
    ^ 'Commercial'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2740
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2741
    "Created: / 21-12-2010 / 09:31:25 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2742
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2743
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2744
productMaintainer
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2745
    "Returns the maintainer (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2746
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2747
    ^ self companyName
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2748
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2749
    "Created: / 21-12-2010 / 09:26:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2750
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2751
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2752
productName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  2753
    "Returns a product name which will appear in <lib>.rc.
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2754
     Under win32, this is placed into the dlls file-info.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2755
     This method is usually redefined in a concrete application definition"
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2756
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2757
    |m nm|
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2758
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2759
    m := self module.
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2760
    m = 'stx' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2761
        ^ 'Smalltalk/X'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2762
    ].
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2763
    m = 'exept' ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2764
        ^ 'eXept addOns'
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2765
    ].
15343
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2766
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2767
    self isApplicationDefinition ifFalse:[
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2768
        ^ 'LibraryName'
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2769
    ].
d46cfae69fd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15223
diff changeset
  2770
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2771
    SubclassResponsibilityError handle:[:ex |
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2772
        "/ we get this error, if the concrete class has not yet redefined
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2773
        "/ startupClassName.
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  2774
        self breakPoint:#cg.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2775
        ^ 'ProductName'
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2776
    ] do:[
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2777
        nm := self startupClassName.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2778
        (nm endsWith:'Startup') ifTrue:[
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2779
            ^ nm copyButLast:'Startup' size.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2780
        ].
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2781
        (nm endsWith:'Start') ifTrue:[
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2782
            ^ nm copyButLast:'Start' size.
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2783
        ].
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  2784
        ^ nm
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2785
    ].
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  2786
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  2787
    "Modified: / 08-11-2007 / 16:45:14 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2788
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2789
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2790
productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2791
    "Returns a product name which will appear in <lib>.rc.
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2792
     Under win32, this is placed into the dlls file-info"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2793
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2794
    |nm|
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2795
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2796
    nm := self productName.
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2797
    ^ nm copy replaceAny:'/\:;.,' with:$_
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2798
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2799
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2800
     'Smalltalk/X' replaceAny:'/\:;.,' with:nil
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2801
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2802
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2803
    "Created: / 01-03-2007 / 19:19:21 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2804
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2805
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2806
productPublisher
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2807
    "Returns a product publisher which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2808
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2809
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2810
        ^ 'eXept Software AG'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2811
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2812
11789
8d56dc5fa8a8 Default productPublisher is companyName
Stefan Vogel <sv@exept.de>
parents: 11777
diff changeset
  2813
    ^ self companyName
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2814
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2815
    "Created: / 14-09-2006 / 21:12:54 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2816
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2817
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2818
productType
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2819
    "Returns the product type 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
    ^ 'Application'
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:28:48 / 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
productVersion
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  2827
    "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
  2828
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2829
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2830
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2831
    ^ '%1.%2.%3.%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2832
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2833
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2834
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2835
        with:self releaseNr.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2836
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2837
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2838
     self productVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2839
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2840
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2841
    "Modified: / 30-08-2006 / 18:52:47 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2842
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2843
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2844
productVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2845
    "Returns a product version which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2846
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2847
    "<major>.<minor>.<revision>.<release> (such as '0,1,1,1') "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2848
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2849
    ^ '%1,%2,%3,%4'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2850
        bindWith:self majorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2851
        with:self minorVersionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2852
        with:self revisionNr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2853
        with:self releaseNr.
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2854
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2855
    "
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2856
     self productVersionCommaSeparated
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2857
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2858
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2859
    "Created: / 17-08-2006 / 20:13:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2860
    "Modified: / 30-08-2006 / 18:52:42 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2861
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2862
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2863
productWebSite
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2864
    "Returns a product webSite which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2865
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2866
    ( #('exept' 'stx') includes:self module) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2867
        ^ 'http://www.exept.de'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2868
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2869
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2870
    "/ should be redefined by concrete ApplicationDefinition
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2871
    ^ 'http://www.yoursite.com'
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2872
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2873
    "Created: / 14-09-2006 / 21:15:05 / cg"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  2874
    "Modified: / 01-03-2007 / 18:11:27 / cg"
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2875
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2876
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2877
releaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2878
    "Returns a releaseNr which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2879
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2880
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2881
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2882
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2883
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2884
    ^ Smalltalk releaseNr
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2885
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2886
    "Created: / 17-08-2006 / 20:20:51 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2887
    "Modified: / 30-08-2006 / 18:52:22 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2888
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2889
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2890
revisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2891
    "Returns a revisionNr which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2892
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2893
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2894
     the default here takes smalltalks version number.
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2895
     But thats probably not good for an end-user-app."
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2896
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  2897
    ^ Smalltalk revisionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2898
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2899
    "Created: / 17-08-2006 / 20:20:40 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  2900
    "Modified: / 30-08-2006 / 18:52:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2901
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2902
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2903
versionNumber
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2904
    "Returns a version string which will appear in bc.def / vc.def "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2905
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2906
    ^''
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2907
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2908
    "Created: / 08-08-2006 / 11:35:52 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2909
    "Modified: / 17-08-2006 / 19:46:29 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2910
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2911
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2912
!ProjectDefinition class methodsFor:'file generation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2913
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2914
apspecFilename
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  2915
    "/ for linux
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2916
    ^ 'autopackage/default.apspec'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2917
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2918
    "Created: / 21-12-2010 / 09:43:13 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2919
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  2920
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  2921
basicFileNamesToGenerate
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2922
    "answer a dictionary (filename -> generator method) with all the files,
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  2923
     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
  2924
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2925
    |dict|
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2926
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2927
    dict := OrderedDictionary withKeysAndValues:#(
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2928
          'Make.spec'         #'generate_make_dot_spec'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2929
          'Make.proto'        #'generate_make_dot_proto'
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  2930
          "/ cg: changed to generate Makefile.init instead of Makefile,
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  2931
          "/     because macosx files are not case sensitive.
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  2932
          "/ You will have to execute make -f Makefile.init initially
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  2933
          "/ 'Makefile'          #'generate_makefile'          "/ for unix
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  2934
          'Makefile.init'     #'generate_makefile'          "/ for unix
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  2935
          'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2936
          'abbrev.stc'        #'generate_abbrev_dot_stc'
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  2937
          'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  2938
          'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
15202
797ecbccf27a class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15201
diff changeset
  2939
          '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
  2940
          "/ '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
  2941
          '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
  2942
    ).
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2943
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2944
    dict
14060
cefb6d8205e4 changed:
Stefan Vogel <sv@exept.de>
parents: 14045
diff changeset
  2945
        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
  2946
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2947
    ^ dict.
13154
bac0fcd8a888 make sure that the makefiles are generated before the libInit file
Claus Gittinger <cg@exept.de>
parents: 13148
diff changeset
  2948
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  2949
    "Modified (comment): / 05-09-2012 / 19:43:07 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  2950
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  2951
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2952
fileNamesToGenerate
12200
7e452033e984 rememberOverwrittenExtensionMethods
Claus Gittinger <cg@exept.de>
parents: 12198
diff changeset
  2953
    "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
  2954
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2955
    ^ self basicFileNamesToGenerate removeAllKeys:self protectedFileNames ifAbsent:[]
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2956
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2957
    "
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2958
      stx_libbasic fileNamesToGenerate
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2959
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2960
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2961
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2962
forEachFileNameAndGeneratedContentsDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  2963
    "for build-support file generation, checkin etc., use this common method which
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  2964
     enumerates all fileNames with their generated contents to be built."
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  2965
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2966
    |pairs|
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2967
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2968
    pairs := OrderedCollection new.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2969
    self forEachFileNameAndGeneratorMethodDo:[:fileName :generator |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2970
        |file|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2971
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2972
        file := self perform:generator.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2973
        pairs add:(Array with:fileName with:file)
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2974
    ].
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2975
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2976
    pairs pairsDo:aTwoArgBlock
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2977
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2978
    "Created: / 16-08-2006 / 18:37:52 / User"
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2979
!
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  2980
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2981
forEachFileNameAndGeneratorMethodDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  2982
    "helper for build-support file generation"
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  2983
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2984
    self fileNamesToGenerate keysAndValuesDo:aTwoArgBlock
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  2985
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  2986
    "Modified: / 14-09-2006 / 21:02:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2987
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2988
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2989
generateFile:filename
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2990
    |action|
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2991
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2992
    action := self basicFileNamesToGenerate at:filename ifAbsent:[].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2993
    action notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2994
        ^ self perform:action
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2995
    ].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  2996
    (filename = 'app.rc' or:[filename = 'lib.rc']) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  2997
        ^ self generate_packageName_dot_rc
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  2998
    ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  2999
    (filename = 'loadAll') ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3000
        ^ self generate_loadAll
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3001
    ].
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3002
    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
  3003
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3004
    "Modified: / 21-12-2010 / 11:01:10 / cg"
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3005
    "Modified (format): / 21-01-2012 / 12:31:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3006
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3007
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3008
generateFile:filename in: directory
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3009
    |dir|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3010
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3011
    dir := directory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3012
    dir exists ifFalse:[self error:'Directory does not exist'].
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3013
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3014
    (dir / (filename asFilename baseName)) contents:(self generateFile: filename).
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3015
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3016
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3017
        stx_projects_smalltalk generateFile:'package.deps.rake' in: '/tmp'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3018
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3019
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3020
    "Created: / 26-02-2011 / 10:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3021
    "Modified: / 09-06-2011 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3022
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3023
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3024
generateRemoveShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3025
    "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
  3026
     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
  3027
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3028
    |firstLine|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3029
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3030
    firstLine := true.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3031
    self searchForClasses do:[:eachClass|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3032
        firstLine ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3033
            aStream nextPutAll:'cvs rm -f '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3034
            firstLine := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3035
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3036
        eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3037
            aStream nextPutAll:eachClass classBaseFilename; space.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3038
        ]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3039
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3040
    firstLine ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3041
        aStream cr.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3042
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3043
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3044
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3045
       stx_goodies_webServer_htmlTree generateRemoveShellScriptOn:Transcript
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3046
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3047
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3048
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3049
generateRenameShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3050
    "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
  3051
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3052
    self searchForClasses do:[:eachClass|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3053
        eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3054
            aStream nextPutAll:'cp ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3055
                   nextPutAll:eachClass classBaseFilename; nextPutAll:',v ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3056
                   nextPutAll:eachClass generateClassFilename; nextPutAll:'.st,v'; cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3057
        ]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3058
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3059
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3060
    "
11981
e479249ba36e Fix #generateRenameShellScriptOn:
Stefan Vogel <sv@exept.de>
parents: 11980
diff changeset
  3061
       stx_libdb generateRemoveShellScriptOn:Transcript
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3062
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3063
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3064
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3065
generate_abbrev_dot_stc
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3066
   "/ 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
  3067
   self checkIfClassesArePresent.
10104
96bce48c03b5 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10103
diff changeset
  3068
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3069
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3070
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3071
            |addEntry|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3072
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3073
            addEntry :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3074
                [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3075
                    |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3076
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3077
                    s nextPutAll:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3078
                    s nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3079
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3080
                    cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3081
                    cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3082
                        fn := self filenameForClass:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3083
                        s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3084
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3085
                        s nextPutAll:' '; nextPutAll:'unknownCategory' storeString; nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3086
                        s nextPutAll:' '; nextPutAll:'0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3087
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3088
                        wasLoaded := cls isLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3089
                        wasLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3090
                            failedToLoad := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3091
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3092
                            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3093
                                failedToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3094
                            ] do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3095
                                ParserFlags
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3096
                                    withSTCCompilation:#never
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3097
                                    do:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3098
                                        cls autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3099
                                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3100
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3101
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3102
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3103
                        fn := self filenameForClass:cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3104
                        (fn includes:Character space) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3105
                            s nextPutAll:fn storeString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3106
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3107
                            s nextPutAll:fn.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3108
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3109
                        s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3110
                        s nextPutAll: (cls category asString storeString).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3111
                        failedToLoad ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3112
                            s nextPutAll:' 0'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3113
                        ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3114
                            numClassInstvars := cls theMetaclass instSize - Class instSize.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3115
                            s nextPutAll:' '; nextPutAll:numClassInstvars printString.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3116
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3117
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3118
                        wasLoaded ifFalse:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3119
                            UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition ifTrue:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3120
                                cls unload
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3121
                            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3122
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3123
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3124
                    s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3125
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3126
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3127
            s nextPutLine:'# automagically generated by the project definition'.
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3128
            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
  3129
            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
  3130
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3131
            self allClassNames do:addEntry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3132
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3133
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3134
                    addEntry value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3135
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3136
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3137
        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3138
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3139
    "
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3140
        stx_libbasic generate_abbrev_dot_stc
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3141
        DapasXProject generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3142
        DapasX_Datenbasis generate_abbrev_dot_stc
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3143
        bosch_dapasx_interactiver_editor generate_abbrev_dot_stc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3144
    "
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3145
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3146
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3147
    "Modified: / 28-01-2014 / 21:43:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3148
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3149
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3150
generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3151
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3152
    ^self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3153
        replaceMappings: self autopackage_default_dot_apspec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3154
        in: self autopackage_default_dot_apspec
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3155
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3156
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3157
     stx_projects_smalltalk generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3158
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3159
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3160
    "Created: / 21-12-2010 / 09:40:04 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3161
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3162
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3163
generate_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3164
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3165
        replaceMappings: self bc_dot_mak_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3166
        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
  3167
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3168
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3169
     DapasXProject generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3170
     DapasX_Datenbasis generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3171
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3172
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3173
    "Modified: / 09-08-2006 / 11:46:14 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3174
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3175
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3176
generate_bmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3177
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3178
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3179
            in: self bmake_dot_mak
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3180
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3181
    "Created: / 17-08-2006 / 20:03:43 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3182
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3183
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3184
generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3185
    ^ self replaceMappings:self builder_baseline_dot_rbspec_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3186
        in:self builder_baseline_dot_rbspec
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3187
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3188
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3189
     stx_projects_smalltalk generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3190
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3191
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3192
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3193
    "Created: / 24-02-2011 / 11:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3194
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3195
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3196
generate_lccmake_dot_mak
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3197
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3198
    ^self replaceMappings: self bmake_dot_mak_mappings
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3199
            in: self lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3200
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3201
    "Created: / 03-09-2012 / 19:49:56 / cg"
11979
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3202
!
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3203
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3204
generate_loadAll
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3205
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3206
        streamContents:[:s |
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3207
            |classNames classesLoaded classNamesUnloaded classesSorted|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3208
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3209
            classNames := self compiled_classNames_common.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3210
            classesLoaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3211
                        collect:[:nm | Smalltalk classNamed:nm]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3212
                        thenSelect:[:cls |  cls notNil and:[cls isLoaded] ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3213
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3214
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3215
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3216
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3217
                            cls isNil or:[cls isLoaded not]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3218
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3219
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3220
            classesSorted := Class classesSortedByLoadOrder:classesLoaded.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3221
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3222
            s nextPutAll:'"/
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3223
"/ $' , 'Header' , '$
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3224
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3225
"/ loadAll-file to fileIn code for: ' , self package , '
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3226
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3227
"/ Automatically generated from the ProjectDefinition.
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3228
"/ DO NOT MODIFY THIS FILE;
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3229
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3230
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3231
"/ Prerequisites:
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3232
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3233
"/ Smalltalk loadPackage:''module:directory''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3234
"/ Smalltalk loadPackage:''....''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3235
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3236
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3237
"{ package:''' , self package, ''' }"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3238
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3239
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3240
|files|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3241
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3242
''loading package ' , self package ,'...'' infoPrint.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3243
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3244
files := #(
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3245
'.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3246
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3247
            classesSorted do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3248
                s nextPutLine:'  ''' , (self filenameForClass:eachClass), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3249
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3250
            classNamesUnloaded do:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3251
                s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3252
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3253
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3254
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3255
                (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3256
                    s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3257
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3258
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3259
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3260
            self hasExtensionMethods ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3261
                s nextPutLine:'  ''extensions.st'''.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3262
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3263
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3264
            s nextPutAll:'
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3265
).
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3266
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3267
"/ see if there is a classLibrary
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3268
(Smalltalk fileInClassLibrary:''' , (self libraryName) , ''') ifTrue:[
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3269
    |handle loaded|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3270
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3271
    handle := ObjectFileLoader loadedObjectHandles
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3272
                    detect:[:h | h package = ''' , self package , '''] ifNone:nil.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3273
    handle ifNotNil:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3274
        loaded := Set new:(handle classes size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3275
        handle classes do:[:c| c isMeta ifFalse:[loaded add:c classBaseFilename]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3276
        files := files \ loaded.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3277
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3278
].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3279
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3280
"/ 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
  3281
files notEmpty ifTrue:[
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3282
  '''' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3283
  files do:[:f |
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3284
    ''.'' infoPrint.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3285
    f asFilename exists ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3286
        Smalltalk fileIn:f.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3287
    ] ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3288
        Smalltalk fileIn:(''source/'' , f)
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3289
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3290
  ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3291
  '' '' infoPrintCR.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3292
].
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3293
''done (' , self package ,').'' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3294
'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3295
        ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3296
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3297
    "Created: / 14-09-2006 / 14:21:31 / cg"
10080
e7a9912eef18 use classBaseFilename
Claus Gittinger <cg@exept.de>
parents: 10076
diff changeset
  3298
    "Modified: / 12-10-2006 / 15:55:00 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3299
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3300
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3301
generate_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3302
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3303
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3304
        replaceMappings: self make_dot_proto_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3305
        in: self make_dot_proto) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3306
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3307
    "
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3308
     stx_libbasic2 generate_make_dot_proto
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3309
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3310
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3311
    "Modified: / 09-08-2006 / 11:31:01 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3312
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3313
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3314
generate_make_dot_spec
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3315
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3316
        replaceMappings: self make_dot_spec_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3317
        in: self make_dot_spec) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3318
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3319
    "
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3320
     DapasXProject generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3321
     DapasX_Datenbasis generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3322
     bosch_dapasx_kernel_Definition generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3323
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3324
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3325
    "Modified: / 09-08-2006 / 11:31:09 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3326
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3327
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3328
generate_makefile
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3329
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3330
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3331
        replaceMappings: self makefile_mappings
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3332
        in: self makefile) asStringCollection withTabs asString
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3333
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3334
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3335
     stx_libbasic2 generate_makefile
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3336
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3337
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3338
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3339
generate_mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3340
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3341
    ^self replaceMappings: self bmake_dot_mak_mappings
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3342
            in: self mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3343
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3344
    "Created: / 05-09-2012 / 19:44:07 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3345
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3346
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3347
generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3348
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3349
    ^self replaceMappings: self packageName_dot_rc_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3350
            in: self packageName_dot_rc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3351
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3352
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3353
  bosch_dapasx_datenbasis generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3354
  bosch_dapasx_hw_schnittstellen  generate_packageName_dot_rc
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3355
  stx_libbasic3 generate_packageName_dot_rc
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3356
  stx_libwidg3 generate_packageName_dot_rc
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3357
  stx_libwidg3 productVersion
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3358
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3359
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3360
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3361
    "Modified: / 09-08-2006 / 11:31:09 / fm"
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3362
    "Modified: / 21-08-2006 / 19:33:21 / cg"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3363
!
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3364
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3365
generate_package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3366
    ^ (self replaceMappings:self package_dot_deps_dot_rake_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3367
        in:self package_dot_deps_dot_rake) asStringCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3368
        withTabs asString
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3369
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3370
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3371
     stx_libjava generate_dependencies_dot_rake"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3372
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3373
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3374
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3375
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3376
generate_tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3377
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3378
    ^self replaceMappings: self bmake_dot_mak_mappings
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3379
            in: self tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3380
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3381
    "Created: / 03-09-2012 / 19:50:25 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3382
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3383
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3384
generate_vc_dot_def
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3385
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3386
    ^self replaceMappings: self vc_dot_def_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3387
            in: self vc_dot_def
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3388
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3389
"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3390
  DapasXProject generate_vc_dot_def
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3391
  DapasX_Datenbasis generate_vc_dot_def
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3392
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3393
"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3394
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3395
    "Modified: / 09-08-2006 / 11:31:21 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3396
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3397
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3398
generate_vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3399
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3400
    ^self replaceMappings: self bmake_dot_mak_mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3401
            in: self vcmake_dot_mak
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3402
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3403
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3404
protectedFileNames
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3405
    "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
  3406
     - 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
  3407
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3408
    ^ #()
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3409
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3410
    "Created: / 14-09-2006 / 14:38:40 / cg"
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  3411
    "Modified: / 21-12-2010 / 11:36:46 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3412
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3413
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3414
rcFilename
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3415
    ^ self packageName,'.rc'.
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3416
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  3417
    "Created: / 07-09-2006 / 17:07:00 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3418
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3419
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  3420
!ProjectDefinition class methodsFor:'file mappings'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3421
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3422
autopackage_default_dot_apspec_mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3423
    |mappings|
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3424
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3425
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3426
    ^ mappings
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3427
        at: 'TOP' put: (self pathToTopWithSeparator:'/');                 "/ unix here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3428
"/        at: 'MODULE_PATH' put: ( self moduleDirectory );        "/ unix here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3429
        at: 'DESCRIPTION' put: (self description);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3430
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3431
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3432
        at: 'PRODUCT_PUBLISHER' put: (self productPublisher);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3433
        at: 'PRODUCT_WEBSITE' put: (self productWebSite);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3434
        at: 'PRODUCT_INSTALLDIR' put: (self productInstallDir);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3435
        at: 'PRODUCT_TYPE' put: (self productType);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3436
        at: 'PRODUCT_LICENSE' put: (self productLicense);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3437
        at: 'PRODUCT_DESCRIPTION' put: (self productDescription);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3438
        at: 'MAINTAINER' put: (self productMaintainer);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3439
        at: 'PACKAGER' put: (self productPublisher);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3440
        yourself.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3441
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3442
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3443
    "Created: / 21-12-2010 / 09:00:49 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3444
    "Modified: / 05-09-2012 / 10:09:06 / cg"
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3445
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3446
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3447
bc_dot_mak_mappings
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3448
    |d|
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3449
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3450
    d := self common_mappings.
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  3451
    ^ d
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3452
        at: 'TOP' put: ( self pathToTopWithSeparator:'\' );                "/ win32 here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3453
        at: 'MODULE_PATH' put: ( self moduleDirectory_win32 );  "/ win32 here
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3454
        at: 'PRIMARY_TARGET' put: (self primaryTarget_bc_dot_mak);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3455
        at: 'ADDITIONAL_BASE_ADDRESS_DEFINITION' put: (self additionalBaseAddressDefinition_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3456
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3457
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_bc_dot_mak);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3458
        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
  3459
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_bc_dot_mak ? '');
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3460
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3461
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_bc_dot_mak ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3462
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_win32 ? '');
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3463
        at: 'LOCAL_DEFINES' put: self localDefines_win32 ? '';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3464
        at: 'GLOBAL_DEFINES' put: self globalDefines_win32 ? '';
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  3465
        yourself.
10306
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
    "Created: / 18-08-2006 / 11:43:39 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3468
    "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
  3469
    "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
  3470
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3471
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3472
bmake_dot_mak_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3473
    ^ self common_mappings
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3474
        at:'TOP' put: ( self pathToTopWithSeparator:'\' );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3475
        at:'SUBPROJECT_BMAKE_CALLS' put:(self subProjectBmakeCalls);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3476
        at:'SUBPROJECT_VCMAKE_CALLS' put:(self subProjectVCmakeCalls);
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3477
        at:'SUBPROJECT_LCCMAKE_CALLS' put:(self subProjectLCCmakeCalls);
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3478
        at:'SUBPROJECT_TCCMAKE_CALLS' put:(self subProjectTCCmakeCalls);
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3479
        at:'SUBPROJECT_MINGWMAKE_CALLS' put:(self subProjectMingwmakeCalls);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3480
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3481
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3482
    "Created: / 17-08-2006 / 21:41:56 / cg"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  3483
    "Modified: / 05-09-2012 / 19:45:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3484
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3485
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3486
builder_baseline_dot_rbspec_mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3487
    |mappings|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3488
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3489
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3490
    ^ mappings
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3491
        at:'APPLICATION' put:(self perform:#applicationName ifNotUnderstood:[self packageName]);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3492
        at:'APPLICATION_PACKAGE' put:self package printString;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3493
        at:'PREAMBLE' put:self builder_baseline_dot_rbspec_preamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3494
        at:'POSTAMBLE' put:self builder_baseline_dot_rbspec_postamble;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3495
        at:'PACKAGES' put:self builder_baseline_dot_rbspec_packages;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3496
        yourself.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3497
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3498
    "Modified: / 21-12-2010 / 11:00:22 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3499
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3500
    "Modified: / 09-06-2011 / 14:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3501
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3502
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3503
builder_baseline_dot_rbspec_packages
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3504
    ^ String streamContents:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3505
            [:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3506
            self allPreRequisitesSorted do:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3507
                    [:packageId |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3508
                    s
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3509
                        nextPutAll:('  package "%1"' bindWith:packageId);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3510
                        cr ] ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3511
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3512
    "Created: / 24-02-2011 / 11:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3513
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3514
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3515
classLine_mappings:aClassName
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3516
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3517
        at:'CLASS' put:(self st2c:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3518
        yourself
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3519
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3520
    "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
  3521
    "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
  3522
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3523
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3524
common_mappings
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3525
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3526
        at: 'TAB' put: ( Character tab asString );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3527
        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
  3528
        at: 'LIBRARY_NAME' put: ( self libraryName );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3529
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3530
        at: 'MODULE' put: ( self module );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3531
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );           "/ always unix format
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3532
        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
  3533
        yourself
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3534
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3535
    "Created: / 04-09-2012 / 13:04:26 / cg"
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3536
!
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3537
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3538
make_dot_proto_mappings
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3539
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3540
        at: 'MODULE' put: ( self module );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3541
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3542
        at: 'MODULE_PATH' put: ( self moduleDirectory );
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3543
        at: 'TOP' put: ( self pathToTopWithSeparator:'/' );
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3544
        at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3545
        at: 'LIBRARY_NAME' put: ( self libraryName );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3546
        at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3547
        at: 'LOCAL_DEFINES' put: self localDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3548
        at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3549
        at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3550
        at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3551
        at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3552
        at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3553
        at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3554
        at: 'ADDITIONAL_RULES' put: (self additionalRules_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3555
        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
  3556
        at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_make_dot_proto);
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3557
        at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3558
        at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3559
        at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3560
        at: 'ADDITIONAL_SHARED_LINK_LIBRARIES' put: (self additionalSharedLinkLibraries_make_dot_proto);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3561
        at: 'DEPENDENCIES' put: (self generateDependencies_unix);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3562
        yourself
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3563
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3564
    "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
  3565
    "Modified: / 09-08-2006 / 16:44:48 / fm"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  3566
    "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
  3567
    "Modified: / 22-08-2009 / 12:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3568
    "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
  3569
    "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
  3570
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3571
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3572
make_dot_spec_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  3573
    ^ self common_mappings
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3574
        at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3575
        at: 'STCWARNINGOPTIONS' put: (self stcWarningOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3576
        at: 'STCOPTIMIZATIONOPTIONS' put: (self stcOptimizationOptions);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3577
        at: 'CLASSES' put: [self generateClasses_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3578
        at: 'OBJECTS' put: [self generateObjects_make_dot_spec];
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3579
        yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3580
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3581
    "Created: / 18-08-2006 / 11:44:23 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  3582
    "Modified: / 05-09-2012 / 10:11:02 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3583
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3584
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3585
makefile_mappings
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3586
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3587
        yourself
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3588
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  3589
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3590
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
  3591
    |d s resourceCount|
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3592
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3593
    d := Dictionary new.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3594
    d
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3595
        at: 'PRODUCT_NAME' put: (self productName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3596
        at: 'PRODUCT_VERSION' put: (self productVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3597
        at: 'PRODUCT_DATE' put: (self productDate);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3598
        at: 'FILETYPE' put: ( 'VFT_DLL' );
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3599
        at: 'FILE_VERSION_COMMASEPARATED' put: (self fileVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3600
        at: 'PRODUCT_VERSION_COMMASEPARATED' put: (self productVersionCommaSeparated);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3601
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3602
        at: 'COMPANY_NAME' put: (self companyName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3603
        at: 'FILE_DESCRIPTION' put: (self fileDescription);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3604
        at: 'FILE_VERSION' put: (self fileVersion);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3605
        at: 'INTERNAL_NAME' put: (self internalName).
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  3606
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3607
    s := self legalCopyright.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3608
    s notNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3609
        d at: 'LEGAL_COPYRIGHT_LINE' put: '      VALUE "LegalCopyright", "',s,'\0"'
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3610
    ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3611
    s := String streamContents:[:stream|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3612
            |suff|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3613
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3614
            s := self applicationIconFileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3615
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3616
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3617
                    suff := '.ico'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3618
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3619
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3620
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3621
                'IDR_MAINFRAME           ICON    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3622
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3623
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3624
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3625
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3626
            s := self splashFileName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3627
            s notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3628
                s asFilename suffix isEmptyOrNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3629
                    suff := '.bmp'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3630
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3631
                    suff := ''
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3632
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3633
                'IDR_SPLASH           BITMAP    DISCARDABLE     "%1%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3634
                        expandPlaceholdersWith:(Array with:s with:suff) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3635
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3636
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3637
            resourceCount := 2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3638
            self applicationAdditionalIconFileNames do:[:eachFilename|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3639
                'IDR_MAINFRAME+%1           ICON    DISCARDABLE     "%2"'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3640
                        expandPlaceholdersWith:(Array with:resourceCount with:eachFilename) on:stream.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3641
                stream cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3642
                resourceCount := resourceCount+1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3643
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3644
        ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3645
    d at: #'ICONDEFINITION_LINE' put:s.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3646
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  3647
    ^ d
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3648
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3649
    "Created: / 09-08-2006 / 11:21:21 / fm"
13309
27f463f6c0cb changed: #packageName_dot_rc_mappings
Claus Gittinger <cg@exept.de>
parents: 13285
diff changeset
  3650
    "Modified: / 22-02-2011 / 11:30:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3651
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3652
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3653
package_dot_deps_dot_rake_mappings
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3654
    |dependencies|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3655
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3656
    dependencies := String 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3657
            streamContents:[:s | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3658
                self allPreRequisites do:[:package | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3659
                    (self preRequisitesFor:package) do:[:prereq | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3660
                        s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3661
                            nextPutAll:('task "%1" => "%2"' bindWith:package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3662
                            cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3663
                    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3664
                    s cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3665
                ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3666
                self effectivePreRequisites do:[:prereq | 
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3667
                    s
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3668
                        nextPutAll:('task "%1" => "%2"' bindWith:self package with:prereq);
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3669
                        cr
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3670
                ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  3671
            ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3672
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3673
    ^ (Dictionary new)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3674
        at:'DEPENDENCIES' put:dependencies;
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3675
        yourself
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3676
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3677
    "
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3678
        stx_libjava generate_package_dot_deps_dot_rake
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3679
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3680
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3681
    "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3682
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3683
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3684
replaceMappings: mappings in: fileTemplate
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3685
    "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
  3686
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3687
    ^ fileTemplate bindWithArguments:mappings.
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3688
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  3689
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3690
     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
  3691
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3692
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3693
    "Created: / 08-08-2006 / 11:44:27 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  3694
    "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
  3695
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3696
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3697
st2c:aString
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3698
        ^ (aString asString
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3699
            copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8)))
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3700
                replaceAny:':' with:$_
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3701
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3702
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  3703
!ProjectDefinition class methodsFor:'file mappings support'!
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3704
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3705
classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3706
    "answer a dictionary
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3707
        category -> classNames topological sorted"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3708
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3709
    |classes classNames mapping alreadyWarned|
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3710
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3711
    mapping := Dictionary new.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3712
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  3713
    classes := Class classesSortedByLoadOrder:self compiled_classes_common.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3714
    classNames := classes collect:[:eachClass| eachClass name].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3715
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3716
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3717
            classNames add:nm.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3718
        ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3719
    ].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3720
    mapping at:'COMMON' put:classNames.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3721
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3722
    alreadyWarned := false.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3723
    OperatingSystem knownPlatformNames do:[:platformID |
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3724
        |platformClasses platformClassNames|
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3725
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3726
        platformClasses := self compiled_classesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3727
        platformClasses notEmpty ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3728
            (platformClasses contains:[:each| each isNil or:[each isLoaded not]]) ifTrue:[
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3729
                "win32 classes are not present in linux..."
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3730
                Transcript show:'Missing classes for platform: '. Transcript showCR:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3731
                platformClassNames := self compiled_classNamesForPlatform:platformID.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3732
                platformClassNames
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3733
                    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
  3734
                    thenDo:[:nm | Transcript tab; showCR:nm].
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3735
                UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3736
                    alreadyWarned ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3737
                        (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 compilation order for this platform''s classes?' withCRs bindWith:platformID))
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3738
                        ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3739
                            AbortOperationRequest raise.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3740
                        ].
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3741
                    ].
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3742
                    alreadyWarned := true
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3743
                ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3744
            ] ifFalse:[
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  3745
                classes := Class classesSortedByLoadOrder:platformClasses.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3746
                platformClassNames := platformClasses collect:[:eachClass| eachClass name].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3747
            ].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3748
            mapping at:platformID asUppercase put:platformClassNames.
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  3749
        ].
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3750
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3751
    ^ mapping
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3752
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3753
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3754
     stx_libbasic classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3755
     stx_libbasic3 classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3756
     stx_libview classNamesByCategory
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  3757
     stx_libjava classNamesByCategory
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3758
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3759
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3760
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3761
    "Modified: / 28-01-2014 / 21:40:23 / cg"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3762
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3763
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3764
commonSymbolsFlag
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3765
    "only for libraries"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3766
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3767
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3768
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  3769
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3770
filenameForClass:classNameOrClass
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3771
    "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
  3772
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3773
"/    "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
  3774
"/     See also: #generateRemoveShellScriptOn: and #generateRenamShellScriptOn:"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3775
"/    classNameOrClass isBehavior ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3776
"/        ^ classNameOrClass generateClassFilename.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3777
"/    ] ifFalse:[
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3778
"/        |cls|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3779
"/
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3780
"/        cls := Smalltalk classNamed:classNameOrClass.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3781
"/        cls notNil ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3782
"/            ^ cls generateClassFilename.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3783
"/        ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3784
"/    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3785
"/    "end special code"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3786
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3787
    ^ Smalltalk fileNameForClass:classNameOrClass.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3788
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3789
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3790
        self filenameForClass:HTML::Encoder
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3791
        Smalltalk fileNameForClass:HTML::Encoder
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3792
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3793
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3794
    "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
  3795
    "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
  3796
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3797
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3798
generateClassLines:classLineTemplate
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3799
    "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
  3800
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3801
    ^ 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
  3802
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3803
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3804
generateClassLines:classLineTemplate forClasses:classNames
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  3805
    "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
  3806
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3807
    ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3808
!
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3809
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3810
generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3811
    "for the init-file: generate class-init-lines for a collection of classes"
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  3812
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3813
    ^ String
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3814
        streamContents:[:s |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3815
            |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3816
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3817
            putLineForClassName := [:className |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3818
                    |newClassLine mappings|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3819
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3820
                    mappings := self classLine_mappings:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3821
                    newClassLine := self replaceMappings:mappings in:classLineTemplate.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3822
                    s nextPutLine:newClassLine
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3823
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3824
            classesLoaded := classNames collect:[:eachClassName | Smalltalk classNamed:eachClassName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3825
                                        thenSelect:[:eachClass | eachClass notNil and:[eachClass isLoaded]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3826
            classNamesUnloaded := classNames
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3827
                        select:[:nm |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3828
                            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3829
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3830
                            cls := Smalltalk classNamed:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3831
                            cls isNil or:[ cls isLoaded not ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3832
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3833
            classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3834
            classNamesSorted do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3835
            classNamesUnloaded do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3836
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3837
            includeAdditionalClasses ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3838
                self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3839
                    do:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3840
                        (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3841
                            putLineForClassName value:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3842
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3843
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3844
                #( ('UNIX' unix)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3845
                   ('WIN32' win32)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3846
                   ('VMS' vms)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3847
                   ('BEOS' beos) )
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3848
                        pairsDo:[:ifdef :platformName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3849
                            |archClassNames archClassesLoaded|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3850
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3851
                            archClassNames := self compiled_classNamesForPlatform:platformName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3852
                            archClassNames notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3853
                                s nextPutLine:'#ifdef ' , ifdef.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3854
                                archClassNames do:[:clsName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3855
                                    putLineForClassName value:clsName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3856
                                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3857
                                s nextPutLine:'#endif /* ' , ifdef , ' */'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3858
                            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3859
                        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3860
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3861
        ]
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3862
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3863
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3864
     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
  3865
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3866
     stx_libbasic3 generateClassLines_libInit_dot_cc
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3867
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  3868
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3869
    "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
  3870
    "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
  3871
    "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
  3872
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3873
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3874
generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3875
    ^ 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
  3876
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3877
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3878
     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
  3879
     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
  3880
     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
  3881
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3882
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3883
    "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
  3884
    "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
  3885
    "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
  3886
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  3887
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3888
generateClasses_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3889
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3890
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3891
    classNamesDict := self classNamesByCategory.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3892
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3893
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3894
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3895
            s nextPutLine:eachCategory,'_CLASSES= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3896
            classNames do:[:eachClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3897
                s tab; nextPutAll:eachClassName; nextPutLine:' \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3898
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3899
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3900
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  3901
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3902
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3903
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3904
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3905
     stx_libbasic generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3906
     stx_libbasic3 generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3907
     stx_libview generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3908
     stx_libboss generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3909
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3910
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3911
    "Created: / 09-08-2006 / 11:24:39 / fm"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3912
    "Modified: / 20-10-2006 / 16:18:54 / cg"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3913
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  3914
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3915
generateDependencies:whichArchitecture
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3916
    ^ String
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3917
        streamContents:[:s |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3918
            |classNames classesPresent classesLoaded clsBaseName putDependencyForClassBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3919
             putDependencyForClassBaseNameBlock
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3920
             archClassNames archClassesPresent archClassesLoaded
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3921
             putSingleClassDependencyEntryBlock putDependencyForExtensionsBlock classSortBlock|
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3922
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3923
            classSortBlock := [ :a :b|
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3924
                a package == b package ifTrue:[ 
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3925
                    a name < b name
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3926
                ] ifFalse:[ 
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3927
                    a package < b package
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3928
                ].
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3929
            ].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3930
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3931
            putSingleClassDependencyEntryBlock := [:cls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3932
                    |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3933
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3934
                    s nextPutAll:' $(INCLUDE_TOP)'.
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  3935
                    s nextPutAll:(self pathSeparator:whichArchitecture).
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3936
                    sclsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3937
                    s nextPutAll:(self
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3938
                                topRelativePathTo:sclsBaseName
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3939
                                inPackage:cls package
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3940
                                architecture:whichArchitecture).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3941
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3942
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3943
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3944
            putDependencyForClassBaseNameBlock := [:clsBaseName |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3945
                    s nextPutAll:'$(OUTDIR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3946
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3947
                    s nextPutAll:'.$(O)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3948
                    s nextPutAll:' '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3949
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3950
                    s nextPutAll:'.$(H)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3951
                    s nextPutAll:': '.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3952
                    s nextPutAll:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3953
                    s nextPutAll:'.st'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3954
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3955
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3956
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3957
            putDependencyForClassBlock := [:cls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3958
                    |clsBaseName classes|
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3959
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3960
                    clsBaseName := self filenameForClass:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3961
                    putDependencyForClassBaseNameBlock value:clsBaseName.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3962
                    cls isLoaded ifTrue:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3963
                        classes := IdentitySet new.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3964
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3965
                            sharedPools do:[:poolClass |
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  3966
                                poolClass isNil ifTrue:[
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  3967
                                    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
  3968
                                ] ifFalse:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3969
                                    classes add:poolClass.
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  3970
                                ]
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3971
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3972
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3973
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3974
                            allSuperclassesDo:[:scls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3975
                                classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3976
                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3977
                        cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3978
                            allPrivateClassesDo:[:eachPrivateClass |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3979
                                eachPrivateClass
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3980
                                    allSuperclassesDo:[:scls |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3981
                                        |sclsBaseName|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3982
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3983
                                        scls ~~ cls ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3984
                                            scls isPrivate ifFalse:[
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3985
                                                (classes includes:scls) ifFalse:[
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3986
                                                    classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3987
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3988
                                            ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3989
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3990
                                    ]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3991
                            ].
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3992
                        "/ Sort them to get stable order to avoid false conflicts
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3993
                        classes := classes asSortedCollection:classSortBlock.
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  3994
                        classes do:[:each | putSingleClassDependencyEntryBlock value:each].    
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3995
                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3996
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3997
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3998
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  3999
            putDependencyForExtensionsBlock := [
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4000
                    | classes |
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4001
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4002
                    s nextPutAll:'$(OUTDIR)extensions.$(O): extensions.st'.
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4003
                    classes := Set new.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4004
                    self extensionMethodNames pairWiseDo:[:className :selector |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4005
                            |mthdCls cls|
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4006
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4007
                            ((mthdCls := Smalltalk classNamed:className) notNil
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4008
                              and:[ mthdCls isLoaded ])
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4009
                                    ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4010
                                        cls := mthdCls theNonMetaclass.
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4011
                                        (classes includes:cls) ifFalse:[
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4012
                                            cls
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4013
                                                withAllSuperclassesDo:[:scls |
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4014
                                                    (classes includes:scls) ifFalse:[
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4015
                                                        classes add:scls.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4016
                                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4017
                                                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4018
                                        ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4019
                                    ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4020
                        ].
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4021
                    "/ Sort them to get stable order to avoid false conflicts
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4022
                    classes := classes asSortedCollection:classSortBlock.
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4023
                    classes do:[:each | putSingleClassDependencyEntryBlock value:each].         
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4024
                    s nextPutLine:' $(STCHDR)'.
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
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4027
            classNames := self compiled_classNames_common.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4028
            classesPresent := classNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4029
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4030
                thenSelect:[:cls | cls notNil].
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4031
            classesLoaded := classesPresent select:[:cls | cls isLoaded].
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4032
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4033
            (Class classesSortedByLoadOrder:classesLoaded) do:putDependencyForClassBlock.
15376
e7851cc7f340 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15372
diff changeset
  4034
            classesPresent reject:[:cls | cls isLoaded] thenDo:putDependencyForClassBlock.
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4035
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4036
            self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4037
                do:[:className :attr |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4038
                    |cls|
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
                    (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4041
                        ((cls := Smalltalk classNamed:className) notNil) ifTrue:[
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4042
                            putDependencyForClassBlock value:cls.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4043
                        ]
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
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4046
            archClassNames := self compiled_classNamesForPlatform:whichArchitecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4047
            archClassesPresent := archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4048
                collect:[:className | Smalltalk classNamed:className]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4049
                thenSelect:[:cls | cls notNil].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4050
15367
62084d5299ff class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15366
diff changeset
  4051
            archClassesLoaded := archClassesPresent select:[:cls | cls isLoaded].
13763
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4052
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4053
            (Class classesSortedByLoadOrder:archClassesLoaded)
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4054
                do:putDependencyForClassBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4055
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4056
            "some classes are not loaded - probably this is the wrong architecture.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4057
             Sorry, but for these classes, we do not know the superclass chain"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4058
            archClassesPresent
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4059
                select:[:cls | cls isLoaded not]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4060
                thenDo:putDependencyForClassBlock.
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
            "for the following classes, we do not know the superclass chain
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4063
             and neither the real class file name"
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4064
            archClassNames
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4065
                select:[:eachClassName | (Smalltalk classNamed:eachClassName) isNil]
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4066
                thenDo:[:eachClassName |
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4067
                    putDependencyForClassBaseNameBlock value:(self filenameForClass:eachClassName).
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4068
                    s nextPutLine:' $(STCHDR)'.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4069
                ].
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4070
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4071
            self hasExtensionMethods ifTrue:putDependencyForExtensionsBlock.
560aef322c65 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13734
diff changeset
  4072
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4073
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4074
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4075
     stx_libbasic3 generateDependencies:#unix
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4076
     stx_libbasic3 generateDependencies:#win32
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4077
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4078
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4079
    "Created: / 14-09-2006 / 12:38:57 / cg"
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4080
    "Modified: / 27-10-2011 / 16:35:59 / cg"
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4081
    "Modified: / 27-02-2014 / 22:34:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4082
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4083
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4084
generateDependencies_unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4085
    ^ self generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4086
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4087
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4088
     stx_libbasic3 generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4089
     stx_libbasic3 generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4090
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4091
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4092
    "Modified: / 14-09-2006 / 13:32:34 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4093
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4094
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4095
generateDependencies_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4096
    ^ self generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4097
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4098
    "Created: / 14-09-2006 / 12:39:18 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4099
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4100
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4101
generateLocalIncludes_unix
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4102
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4103
        s nextPutAll:(self localIncludes_unix).
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4104
        self searchForProjectsWhichProvideHeaderFiles asSortedCollection
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4105
            do:[:includeProject |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4106
                s nextPutAll:' -I$(INCLUDE_TOP)/',(self topRelativePathToPackage:includeProject withSeparator:'/')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4107
            ]
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4108
    ]
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4109
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4110
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4111
     bosch_dapasx generateLocalIncludes_unix
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4112
     bosch_dapasx_datenbasis generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4113
     stx_libbasic generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4114
     stx_libview generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4115
     stx_libtool2 generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4116
     stx_libui generateLocalIncludes_unix
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  4117
     cg_demos_helloWorld localIncludes_unix
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4118
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4119
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4120
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4121
    "Modified: / 07-12-2006 / 17:47:06 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4122
    "Modified: / 25-11-2013 / 16:40:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4123
!
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4124
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4125
generateLocalIncludes_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4126
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4127
        s nextPutAll:(self localIncludes_win32).
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4128
        self searchForProjectsWhichProvideHeaderFiles asSortedCollection
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4129
            do:[:includeProject |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4130
                s nextPutAll:' -I$(INCLUDE_TOP)\',(self topRelativePathToPackage:includeProject withSeparator:'\')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4131
            ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4132
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4133
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4134
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4135
     bosch_dapasx_application generateLocalIncludes_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4136
     bosch_dapasx_datenbasis generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4137
     stx_libbasic generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4138
     stx_libview generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4139
     stx_libtool2 generateLocalIncludes_win32
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4140
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4141
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4142
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4143
    "Modified: / 07-12-2006 / 17:47:10 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4144
    "Modified: / 25-11-2013 / 16:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4147
generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4148
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4149
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4150
    classNamesDict := self classNamesByCategory.
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  4151
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4152
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4153
        |putLineForClassName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4154
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4155
        putLineForClassName :=
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4156
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4157
                |mappings newObjectLine|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4158
                mappings := self objectLine_make_dot_spec_mappings: eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4159
                newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4160
                s nextPutLine:newObjectLine.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4161
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4162
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4163
        classNamesDict keysAndValuesDo:[:eachCategory :classNames|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4164
            s nextPutLine:eachCategory,'_OBJS= \'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4165
            classNames do:putLineForClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4166
            (eachCategory = 'COMMON' and:[self hasExtensionMethods]) ifTrue:[
14643
11cc29aea34c class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14642
diff changeset
  4167
                s nextPutLine:'    $(OUTDIR_SLASH)extensions.$(O) \'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4168
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4169
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4170
            s cr.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4171
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4172
        s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4173
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4174
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4175
    "
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4176
     stx_libbasic generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4177
     stx_libbasic3 generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4178
     stx_libview generateObjects_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4179
     stx_libboss generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4180
    "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4181
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4182
    "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
  4183
    "Modified: / 20-10-2006 / 16:18:54 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4184
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4185
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4186
generateRequiredMakePrerequisites_bc_dot_mak
11380
ac50ce4321b5 Fix prerequisite makes (pushd)
Stefan Vogel <sv@exept.de>
parents: 11377
diff changeset
  4187
    |myProjectId|
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4188
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4189
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4190
        myProjectId := self package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4191
        "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4192
         is required!!
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4193
         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
  4194
         'popd' is not needed, since each line is executed in
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4195
                an own cmd.exe process.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4196
         'popd' is not desireable, since it masks a possible
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4197
                error return from the 'bmake'.
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4198
        "
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4199
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4200
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4201
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:eachProjectId |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4202
            s tab; nextPutAll:'pushd ';
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4203
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4204
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4205
        ].
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4206
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4207
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4208
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4209
     exept_expecco_application generateRequiredMakePrerequisites_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4210
     alspa_batch_application generateRequiredMakePrerequisites_bc_dot_mak
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4211
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4212
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4213
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4214
generateRequiredMakePrerequisites_make_dot_proto
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4215
    |libPath|
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4216
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4217
    ^ String streamContents:[:s |
14547
985d895bdb58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14521
diff changeset
  4218
        "cg: changed to not go and remake librun"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  4219
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:projectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4220
            libPath := self pathToPackage:projectID withSeparator:'/'.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4221
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"'.
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
        s cr.
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4225
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4226
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4227
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4228
     exept_expecco_application generateRequiredMakePrerequisites_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4229
     alspa_batch_application generateRequiredMakePrerequisites_make_dot_proto
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4230
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4231
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4232
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4233
generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4234
    |myProjectId preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4235
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4236
    myProjectId := self package.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4237
    "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4238
     is required!!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4239
     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
  4240
     'popd' is not needed, since each line is executed in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4241
            an own cmd.exe process.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4242
     'popd' is not desierable, since it masks a possible
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4243
            error return from the 'bmake'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4244
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4245
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4246
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4247
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4248
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4249
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4250
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4251
        preRequisites do:[:eachProjectId |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4252
            s tab; nextPutAll:'pushd ';
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4253
                   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4254
                   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4255
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4256
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4257
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4258
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4259
     exept_expecco_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4260
     alspa_batch_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4261
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4262
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4263
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4264
generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4265
    |libPath preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4266
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4267
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4268
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4269
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4270
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4271
    ^ String streamContents:[:s |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4272
        preRequisites do:[:projectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4273
            libPath := self pathToPackage:projectID withSeparator:'/'.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4274
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4275
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4276
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4277
        s cr.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4278
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4279
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4280
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4281
     exept_expecco_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4282
     alspa_batch_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4283
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4284
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4285
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4286
generateSubDirectories
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4287
    ^ String streamContents:[:s |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4288
        self subProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4289
            do:[:eachProjectID |
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  4290
                s space; nextPutAll:(self pathToPackage:eachProjectID from:self package withSeparator:'/')
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4291
            ]
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4292
    ]
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4293
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4294
    "
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  4295
     exept_expecco generateSubDirectories
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4296
    "
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4297
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4298
    "Created: / 09-08-2006 / 11:26:59 / fm"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4299
    "Modified: / 14-09-2006 / 18:46:18 / cg"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4300
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4301
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4302
generate_definitionClassLine_libInit_dot_cc
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4303
    "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
  4304
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4305
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4306
        generateClassLines:(self classLine_libInit_dot_cc)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4307
        forClasses:(Array with:self name)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4308
        includeAdditionalClasses:false
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4309
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4310
    "
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4311
     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
  4312
    "
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4313
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4314
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4315
headerFileOutputArg
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4316
"/    "all stx stuff goes to the common include directory.
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4317
"/     Everything else is left locally"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4318
"/
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4319
"/    (
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4320
"/        #(
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4321
"/            'stx:libbasic'        'stx:libview'         'stx:libtool'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4322
"/            'stx:libbasic2'       'stx:libview2'        'stx:libtool2'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4323
"/            'stx:libbasic3'       'stx:libwidg'         'stx:libhtml'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4324
"/            'stx:libcomp'         'stx:libwidg2'        'stx:libui'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4325
"/            'stx:libboss'         'stx:libdb'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4326
"/        )
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4327
"/    includes:self package) ifTrue:[
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4328
"/        ^ '-H$(INCLUDE)'
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4329
"/    ].
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4330
    ^ '-headerDir=.'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4331
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4332
    "Created: / 18-08-2006 / 13:01:52 / cg"
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4333
    "Modified: / 23-12-2011 / 15:07:27 / cg"
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4334
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  4335
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4336
objectLine_make_dot_spec_mappings: aClassName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4337
    ^ Dictionary new
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4338
        at: 'CLASSFILE' put:(self filenameForClass:aClassName);
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4339
        yourself
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4340
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4341
    "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
  4342
    "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
  4343
    "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
  4344
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4345
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4346
subProjectBmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4347
    "generate submake-calls for borland bcc"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4348
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4349
    ^ self subProjectMakeCallsUsing:'call bmake %1 %2'.
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4350
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4351
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4352
subProjectLCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4353
    "generate submake-calls for lcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4354
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4355
    ^ self subProjectMakeCallsUsing:'call lccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4356
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4357
    "Created: / 03-09-2012 / 19:49:08 / cg"
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4358
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4359
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  4360
subProjectMakeCallsUsing:callString
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4361
    ^ String streamContents:[:s |
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  4362
        self effectiveSubProjects do:[:packageID |
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4363
            s nextPutLine:'@echo "***********************************"'.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4364
            s nextPutLine:'@echo "Buildung ',(packageID copyReplaceAll:$: with:$/).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4365
            s nextPutLine:'@echo "***********************************"'.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4366
            s nextPutLine:'@cd ', (self msdosPathToPackage:packageID from:(self package)).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4367
            s nextPutAll:'@'; nextPutLine:callString.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4368
            s nextPutLine:'@cd ', (self msdosPathToPackage:(self package) from:packageID).
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4369
            s cr.
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4370
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4371
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4372
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4373
    "Created: / 14-09-2006 / 18:40:09 / cg"
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  4374
    "Modified: / 27-09-2011 / 19:36:12 / cg"
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4375
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4376
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4377
subProjectMingwmakeCalls
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4378
    "generate submake-calls for mingw"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4379
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4380
    ^ self subProjectMakeCallsUsing:'call mingwmake %1 %2'.
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4381
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4382
    "Created: / 05-09-2012 / 19:45:53 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4383
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4384
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4385
subProjectTCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4386
    "generate submake-calls for tcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4387
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4388
    ^ self subProjectMakeCallsUsing:'call tccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4389
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4390
    "Created: / 03-09-2012 / 19:50:53 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4391
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4392
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4393
subProjectVCmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4394
    "generate submake-calls for visual-C"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  4395
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4396
    ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4397
! !
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4398
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4399
!ProjectDefinition class methodsFor:'file templates'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4400
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4401
autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4402
    "for linux's autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4403
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4404
^
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4405
'# -*- shell-script -*-
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4406
[Meta]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4407
ShortName: %(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4408
SoftwareVersion: %(PRODUCT_VERSION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4409
DisplayName: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4410
RootName: @exept.de/expecco:$SOFTWAREVERSION
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4411
Summary: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4412
Maintainer: %(MAINTAINER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4413
Packager: %(PACKAGER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4414
PackageVersion: 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4415
CPUArchitectures: x86
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4416
AutopackageTarget: 1.0
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4417
Type: %(PRODUCT_TYPE)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4418
License: %(PRODUCT_LICENSE)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4419
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4420
[Description]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4421
%(PRODUCT_DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4422
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4423
[BuildPrepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4424
# If you''re using autotools, the default should be enough.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4425
# 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
  4426
# need to pass arguments to configure, just add them to prepareBuild:
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4427
# prepareBuild --enable-foo --disable-bar
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4428
#prepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4429
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4430
[BuildUnprepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4431
# 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
  4432
#unprepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4433
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4434
[Globals]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4435
# 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
  4436
export APKG_BUILD_SKIP_CONFIGURE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4437
export APKG_BUILD_SKIP_MAKE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4438
export MYPREFIX=/opt/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4439
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4440
[Prepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4441
#recommend ''@autopackage.org/autopackage-gtk'' 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4442
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4443
[Imports]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4444
import <<EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4445
$source_dir/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4446
$source_dir/resources
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4447
$source_dir/keyboard.rc
15526
6feb63107e17 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15415
diff changeset
  4448
$source_dir/keyboardMacros.rc
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4449
$source_dir/display.rc
15526
6feb63107e17 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15415
diff changeset
  4450
$source_dir/host.rc
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4451
$source_dir/../doc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4452
$source_dir/../testsuites/webedition
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4453
$source_dir/../projects/libraries
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4454
$source_dir/../reportGenerator/tools
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4455
$source_dir/../../pdf/afm
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4456
$source_dir/../plugin/selenium/libexept_expecco_plugin_selenium.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4457
$source_dir/../externalTools
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4458
EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4459
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4460
for i in $source_dir/*.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4461
do
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4462
    echo $source_dir/$(readlink $i)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4463
done | import
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
[Install]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4466
if [ "$PREFIX" !!= "/usr" ]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4467
then
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4468
    export MYPREFIX=$PREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4469
fi
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4470
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4471
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
  4472
mkdir -p $MYPREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4473
copyFiles expecco *.rc resources        $MYPREFIX/bin
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4474
copyFiles *.so                          $MYPREFIX/lib
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4475
copyFiles doc externalTools             $MYPREFIX/packages/exept/expecco
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4476
copyFiles webedition/projects libraries $MYPREFIX/testsuites
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4477
copyFiles tools                         $MYPREFIX/packages/exept/expecco/reportGenerator
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4478
copyFiles afm                           $MYPREFIX/packages/exept/pdf
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4479
copyFiles libexept_expecco_plugin_selenium.so   $MYPREFIX/plugin
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
#installExe expecco
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4482
#installLib *.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4483
#installData resources
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4484
#installData keyboard.rc
15526
6feb63107e17 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15415
diff changeset
  4485
#installData keyboardMacros.rc
6feb63107e17 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15415
diff changeset
  4486
#installData host.rc
6feb63107e17 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15415
diff changeset
  4487
#installData display.rc
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4488
#installData doc
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4489
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4490
[Uninstall]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4491
# 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
  4492
# "Install" to create files. All autopackage API functions
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4493
# that installs files are logged.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4494
uninstallFromLog
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4495
'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4496
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4497
    "Created: / 21-12-2010 / 09:06:21 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4498
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4499
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4500
bc_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4501
    "answer a template for the bc.mak makefile.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4502
     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
  4503
     $% characters have to be duplicated.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4504
     Only needed for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4505
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4506
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4507
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4508
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4509
bmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4510
    "the template code for the bmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4511
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4512
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4513
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4514
@REM make using Borland bcc32
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4515
@REM type bmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4516
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4517
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4518
@SET DEFINES=
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4519
@REM Kludge got Mercurial, cannot be implemented in Borland make
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4520
@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4521
@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4522
make.exe -N -f bc.mak  %DEFINES% %*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4523
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4524
%(SUBPROJECT_BMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4525
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4526
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4527
    "Created: / 17-08-2006 / 20:04:14 / cg"
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4528
    "Modified: / 04-09-2012 / 11:46:22 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4529
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4530
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4531
builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4532
    "For rake-base automatic builder"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4533
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4534
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4535
# generated from project definition
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4536
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4537
# load package dependencies
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4538
load ''package.deps.rake''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4539
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4540
# kludge: clear some invalid dependencies of libwidg
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4541
# (should be fixed in baseline)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4542
clear "stx:libwidg" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4543
clear "stx:libwidg2" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4544
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4545
project :''%(APPLICATION):baseline'' do
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4546
  # preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4547
  %(PREAMBLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4548
  # --------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4549
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4550
%(PACKAGES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4551
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4552
  application "%(APPLICATION_PACKAGE)"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4553
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4554
  # postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4555
  %(POSTABLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4556
  # ---------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4557
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4558
end
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4559
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4560
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4561
    "Created: / 24-02-2011 / 11:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4562
    "Modified: / 27-02-2011 / 12:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4563
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4564
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4565
builder_baseline_dot_rbspec_postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4566
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4567
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4568
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4569
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4570
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4571
builder_baseline_dot_rbspec_preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4572
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4573
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4574
    "Created: / 24-02-2011 / 11:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4575
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4576
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4577
classLine_libInit_dot_cc
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
^'_%(CLASS)_Init(pass,__pRT__,snd);'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4580
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4581
    "Created: / 08-08-2006 / 12:51:44 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4582
    "Modified: / 08-08-2006 / 15:46:05 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4583
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4584
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4585
lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4586
    "the template code for the lccmake.bat file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4587
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4588
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4589
'@REM -------
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4590
@REM make using lcc compiler
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4591
@REM type lccmake, and wait...
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4592
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4593
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  4594
make.exe -N -f bc.mak -DUSELCC=1 %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4595
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4596
%(SUBPROJECT_LCCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4597
'
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4598
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4599
    "Created: / 03-09-2012 / 19:49:23 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4600
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4601
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4602
make_dot_proto
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4603
    "the template code for the make.proto file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4604
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4605
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4606
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4607
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4608
make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4609
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4610
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4611
'# $','Header','$
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4612
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4613
# DO NOT EDIT
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  4614
# 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
  4615
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4616
# Warning: once you modify this file, do not rerun
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4617
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4618
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4619
# This file contains specifications which are common to all platforms.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4620
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4621
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4622
# Do NOT CHANGE THESE DEFINITIONS
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4623
# (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
  4624
#  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
  4625
MODULE=%(MODULE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4626
MODULE_DIR=%(MODULE_DIRECTORY)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4627
PACKAGE=$(MODULE):$(MODULE_DIR)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4628
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4629
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4630
# Argument(s) to the stc compiler (stc --usage).
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  4631
#  -headerDir=. : create header files locally
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4632
#                (if removed, they will be created as common
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4633
#  -Pxxx       : defines the package
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4634
#  -Zxxx       : a prefix for variables within the classLib
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4635
#  -Dxxx       : defines passed to to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4636
#  -Ixxx       : include path passed to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4637
#  +optspace   : optimized for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4638
#  +optspace2  : optimized more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4639
#  +optspace3  : optimized even more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4640
#  +optinline  : generate inline code for some ST constructs
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4641
#  +inlineNew  : additionally inline new
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4642
#  +inlineMath : additionally inline some floatPnt math stuff
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4643
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4644
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4645
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4646
# STCLOCALOPTIMIZATIONS=+optspace3
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4647
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4648
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4649
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4650
# Argument(s) to the stc compiler (stc --usage).
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4651
#  -warn            : no warnings
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4652
#  -warnNonStandard : no warnings about ST/X extensions
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4653
#  -warnEOLComments : no warnings about EOL comment extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4654
#  -warnPrivacy     : no warnings about privateClass extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4655
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4656
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4657
# STCWARNINGS=-warn
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4658
# STCWARNINGS=-warnNonStandard
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4659
# STCWARNINGS=-warnEOLComments
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4660
STCWARNINGS=%(STCWARNINGOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4661
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4662
%(CLASSES)
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4663
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4664
%(OBJECTS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4665
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4666
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4667
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4668
    "Modified: / 09-08-2006 / 15:10:57 / fm"
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  4669
    "Modified: / 26-07-2012 / 00:56:03 / cg"
12364
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
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4672
makefile
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4673
^
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4674
'#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4675
# DO NOT EDIT
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4676
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4677
# make uses this file (Makefile) only, if there is no
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4678
# file named "makefile" (lower-case m) in the same directory.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4679
# My only task is to generate the real makefile and call make again.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4680
# Thereafter, I am no longer used and needed.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4681
#
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4682
# MACOSX caveat:
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4683
#   as filenames are not case sensitive (in a default setup),
15385
2ca0c225509e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15384
diff changeset
  4684
#   we cannot use the above trick. Therefore, this file is now named
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4685
#   "Makefile.init", and you have to execute "make -f Makefile.init" to
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  4686
#   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
  4687
#   script.
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4688
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4689
.PHONY: run
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4690
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4691
run: makefile
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4692
        $(MAKE) -f makefile
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4693
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4694
#only needed for the definition of $(TOP)
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4695
include Make.proto
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4696
14665
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4697
makefile: mf
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4698
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  4699
mf:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4700
        $(TOP)/rules/stmkmf
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4701
'
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4702
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4703
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4704
mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4705
    "the template code for the mingwmake.bat file"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4706
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4707
    ^
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4708
'@REM -------
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4709
@REM make using mingw gnu compiler
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4710
@REM type mingwmake, and wait...
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4711
@REM do not edit - automatically generated from ProjectDefinition
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4712
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4713
@SET DEFINES=
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4714
@REM Kludge got Mercurial, cannot be implemented in Borland make
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4715
@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4716
@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  4717
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4718
@pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4719
@call find_mingw.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4720
@popd
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4721
make.exe -N -f bc.mak %DEFINES% %%USEMINGW_ARG%% %%*
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4722
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4723
%(SUBPROJECT_MINGWMAKE_CALLS)
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4724
'
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4725
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4726
    "Created: / 05-09-2012 / 19:44:51 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4727
    "Modified: / 19-03-2013 / 08:54:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4728
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4729
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4730
objectLine_make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4731
14643
11cc29aea34c class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14642
diff changeset
  4732
    ^'    $(OUTDIR_SLASH)%(CLASSFILE).$(O) \'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4733
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4734
    "Created: / 08-08-2006 / 20:16:46 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4735
    "Modified: / 23-08-2006 / 11:11:38 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4736
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4737
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4738
packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4739
    "the template code for the <libName>.rc file.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4740
     Only used for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4741
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4742
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4743
'//
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4744
// DO NOT EDIT
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4745
// automagically generated from the projectDefinition: ',self name,'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4746
//
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4747
VS_VERSION_INFO VERSIONINFO
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4748
  FILEVERSION     %(FILE_VERSION_COMMASEPARATED)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4749
  PRODUCTVERSION  %(PRODUCT_VERSION_COMMASEPARATED)
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4750
#if (__BORLANDC__)
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4751
  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4752
  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4753
  FILEOS          VOS_NT_WINDOWS32
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4754
  FILETYPE        %(FILETYPE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4755
  FILESUBTYPE     VS_USER_DEFINED
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4756
#endif
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4757
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4758
BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4759
  BLOCK "StringFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4760
  BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4761
    BLOCK "040904E4"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4762
    BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4763
      VALUE "CompanyName", "%(COMPANY_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4764
      VALUE "FileDescription", "%(FILE_DESCRIPTION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4765
      VALUE "FileVersion", "%(FILE_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4766
      VALUE "InternalName", "%(INTERNAL_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4767
%(LEGAL_COPYRIGHT_LINE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4768
      VALUE "ProductName", "%(PRODUCT_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4769
      VALUE "ProductVersion", "%(PRODUCT_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4770
      VALUE "ProductDate", "%(PRODUCT_DATE)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4771
    END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4772
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4773
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4774
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4775
  BLOCK "VarFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4776
  BEGIN                               //  Language   |    Translation
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4777
    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4778
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4779
END
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
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4782
     stx_libbasic3 packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4783
     stx_libbasic3 generate_packageName_dot_rc
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
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4786
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4787
    "Modified: / 09-08-2006 / 15:10:57 / fm"
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  4788
    "Modified: / 07-10-2011 / 10:51:34 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4789
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4790
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4791
package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4792
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4793
# Package dependencies.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4794
# Automatically generated by project defintion.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4795
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4796
%(DEPENDENCIES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4797
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4798
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4799
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4800
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4801
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4802
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4803
tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4804
    "the template code for the tccmake.bat file"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4805
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4806
    ^
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4807
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4808
@REM make using tcc compiler (Tiny-C)
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4809
@REM type tccmake, and wait...
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4810
@REM do not edit - automatically generated from ProjectDefinition
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4811
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  4812
make.exe -N -f bc.mak -DUSETCC=1 %%*
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4813
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4814
%(SUBPROJECT_TCCMAKE_CALLS)
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4815
'
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4816
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4817
    "Created: / 03-09-2012 / 19:50:41 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4818
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4819
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4820
vcmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4821
    "the template code for the vcmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4822
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4823
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4824
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4825
@REM make using Microsoft Visual C compiler
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4826
@REM type vcmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4827
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4828
@REM -------
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4829
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4830
@if not defined VSINSTALLDIR (
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4831
    pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4832
    call vcsetup.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  4833
    popd
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  4834
)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4835
@SET DEFINES=
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4836
@REM Kludge got Mercurial, cannot be implemented in Borland make
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4837
@FOR /F "tokens=*" %%%%i in (''hg root'') do SET HGROOT=%%%%i
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4838
@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4839
make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4840
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4841
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4842
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4843
%(SUBPROJECT_VCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4844
'
12966
396518f8f526 usevc/usebc handling
Claus Gittinger <cg@exept.de>
parents: 12964
diff changeset
  4845
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  4846
    "Modified: / 04-09-2012 / 11:45:49 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4847
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4848
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4849
!ProjectDefinition class methodsFor:'loading'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4850
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4851
ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4852
    "ensure that all classes and extensions are loaded properly.
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4853
     This is normally no problem for compiled classLibs - however, if a package
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4854
     has only be installedAsAutoloaded, some classes might want to ensure that
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4855
     when being loaded themself."
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4856
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4857
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4858
        self breakPoint:#cg.
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4859
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4860
    self hasAllClassesFullyLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4861
        self hasAllClassesLoaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4862
            self breakPoint:#cg.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4863
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4864
        self installAutoloadedClasses.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4865
        self classes do:[:cls | cls autoload ].
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4866
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4867
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4868
    "
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4869
     stx_libbasic ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4870
    "
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4871
    "Verbose := true
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4872
     stx_libjavascript hasAllExtensionsLoaded
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  4873
    "
12735
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4874
    "Verbose := true
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4875
     stx_goodies_soap_xe hasAllExtensionsLoaded
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  4876
    "
13689
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  4877
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  4878
    "Modified: / 12-09-2011 / 16:57:53 / cg"
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4879
!
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  4880
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4881
load
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4882
    "load the project
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4883
     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
  4884
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4885
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4886
    ^ self loadAsAutoloaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4887
!
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
loadAsAutoloaded:asAutoloaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4890
    "load the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4891
     If asAutoloaded == true, install all new classes as autoloaded.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4892
     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
  4893
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4894
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4895
    |newStuffHasBeenLoaded meOrMySecondIncarnation|
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4896
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4897
    self projectIsLoaded ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4898
        asAutoloaded ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4899
            "/ to be considered !!
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4900
"/            self isFullyLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4901
"/                self hasAllExtensionsLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4902
"/                    self loadExtensions.
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4903
"/                ].
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4904
"/                self loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4905
"/            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4906
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4907
        ^ false
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  4908
    ].
12749
160f7b56e426 oops: leftover halts.
Claus Gittinger <cg@exept.de>
parents: 12748
diff changeset
  4909
    thisContext isRecursive ifTrue:[self breakPoint:#cg. ^ false].    "/ avoid endless loops
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4910
    (PackagesBeingLoaded includes:self package) ifTrue:[
14851
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4911
        "/ seems to be a recursive call
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4912
        ^ false
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  4913
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4914
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4915
    PackagesBeingLoaded add:self package.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4916
    [
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4917
        newStuffHasBeenLoaded := false.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4918
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4919
        (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4920
            "/ thisContext fullPrintAll.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4921
            Transcript showCR:('loading %1%2...'
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4922
                                bindWith:(asAutoloaded ifTrue:['as autoloaded '] ifFalse:[''])
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4923
                                with:self name).
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4924
        ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4925
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4926
        self rememberOverwrittenExtensionMethods.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4927
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4928
        self activityNotification:'Executing pre-load action'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4929
        self executeHooks: #preLoad.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4930
        self preLoadAction.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4931
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4932
        meOrMySecondIncarnation := self.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4933
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4934
        Class withoutUpdatingChangesDo:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4935
            self activityNotification:'Loading prerequisities'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4936
            self loadPreRequisitesAsAutoloaded:asAutoloaded.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4937
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4938
            self checkPrerequisitesForLoading.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4939
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4940
            asAutoloaded ifFalse:[
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4941
                "ignore binary class library load failure - try is the hard way (loading classes)"
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4942
                PackageLoadError ignoreIn:[
16151
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4943
                    self loadClassLibrary.
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4944
                    "/ could have overloaded my first incarnation
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4945
                    meOrMySecondIncarnation := (Smalltalk at:(self name)) ? self.
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4946
                    meOrMySecondIncarnation ~~ self ifTrue:[
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4947
                        meOrMySecondIncarnation fetchSlotsFrom:self.
927ecf5f7c9a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16147
diff changeset
  4948
                    ].
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4949
                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4950
            ].
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4951
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4952
            self hasAllExtensionsLoaded ifFalse:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4953
                self activityNotification:'Loading extensions'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4954
                newStuffHasBeenLoaded := newStuffHasBeenLoaded | meOrMySecondIncarnation loadExtensions.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4955
            ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4956
            (self hasAllClassesLoaded:asAutoloaded not) ifFalse:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4957
                self activityNotification:'Loading classes'.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4958
                newStuffHasBeenLoaded := newStuffHasBeenLoaded | (meOrMySecondIncarnation loadAllClassesAsAutoloaded:asAutoloaded).
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
    "/ 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
  4961
    "/ to some classes being loaded from source (soap)
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  4962
"/            self activityNotification:'Loading sub projects'.
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  4963
"/            meOrMySecondIncarnation loadSubProjectsAsAutoloaded:asAutoloaded.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4964
        ].
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4965
        self activityNotification:('Executing post-load action for %1' bindWith:self package).
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
        "/ mhmh - already done for dll-loaded packages
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4968
        "/ meOrMySecondIncarnation initializeAllClasses.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4969
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4970
        meOrMySecondIncarnation projectIsLoaded:true.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4971
        meOrMySecondIncarnation ~~ self ifTrue:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4972
            self projectIsLoaded:true.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4973
        ].
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4974
    ] ensure:[
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  4975
        PackagesBeingLoaded remove:self package ifAbsent:[].
12736
e18f8f352186 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 12735
diff changeset
  4976
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4977
13194
8e451f8ff654 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13178
diff changeset
  4978
    self activityNotification:('Done (%1).' bindWith:self package).
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4979
    ^ newStuffHasBeenLoaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4980
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4981
    "Created: / 17-08-2006 / 01:01:41 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4982
    "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
  4983
    "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
  4984
    "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
  4985
    "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
  4986
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4987
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4988
unloadPackage
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4989
    "unload the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4990
     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
  4991
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4992
    self projectIsLoaded ifFalse:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4993
    thisContext isRecursive ifTrue:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4994
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4995
    (self infoPrinting and:[Smalltalk silentLoading not]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4996
        "/ thisContext fullPrintAll.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  4997
        Transcript show:'unloading '; showCR:self name.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4998
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4999
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5000
    self activityNotification:'Executing pre-unload action'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5001
    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
  5002
    self executeHooks: #preUnload.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5003
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5004
    self activityNotification:'Restoring original methods'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5005
    self restoreOverwrittenExtensionMethods.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5006
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5007
    Class withoutUpdatingChangesDo:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5008
        self activityNotification:'Unloading sunprojects'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5009
        self unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5010
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5011
        self activityNotification:'Unloading classes'.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5012
        self unloadClassLibrary.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5013
        self unloadAllClasses.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5014
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5015
    self projectIsLoaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5016
    ^ 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
  5017
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5018
    "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
  5019
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5020
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5021
!ProjectDefinition class methodsFor:'misc ui support'!
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5022
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5023
iconInBrowserSymbol
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5024
    <resource: #programImage>
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5025
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5026
    self theNonMetaclass isApplicationDefinition ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5027
        self theNonMetaclass isGUIApplication ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5028
            ^ #guiApplicationDefinitionClassIcon
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5029
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5030
        ^ #applicationDefinitionClassIcon
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5031
    ].
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5032
    ^ super iconInBrowserSymbol
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5033
! !
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5034
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5035
!ProjectDefinition class methodsFor:'private'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5036
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5037
abbrevs
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5038
    "return a dictionary containing my abbreviations;
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5039
     this dictionary is read from my project-directory's abbrev.stc file,
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5040
     and cached for future use"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5041
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5042
    |abbrevs|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5043
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5044
    AccessLock critical:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5045
        |mustRead file myPackageDirectory|
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5046
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5047
        AbbrevDictionary isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5048
            AbbrevDictionary := WeakIdentityDictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5049
        ].
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
        mustRead := false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5052
        abbrevs := AbbrevDictionary at:self ifAbsent:[ mustRead := true. Dictionary new ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5053
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5054
        mustRead ifTrue:[
13959
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5055
            myPackageDirectory := self packageDirectory.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5056
            myPackageDirectory isNil ifTrue:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5057
            ] ifFalse:[
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5058
                file := myPackageDirectory / 'abbrev.stc'.
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5059
                file exists ifTrue: [
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5060
                    file readingFileDo:[:stream |
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5061
                        Smalltalk
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5062
                            withAbbreviationsFromStream:stream
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5063
                            do:[:nm :fn :pkg :cat :sz|
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5064
                                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
  5065
                            ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5066
                    ]
a2fd3561bb67 changed: #abbrevs
Claus Gittinger <cg@exept.de>
parents: 13950
diff changeset
  5067
                ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5068
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5069
        ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5070
    ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  5071
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5072
    ^abbrevs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5073
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5074
    "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
  5075
    "Modified: / 20-01-2012 / 15:42:47 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5076
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5077
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5078
additionalClassAttributesFor: aClass
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5079
    "Answers additional set of class attributes for given class
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5080
     Individual project definitions may override this method, but
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5081
     overriding method should always merge its attributes with result
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5082
     of 'super additionalClassAttributesFor: aClass'.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5083
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5084
     Here, we add #autoload attributes to all test cases and
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5085
     test resources, as they are not neccessary for the package
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5086
     and should not be compiled (because of unwanted dependency
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5087
     on stx:goodies/sunit package)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5088
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5089
     But not make them autoloaded when the package is separate
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5090
     test-package - by conventions such package should by named
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5091
     #'module:package/subpackage/tests'    
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5092
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5093
    ((self package endsWith: '/tests') or:[(self package endsWith: '/tests')]) ifFalse:[
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5094
        (aClass inheritsFrom: TestCase) ifTrue:[^#(autoload)].
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5095
        (aClass inheritsFrom: TestResource) ifTrue:[^#(autoload)].
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5096
    ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5097
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5098
    "No additional attributes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5099
    ^#()
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5100
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5101
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5102
        stx_libbasic additionalClassAttributesFor: Object
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5103
        stx_libtool additionalClassAttributesFor: Tools::NavigationHistoryTests
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5104
        stx_goodies_sunit additionalClassAttributesFor: TestCase
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5105
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5106
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5107
        stx_libtool classNamesAndAttributes_code_ignoreOldEntries:true ignoreOldDefinition: true
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5108
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5109
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5110
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5111
    "Created: / 26-10-2009 / 12:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5112
    "Modified: / 20-03-2013 / 19:33:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5113
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5114
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5115
checkIfClassesArePresent
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5116
    "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
  5117
     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
  5118
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5119
    |check nonExistantClasses|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5120
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5121
    nonExistantClasses := Set new.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5122
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5123
    check :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5124
            [:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5125
                |cls fn wasLoaded failedToLoad numClassInstvars|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5126
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5127
                cls := Smalltalk classNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5128
                cls isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5129
                    Transcript showCR:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5130
                    nonExistantClasses add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5131
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5132
            ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5133
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5134
    self allClassNames do:check.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5135
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5136
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5137
            check value:nm
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5138
        ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5139
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5140
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5141
    nonExistantClasses notEmpty ifTrue:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5142
        Transcript showCR:('"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.' bindWith:nonExistantClasses).
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5143
        UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5144
            (Dialog confirm:(Dialog classResources
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5145
                                stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5146
                                with:nonExistantClasses anElement allBold)) ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5147
                AbortOperationRequest raise.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5148
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5149
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5150
        ^ false.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5151
    ].
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
    ^ true
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5154
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5155
    "Modified: / 28-01-2014 / 21:44:37 / cg"
11868
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
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5158
classNamesAndAttributesAsSpecArray
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5159
    "given a classNamesAndAttributes array, make this a spec array (array of arrays).
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5160
     This decompresses class-name entries into a one-element array for easier processing"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5161
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5162
    ^ self classNamesAndAttributes
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5163
        collect:[:entry |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5164
            entry isArray ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5165
                entry first isSymbol ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5166
                    entry
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5167
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5168
                    (Array with:entry first asSymbol) , (entry copyFrom:2)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5169
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5170
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5171
                Array with:entry asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5172
            ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5173
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5174
    "Created: / 19-02-2007 / 16:11:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5175
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5176
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5177
classNamesAndAttributesDo: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5178
    self namesAndAttributesIn:(self classNamesAndAttributes) do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5179
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5180
    "Modified: / 22-08-2006 / 18:20:21 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5181
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5182
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5183
classNamesAndAttributesFromSpecArray:aSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5184
    "given a spec array (array of arrays), make this a classNamesAndAttributes array
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5185
     as stored literally in the method.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5186
     This compresses single element array-elements into plain names
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5187
     (to save code in the compiled binaries)"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5188
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5189
    |newSpec loadedClasses loadedClassNames itemsForLoadedClasses itemsForUnloadedClasses|
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5190
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5191
    newSpec :=
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5192
        aSpecArray
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5193
            collect:[:entry |
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5194
                (entry isArray and:[entry size == 1]) ifTrue:[
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5195
                    entry first
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5196
                ] ifFalse:[
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5197
                    entry
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5198
                ]
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5199
            ].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5200
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5201
    "/ extract loaded and unloaded classes.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5202
    loadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5203
    itemsForLoadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5204
    itemsForUnloadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5205
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5206
    newSpec do:[:entry |
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5207
        |clsName clsOrNil|
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5208
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5209
        clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5210
        clsOrNil := Smalltalk classNamed:clsName.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5211
        (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5212
            loadedClasses add:clsOrNil.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5213
            itemsForLoadedClasses add:entry.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5214
        ] ifFalse:[
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5215
            itemsForUnloadedClasses add:entry.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5216
        ]
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5217
    ].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5218
    "/ and sort by load order 
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5219
    loadedClassNames := (Class classesSortedByLoadOrder:loadedClasses) collect:[:cls | cls name].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5220
    "/ reconstruct contents array, unloaded classes last.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5221
    newSpec := loadedClassNames
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5222
                collect:[:nm | itemsForLoadedClasses 
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5223
                                    detect:[:entry |
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5224
                                        entry = nm
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5225
                                        or:[entry isArray and:[entry first = nm]]]].
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5226
    newSpec := newSpec asArray , itemsForUnloadedClasses asArray.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5227
    "/ self halt.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  5228
    ^ newSpec
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5229
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5230
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5231
compile:someCode categorized:category
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5232
    ^ self compile:someCode categorized:category using:nil
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
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5235
compile:someCode categorized:category using:compilerOrNil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5236
    ^ Class packageQuerySignal
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5237
        answer:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5238
        do:[
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  5239
            (compilerOrNil ? self theMetaclass compilerClass)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5240
                compile:someCode
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5241
                forClass:self theMetaclass
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5242
                inCategory:category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5243
        ]
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5244
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5245
    "Created: / 23-08-2006 / 14:36:53 / cg"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5246
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5247
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5248
compiled_classes
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5249
    ^ self compiled_classNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5250
        collect:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5251
            [:eachName|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5252
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5253
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5254
                cls := (Smalltalk at:eachName asSymbol).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5255
                (cls isNil or:[cls isBehavior not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5256
                    Transcript showCR:('ProjectDefinition: missing/invalid class: ', eachName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5257
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5258
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5259
                cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5260
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5261
        thenSelect:[:cls | cls notNil]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5262
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5263
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5264
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5265
    "Modified: / 07-12-2006 / 17:48:11 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5266
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5267
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5268
compiled_classesDo:aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5269
    self compiled_classes do:aBlock.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5270
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5271
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5272
    "Modified: / 09-08-2006 / 18:02:28 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5273
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5274
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5275
compiled_classesForPlatform:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5276
    ^ (self compiled_classNamesForPlatform:arch)
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5277
        collect:[:eachName | (Smalltalk classNamed:eachName)]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5278
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5279
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5280
     stx_libbasic compiled_classesForArchitecture:#win32
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5281
     stx_libbasic compiled_classesForArchitecture:#macos
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5282
     stx_libbasic compiled_classesForArchitecture:#unix
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5283
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5284
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5285
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5286
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5287
    "Modified: / 07-12-2006 / 17:43:17 / cg"
9627
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
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5290
compiled_classes_common
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5291
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5292
        compiled_classNames_common
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5293
            collect:[:eachName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5294
                |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5295
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5296
                cls := Smalltalk classNamed:eachName.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  5297
                cls isNil ifTrue:[
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5298
                    Transcript showCR:('Warning: Missing/invalid class: %1 - the class is skipped in the list of compiled classes.').
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5299
                    UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5300
                        self warn:('Missing/invalid class: %1\\%2'
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5301
                                    bindWith:eachName
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5302
                                    with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5303
                    ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5304
                    cls := nil.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5305
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5306
                cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5307
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5308
            thenSelect:[:cls| cls notNil "isBehavior"]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5309
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5310
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5311
    "Modified: / 09-08-2006 / 18:02:28 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5312
    "Modified: / 28-01-2014 / 21:45:08 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5313
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  5314
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5315
cvsRevision
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5316
    |rev|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5317
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5318
    rev := self revision.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5319
    rev isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5320
        "not yet pubplished"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5321
        ^ #( '0' '1' )
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5322
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5323
    ^ rev asCollectionOfSubstringsSeparatedBy:$. .
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
     self cvsRevision
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5327
     stx_libbasic3 cvsRevision
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5328
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5329
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5330
    "Created: / 17-08-2006 / 20:19:03 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5331
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5332
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5333
defaultClassAttributesFor: aClass
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5334
    "Answers default set of class attributes for given class.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5335
     This is internal method only, to per-project customization
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5336
     please override either #additionalClassAttributes or
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5337
     #additional classAttributesFor:"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5338
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5339
    | attrs |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5340
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5341
    "JV @ 2010-06-19
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5342
     Add a programming language attribute for non-smalltalk classes.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5343
     Used by multi-lang enabled loading mechanism"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5344
    attrs := aClass programmingLanguage isSmalltalk
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5345
                ifTrue:[#()]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5346
                ifFalse:[Array with: (Array with: #lang with: aClass programmingLanguage name asSymbol)].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5347
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5348
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5349
    "JV @ 2009-10-26
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5350
     Give a project definition to specify additional attributes for given class."
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5351
    attrs := attrs , (self additionalClassAttributesFor: aClass).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5352
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5353
    ^attrs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5354
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5355
    "Created: / 19-06-2010 / 10:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5356
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5357
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5358
inconsistency:message
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5359
    Dialog warn:message
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5360
9627
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
    self searchForNeverCompiledSuperclasses
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5363
    DapasX_Datenbasis searchForNeverCompiledSuperclasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5364
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5365
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5366
    "Created: / 09-08-2006 / 16:32:31 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5367
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5368
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5369
makeOSIncludesWith:fileSeparator from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5370
    ^ aString copy replaceAny:'/\' with:fileSeparator
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
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5373
     self makeOSIncludesWith:$/ from:'-I$(TOP)/foo/bar'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5374
     self makeOSIncludesWith:$\ from:'-I$(TOP)/foo/bar'
9826
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
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5377
    "Created: / 06-09-2006 / 18:17:03 / cg"
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
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5380
makeUnixIncludes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5381
    ^ self makeOSIncludesWith:$/ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5382
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5383
    "Created: / 06-09-2006 / 18:16:19 / cg"
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
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5386
makeWin32Includes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5387
    ^ self makeOSIncludesWith:$\ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5388
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5389
    "Created: / 06-09-2006 / 18:16:13 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5390
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  5391
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5392
mergeClassAttributes: attr1 with: attr2
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5393
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5394
    ^attr1 , (attr2 reject:[:each|attr1 includes: each])
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5395
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5396
    "Created: / 19-06-2010 / 10:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5397
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5398
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5399
mergeDefaultClassAttributesFor: aClass with: attributes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5400
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5401
    ^self mergeClassAttributes: attributes with: (self defaultClassAttributesFor: aClass)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5402
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5403
    "Created: / 19-06-2010 / 10:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5404
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5405
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5406
namesAndAttributesIn:aCollection do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5407
    aCollection do:[:entry |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5408
        |className attributes|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5409
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5410
        entry isArray ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5411
            className := entry.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5412
            attributes := #().
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5413
        ] ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5414
            className := entry first.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5415
            attributes := entry copyFrom:2.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5416
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5417
        aBlock value: className value: attributes
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5418
     ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5419
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5420
    "Created: / 22-08-2006 / 18:20:09 / cg"
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5421
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  5422
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5423
searchForClasses
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5424
    "answer all non-private classes that belong to this project.
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  5425
     They are sorted in load order"
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  5426
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5427
    ^ Class classesSortedByLoadOrder:(self searchForClassesWithProject: self package)
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
    "
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5430
     stx_libbasic3 searchForClasses
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5431
     stx_goodies_webServer_htmlTree searchForClasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5432
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5433
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5434
    "Modified: / 07-08-2006 / 21:56:25 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5435
    "Created: / 17-08-2006 / 21:18:30 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5436
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5437
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5438
searchForClassesWithProject: aProjectID
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5439
    "answer all public and private classes belonging to aProjectID"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5440
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5441
    ^ Smalltalk allClasses
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5442
        select:[:cls | cls package = aProjectID].
9627
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
"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  5445
    self searchForClassesWithProject: #'exept:ctypes'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5446
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5447
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5448
    "Created: / 07-08-2006 / 20:42:39 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5449
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5450
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5451
searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5452
    ^ self searchForExtensionsWithProject:self package
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5453
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5454
"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5455
    self searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5456
    DapasXProject searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5457
    DapasX_Datenbasis searchForExtensions
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  5458
    stx_libtool searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5459
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5460
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5461
    "Modified: / 09-08-2006 / 13:01:26 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5462
    "Created: / 17-08-2006 / 21:17:46 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  5463
    "Modified: / 23-10-2006 / 11:03:07 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5464
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5465
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5466
searchForExtensionsWithProject:aProjectID
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5467
    "search for any class which has extensions from aProjectID.
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5468
     Return the extension-methods sorted by classname-selector"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5469
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5470
    |methods|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5471
11152
92ef5422f17a code reuse
Claus Gittinger <cg@exept.de>
parents: 11149
diff changeset
  5472
    methods := Smalltalk allExtensionsForPackage:aProjectID.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5473
    methods
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5474
        sort:[:m1 :m2 |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5475
            |c1 c2|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5476
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5477
            c1 := m1 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5478
            c2 := m2 mclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5479
            c1 == c2 ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5480
                m1 selector < m2 selector
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5481
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5482
                (c2 isMeta and:[c1 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5483
                    true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5484
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5485
                    (c1 isMeta and:[c2 isMeta not]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5486
                        false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5487
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5488
                        c1 name < c2 name
9908
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5489
"/                        (c2 isSubclassOf:c1) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5490
"/                            true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5491
"/                        ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5492
"/                            (c1 isSubclassOf:c2) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5493
"/                                false
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5494
"/                            ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5495
"/                                "/ leave as is
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5496
"/                                true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5497
"/                            ].
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  5498
"/                        ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5499
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5500
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5501
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5502
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5503
    ^ methods
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5504
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
     self searchForExtensionsWithProject:#'bosch:dapasx'
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5507
     self searchForExtensionsWithProject:#'cg:oyster'
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5508
     self searchForExtensionsWithProject:#'stx:libboss'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5509
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5510
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5511
    "Created: / 17-08-2006 / 21:19:04 / cg"
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  5512
    "Modified: / 12-10-2006 / 20:45:39 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5513
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5514
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5515
searchForProjectsWhichProvideHeaderFiles
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5516
    |addPackage myPackageID requiredPackages|
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5517
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5518
    myPackageID := self package.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5519
    requiredPackages := Set new.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5520
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5521
    addPackage :=
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5522
        [:package |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5523
            (package ~= myPackageID) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5524
                true "(package startsWith:'stx:') not" ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5525
                    package ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5526
                        requiredPackages add:package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5527
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5528
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5529
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5530
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5531
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5532
    "/ need them also...
14886
7498476f1ae6 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14885
diff changeset
  5533
    self mandatoryPreRequisites do:[:eachPreRequisitePackage |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5534
        addPackage value:eachPreRequisitePackage
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5535
    ].
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  5536
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5537
    "/ cg: also need include lines for all referenced packages,
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5538
    "/ because otherwise, a reference to a symbol in a namespace
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5539
    "/ is not resolved correctly by stc (which would not know, if the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5540
    "/ symbol is in Smalltalk or the NameSpace.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5541
    "/ This happens eg. when referring to a class Foo in namespace N
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5542
    "/ as Foo from within the same namespace, but Foo is in another package.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5543
    "/ It is then only in the referencedPreRequisites's, not the mandatory prereqs.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5544
    "/ actually, the question is, if then the package should not be listed in the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5545
    "/ mandatoryPrereqs right away. Discuss this with sv.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5546
    self referencedPreRequisites do:[:eachPreRequisitePackage |
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5547
        addPackage value:eachPreRequisitePackage
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5548
    ].
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5549
10788
f2ff69add7e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10785
diff changeset
  5550
    self compiled_classesDo:[:cls |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5551
        cls allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5552
            addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5553
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5554
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5555
        cls allPrivateClassesDo:[:eachPrivateClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5556
            eachPrivateClass allSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5557
                eachSuperClass isPrivate ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5558
                    addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5559
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5560
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5561
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5562
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5563
        cls sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5564
            |eachPoolClass|
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
            eachPoolClass := Smalltalk classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5567
            eachPoolClass isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5568
                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
  5569
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5570
                eachPoolClass withAllSuperclassesDo:[:eachPoolSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5571
                    addPackage value:(eachPoolSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5572
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5573
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5574
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5575
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5576
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5577
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5578
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5579
        ((cls := Smalltalk classNamed:className) notNil and:[cls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5580
            cls withAllSuperclassesDo:[:eachSuperClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5581
                addPackage value:(eachSuperClass package)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5582
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5583
        ]
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5584
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5585
    ^ requiredPackages
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5586
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  5587
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5588
     stx_libtool searchForProjectsWhichProvideHeaderFiles
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  5589
     cg_demos_helloWorld searchForProjectsWhichProvideHeaderFiles
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  5590
     cg_tools_emulators_freecell searchForProjectsWhichProvideHeaderFiles
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  5591
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  5592
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5593
    "Created: / 07-12-2006 / 17:46:38 / cg"
13216
ef64e67606c5 changed:
Claus Gittinger <cg@exept.de>
parents: 13194
diff changeset
  5594
    "Modified: / 18-01-2011 / 17:58:33 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5595
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5596
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5597
searchForSiblingProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5598
    "answer all the packages (package names) having the my parent package"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5599
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5600
    |myPackage myParentPackage|
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
    myPackage := self package asPackageId.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5603
    myParentPackage := myPackage parentPackage.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5604
    myParentPackage isNil ifTrue:[^ #() ].
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5605
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5606
    ^ Smalltalk allProjectIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5607
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5608
            |thisPackage|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5609
            thisPackage := projectID asPackageId.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5610
            (thisPackage parentPackage = myParentPackage)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5611
            and:[ thisPackage ~= myPackage ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5612
        ]
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5613
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5614
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5615
     self searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5616
     bosch_dapasx_Application searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5617
     stx_goodies_refactoryBrowser_changes searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5618
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5619
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5620
    "Modified: / 07-08-2006 / 21:56:25 / fm"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5621
    "Created: / 23-08-2006 / 15:06:12 / cg"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5622
!
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  5623
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5624
searchForSubProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5625
    "answer all packages (package names), that are my subProjects"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  5626
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5627
    |myPackage|
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5628
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5629
    myPackage := self package.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5630
    ^ Smalltalk allProjectIDs
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5631
        select:[:projectID |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5632
            projectID ~= PackageId noProjectID
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5633
            and:[ (projectID asPackageId parentPackage) = myPackage ]].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5634
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5635
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5636
     self searchForSubProjects
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5637
     bosch_dapasx_Application searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5638
     stx_goodies_refactoryBrowser_changes searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5639
    "
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5640
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5641
    "Created: / 07-08-2006 / 20:42:39 / fm"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5642
    "Modified: / 07-08-2006 / 21:56:25 / fm"
10215
2d5aaeab5718 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10212
diff changeset
  5643
    "Modified: / 05-12-2006 / 18:04:27 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5644
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5645
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5646
setupForType:typeOrNil
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5647
    typeOrNil = GUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5648
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5649
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5650
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5651
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5652
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5653
    ^ true
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5654
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5655
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5656
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5657
        ^ self
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5658
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  5659
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  5660
    typeOrNil = NonGUIApplicationType ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5661
        self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5662
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5663
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5664
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5665
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5666
    ^ false
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  5667
'
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5668
             categorized:'description'.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5669
        self setSuperclass: ApplicationDefinition.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5670
        ^ self
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5671
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  5672
12349
6493b6124da3 changed:
fm
parents: 12339
diff changeset
  5673
    self theMetaclass removeSelector: #isGUIApplication.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  5674
    self setSuperclass: LibraryDefinition.
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5675
    ^ self.
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5676
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  5677
    "Created: / 23-08-2006 / 14:26:10 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5678
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5679
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5680
shouldExcludeTest: test
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  5681
    ^ self excludedFromTestSuite contains:[:spec|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  5682
            (spec isSymbol and:[test class name == spec])
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  5683
            or:[spec isArray and:[test class name == spec first and:[test selector == spec second]]]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5684
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5685
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5686
    "Created: / 03-06-2011 / 17:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5687
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5688
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5689
!ProjectDefinition class methodsFor:'private-extension handling'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5690
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5691
extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5692
    ^ extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5693
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5694
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5695
fetchSlotsFrom:myFirstIncarnation
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5696
    "this is invoked in a just loaded instance of myself,
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5697
     to fetch the safe and extensionInfo from my first incarnation"
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5698
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5699
    safeForOverwrittenMethods := myFirstIncarnation safeForOverwrittenMethods.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5700
    extensionOverwriteInfo := myFirstIncarnation extensionOverwriteInfo.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5701
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5702
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5703
hasSavedOverwrittenMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5704
    "true, if any of my methods was overwritten by another loaded package.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5705
     These methods are now in my safe"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5706
12208
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5707
    ^ safeForOverwrittenMethods notEmptyOrNil
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5708
!
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  5709
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5710
methodOverwrittenBy:anExtensionMethod
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5711
    "return the (hidden) original method, which was located in another package
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5712
     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
  5713
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5714
    |mclass selector oldPackage|
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5715
12218
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  5716
    extensionOverwriteInfo isNil ifTrue:[^ nil].
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  5717
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5718
    mclass := anExtensionMethod mclass.
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5719
    selector := anExtensionMethod selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5720
    oldPackage := extensionOverwriteInfo at:(mclass name,'>>',selector) ifAbsent:nil.
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5721
    oldPackage isNil ifTrue:[^ nil].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5722
    ^ oldPackage asPackageId projectDefinitionClass
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5723
        savedOverwrittenMethodForClass:mclass selector:selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5724
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5725
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5726
rememberOverwrittenExtensionMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5727
    "before loading, tell other packages to keep a safe reference to any method
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5728
     which gets overloaded by me, and also remember here, whome I have overloaded.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5729
     This allows for two things:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5730
        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
  5731
        b) correct unloading of myself"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5732
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5733
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5734
        |class oldMethod oldPackage defClass|
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
        class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5737
        class notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5738
            oldMethod := class compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5739
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5740
        oldMethod notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5741
            oldPackage := oldMethod package.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5742
            oldPackage ~= PackageId noProjectID ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5743
                defClass := oldPackage asPackageId projectDefinitionClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5744
                defClass notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5745
                    defClass rememberOverwrittenMethod:oldMethod inClass:class.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5746
                    extensionOverwriteInfo isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5747
                        extensionOverwriteInfo := Dictionary new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5748
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5749
                    extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5750
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5751
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5752
        ].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5753
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5754
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5755
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5756
rememberOverwrittenMethod:oldMethod inClass:aClass
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5757
    "invoked from another projectDefinition, when that package is about to be loaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5758
     and about to overwrite one of my methods.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5759
     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
  5760
     to correctly reestablish my methods when the other package is unloaded later."
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5761
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5762
    |thisIsOneOfMyMethods selector|
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5763
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5764
    selector := oldMethod selector.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5765
12293
983b9555f6e8 changed: #rememberOverwrittenMethod:inClass:
Claus Gittinger <cg@exept.de>
parents: 12286
diff changeset
  5766
    thisIsOneOfMyMethods := (self classNames includes:aClass theNonMetaclass name)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5767
                            or:[ aClass isPrivate and:[ self classNames includes: aClass topOwningClass theNonMetaclass name ]].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5768
    thisIsOneOfMyMethods ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5769
        self extensionMethodNames pairWiseDo:[:extClassName :extSelector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5770
            extClassName = aClass name ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5771
                selector = extSelector ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5772
                    thisIsOneOfMyMethods := true
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5773
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5774
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5775
        ]
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5776
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5777
    thisIsOneOfMyMethods ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5778
        self error:'oops - this is not one of my methods' mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5779
        ^ self
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5780
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5781
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5782
    safeForOverwrittenMethods isNil ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5783
        safeForOverwrittenMethods := Dictionary new.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5784
    ].
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  5785
    safeForOverwrittenMethods at:(aClass name,'>>',selector) put:oldMethod.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5786
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5787
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5788
restoreOverwrittenExtensionMethods
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5789
    "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
  5790
     which got overloaded by me.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5791
     Unfinished!!"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5792
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5793
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5794
        |class oldMethod oldPackage|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5795
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5796
        oldPackage := extensionOverwriteInfo at:(className,'>>',selector).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5797
        oldPackage notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5798
            class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5799
            class notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5800
                oldMethod := oldPackage savedOverwrittenMethodForClass:class selector:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5801
                oldMethod notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5802
                    self breakPoint:#cg.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5803
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5804
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5805
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5806
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5807
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  5808
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5809
safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5810
    ^ safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5811
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  5812
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5813
savedOverwrittenMethodForClass:aClass selector:aSelector
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5814
    "return one of my saved original methods"
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  5815
13692
2dffef08a4ac changed: #savedOverwrittenMethodForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 13689
diff changeset
  5816
    safeForOverwrittenMethods isNil ifTrue:[^ nil].
12274
a8ef1edeca71 changed:
Claus Gittinger <cg@exept.de>
parents: 12271
diff changeset
  5817
    ^ safeForOverwrittenMethods at:(aClass name,'>>',aSelector) ifAbsent:nil
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5818
!
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5819
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5820
savedOverwrittenMethods
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5821
    "return my saved original methods"
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5822
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  5823
    ^ safeForOverwrittenMethods ? #()
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5824
! !
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5825
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5826
!ProjectDefinition class methodsFor:'private-loading'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  5827
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5828
checkPrerequisitesForLoading
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5829
    "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
  5830
     Raise an error if not"
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5831
12264
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5832
    |classesAlreadyWarned|
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5833
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5834
    classesAlreadyWarned := Set new.
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  5835
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5836
    self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5837
        pairWiseDo:[:className :selector |
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5838
            |class errMsg|
13809
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
            class := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5841
            class isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5842
                (classesAlreadyWarned includes:className) ifFalse:[
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5843
                    (self classNames includes:className) ifTrue:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5844
                        errMsg := 'extension for a class in myself: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5845
                    ] ifFalse:[
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5846
                        errMsg := 'missing class for extension: ',className.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5847
                    ].
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5848
                    Transcript showCR:errMsg.
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  5849
                    self error:errMsg mayProceed:true.
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5850
                    classesAlreadyWarned add:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5851
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5852
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5853
        ]
12263
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  5854
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  5855
    "/ todo: more needed here...
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5856
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5857
    "
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5858
     stx_libjavascript checkPrerequisitesForLoading
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5859
    "
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5860
!
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  5861
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  5862
executeHooks: hookSymbol
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  5863
    "Execute all hooks annotated by the given hook-symbol. 
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  5864
     Currently supported hooks are: #preLoad, #postLoad, #preUnload."
14859
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
    | cls |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5867
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5868
    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
  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
    [ 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
  5871
        cls class selectorsAndMethodsDo:[:selector :method|
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  5872
            (method annotationAt: hookSymbol) notNil ifTrue:[
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5873
                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
  5874
                    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
  5875
                ] ifFalse:[
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  5876
                    self error:'Hook for %1 may not have arguments' mayProceed: 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
  5877
                ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5878
            ]
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5879
        ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5880
        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
  5881
    ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5882
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5883
    "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
  5884
    "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
  5885
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5886
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5887
loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5888
    self allClasses do:[:cls | cls autoload]
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5889
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5890
    "Created: / 21-08-2011 / 17:24:13 / cg"
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5891
!
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5892
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5893
loadAllClassesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5894
    "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
  5895
     install as autoloaded classes marked to be autoloaded.
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  5896
     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
  5897
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  5898
     Answer true, if classes have been loaded"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  5899
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5900
    ^self loadAllClassesAsAutoloaded:asAutoloaded languages: ProgrammingLanguage all
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5901
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5902
    "Created: / 17-08-2006 / 01:01:14 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5903
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5904
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5905
    "Modified: / 19-06-2010 / 11:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5906
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5907
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5908
loadAllClassesAsAutoloaded:asAutoloaded languages: langs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5909
    "load (fileIn) classes in given languages that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5910
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5911
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5912
     langs should be collection of ProgrammingLanguage available in the system.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5913
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5914
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5915
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5916
    |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
  5917
     classesWhichFailedToLoad|
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5918
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5919
    platformName := OperatingSystem platformName.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5920
    classNamesToLoad := OrderedCollection new.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5921
    classNamesToAutoload := OrderedCollection new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5922
    classNamesToLangs := Dictionary new.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5923
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
  5924
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5925
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5926
        |eachClassnameSym isAutoload clsLangAttr clsLang cls |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5927
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5928
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5929
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5930
        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
  5931
        clsLang := clsLangAttr
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5932
                    ifNil:[SmalltalkLanguage instance]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5933
                    ifNotNil:[ProgrammingLanguage named: clsLangAttr second ifNone:[nil]].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5934
        classNamesToLangs at: eachClassname put: clsLang.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5935
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5936
        "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
  5937
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5938
        ((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
  5939
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5940
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5941
             or:[(eachAttributes includes:platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5942
             or:[eachAttributes contains:[:a|a isArray]]]]) "/FIXME: Hack."
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5943
                ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5944
                    hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5945
                    isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5946
                        classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5947
                    ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5948
                        classNamesToLoad add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5949
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5950
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5951
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5952
    ].
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5953
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  5954
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5955
        loadedClasses := OrderedCollection new.
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
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5958
            classNamesToLoad notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5959
                "required classes are missing.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5960
                 Autoloaded classes are considered as optional..."
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5961
                self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5962
                    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
  5963
                    mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5964
                ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5965
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5966
            (self name,'[info] cannot install autoloaded classes because packageDirectory is unknown') infoPrintCR.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5967
            ^ true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5968
        ].
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
        "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
  5971
         of class name to file name"
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
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5974
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5975
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5976
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5977
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5978
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5979
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5980
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5981
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5982
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5983
            self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName) .
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5984
        ].
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
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5987
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  5988
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5989
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5990
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5991
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5992
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5993
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5994
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5995
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5996
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5997
                errorString: 'Loading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5998
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  5999
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6000
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6001
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6002
                 loading it"
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 add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6005
                self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6006
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6007
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6008
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6009
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6010
                cls := self loadClass: eachClassName asAutoloaded: false language: (classNamesToLangs at: eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6011
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6012
                    loadedClasses add:cls
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
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6015
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6016
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6017
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6018
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6019
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6020
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6021
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6022
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6023
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6024
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6025
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6026
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6027
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6028
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6029
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6030
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6031
    "Modified: / 26-10-2006 / 12:30:01 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6032
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6033
    "Created: / 19-06-2010 / 11:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6034
    "Modified: / 19-06-2010 / 15:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6035
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6036
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6037
loadClass: className asAutoloaded: asAutoloaded language: lang
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6038
    | packageDir classFile entry category numClassInstVars cls|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6039
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6040
    "Handle smalltalk classes specially to provide backward compatibility"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6041
    lang isSmalltalk ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6042
        entry := self abbrevs at: className ifAbsent:[nil].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6043
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6044
        asAutoloaded ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6045
            category := entry isNil ifTrue:[#autoloaded] ifFalse:[entry category].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6046
            numClassInstVars := entry isNil ifTrue:[0] ifFalse:[entry numClassInstVars].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6047
            cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6048
                installAutoloadedClassNamed: className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6049
                category: category
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6050
                package: self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6051
                revision: nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6052
                numClassInstVars:numClassInstVars.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6053
            entry notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6054
                cls setClassFilename:(entry fileName,'.st').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6055
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6056
            ^ cls.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6057
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6058
        ^ Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6059
            fileInClass:className
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6060
            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6061
            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6062
            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6063
            silent:true
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6064
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6065
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6066
    "For non-smalltalk language do"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6067
    asAutoloaded ifTrue:[^self error:'Only Smalltalk classes may be autoloaded (yet)'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6068
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6069
    packageDir := self packageDirectory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6070
    classFile := packageDir / ((Smalltalk fileNameForClass: className) , '.' , lang sourceFileSuffix).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6071
    classFile exists ifFalse:[^nil].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6072
    lang fileIn: classFile.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6073
    ^nil "FIXME: should return the class"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6074
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6075
    "Created: / 19-06-2010 / 09:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6076
    "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
  6077
    "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
  6078
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6079
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6080
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
  6081
    "try to load a binary class library
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  6082
     Return true if ok, raise an exception if not."
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6083
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6084
    |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
  6085
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6086
    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
  6087
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6088
    (Smalltalk isClassLibraryLoaded:libraryName) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6089
        "already loaded"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6090
        ^ true
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6091
    ].
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: loading classLibrary...' bindWith:self name).
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6094
    ].
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6095
    self activityNotification:'Loading classLibrary'.
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6096
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6097
    ^ 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
  6098
!
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
loadExtensions
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6101
    "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
  6102
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6103
    self hasAllExtensionsLoaded ifFalse:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6104
        self breakPoint:#cg.
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6105
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6106
            Transcript showCR:('  %1: filing in extensions...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6107
        ].
16147
00010c63a9ef class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16146
diff changeset
  6108
        Smalltalk loadExtensionsForPackage:self package.
00010c63a9ef class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16146
diff changeset
  6109
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6110
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6111
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6112
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6113
    "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
  6114
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6115
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6116
loadExtensionsForLanguage: lang
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6117
    "load extension methods for given programming language"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6118
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6119
    | filename file |
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6120
    filename := 'extensions.' , lang sourceFileSuffix.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6121
    file := self packageDirectory / filename.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6122
    file exists ifTrue:[
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6123
        lang fileIn: file.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6124
    ]
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6125
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6126
    "Created: / 17-08-2006 / 00:21:39 / cg"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6127
    "Created: / 25-11-2011 / 18:13:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6128
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6129
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6130
loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6131
    "load those packages which are required for loading.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6132
     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
  6133
     package is."
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6134
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6135
    |prereq|
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6136
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6137
    prereq := self effectiveMandatoryPreRequisites.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6138
    prereq notEmpty ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6139
        Verbose ifTrue:[
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6140
            Transcript showCR:('  %1 loading mandatory prerequisites...' bindWith:self name).
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6141
        ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6142
        self loadPackages:prereq asAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6143
    ].
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6144
!
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6145
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6146
loadPackages:aListOfPackages asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6147
    "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
  6148
     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
  6149
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6150
    Class withoutUpdatingChangesDo:[
14790
28d875953487 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14789
diff changeset
  6151
        aListOfPackages do:[:eachPackageID |
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6152
            |cls|
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  6153
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  6154
            cls := self definitionClassForPackage:eachPackageID.
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  6155
            (cls isNil or:[cls isLoaded not or:[cls projectIsLoaded not]]) ifTrue:[                        
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6156
                Smalltalk loadPackage:eachPackageID asAutoloaded:asAutoloaded.
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6157
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6158
        ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6159
    ].
13166
aa93e348e5d3 changed: #loadPackages:asAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13154
diff changeset
  6160
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  6161
    "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
  6162
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6163
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6164
loadPreRequisitesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6165
    "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
  6166
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6167
    |prereq|
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6168
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6169
    prereq := self effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6170
    prereq notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6171
        Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6172
            Transcript showCR:('  %1 loading prerequisites...' bindWith:self name).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6173
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6174
        self loadPackages:prereq asAutoloaded:asAutoloaded
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6175
    ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6176
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6177
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6178
loadSubProjects
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6179
    "load other packages (at least the projectDefinitions and their extensions)"
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6180
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6181
    self loadSubProjectsAsAutoloaded:false.
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  6182
    self effectiveSubProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6183
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6184
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6185
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6186
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6187
            subDef loadSubProjects
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6188
        ].
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6189
    ].
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6190
!
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  6191
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6192
loadSubProjectsAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6193
    "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
  6194
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  6195
    self loadPackages:(self effectiveSubProjects) asAutoloaded:asAutoloaded
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6196
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6197
    "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
  6198
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6199
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6200
old_loadAllClassesAsAutoloaded:asAutoloaded
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6201
    "load (fileIn) classes that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6202
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6203
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6204
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6205
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6206
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6207
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6208
     classesWhichFailedToLoad|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6209
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6210
    platformName := OperatingSystem platformName.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6211
    classNamesToLoad := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6212
    classNamesToAutoload := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6213
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6214
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6215
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6216
        |eachClassnameSym isAutoload cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6217
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6218
        eachClassnameSym := eachClassname asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6219
        isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6220
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6221
        "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
  6222
        cls := Smalltalk loadedClassNamed:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6223
        (cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6224
            (eachAttributes isEmpty
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6225
             or:[(eachAttributes size == 1 and:[isAutoload])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6226
             or:[eachAttributes includes:platformName]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6227
                hasClassesToLoad := true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6228
                isAutoload ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6229
                    classNamesToAutoload add:eachClassnameSym.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6230
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6231
                    classNamesToLoad add:eachClassnameSym.
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
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6234
        ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6235
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6236
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6237
    hasClassesToLoad ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6238
        loadedClasses := OrderedCollection new.
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
        self packageDirectory isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6241
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6242
                error:(self name,'[error] cannot install because packageDirectory is unknown')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6243
                mayProceed:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6244
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6245
        ].
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
        "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
  6248
         of class name to file name"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6249
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6250
        Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6251
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6252
        "install autoloaded classes first,
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6253
         some others may depend on them"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6254
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6255
        classNamesToAutoload withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6256
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6257
                raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6258
                errorString: 'Autoloading class ', eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6259
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
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6267
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6268
        classesWhichFailedToLoad := OrderedCollection new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6269
        classNamesToLoad notEmpty ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6270
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6271
                Transcript showCR:('  %1: filing in missing classes (%2) individually...'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6272
                                    bindWith:self name with:classNamesToLoad size).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6273
            ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6274
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6275
        classNamesToLoad withIndexDo:[:eachClassName :index|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6276
            |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6277
            ActivityNotification
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6278
                raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6279
                errorString: 'Loading class ', eachClassName.
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
            Error handle:[:ex |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6282
                "maybe, fileIn failed, because the load order is wrong.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6283
                 Work around this by installing the class as autoloaded and
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6284
                 loading it"
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
                classesWhichFailedToLoad add:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6287
                Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6288
                    installAutoloadedClassNamed:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6289
                    category:#autoloaded    "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6290
                    package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6291
                    revision:nil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6292
                    numClassInstVars:0.     "FIXME"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6293
            ] do:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6294
                Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6295
                    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6296
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6297
                cls := Smalltalk
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6298
                            fileInClass:eachClassName
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6299
                            package:self package
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6300
                            initialize:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6301
                            lazy:false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6302
                            silent:true.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6303
                cls notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6304
                    loadedClasses add:cls
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6305
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6306
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6307
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6308
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6309
        classesWhichFailedToLoad do:[:eachClassName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6310
            (Smalltalk at:eachClassName) autoload.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6311
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6312
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6313
        loadedClasses do:[:eachLoadedClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6314
            "do not initialize, if initialize method is inherited"
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6315
            (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6316
                eachLoadedClass initialize
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6317
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6318
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6319
        ^ true.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6320
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6321
    ^ false.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6322
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6323
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6324
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6325
    "Created: / 19-06-2010 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6326
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6327
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6328
unloadAllClasses
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6329
    Transcript showCR:'unloading not yet fully supported'
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6330
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6331
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6332
unloadClassLibrary
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6333
    Transcript showCR:'unloading not yet fully supported'
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6334
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6335
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6336
unloadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6337
    "unload other packages"
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6338
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  6339
    self effectiveSubProjects do:[:p |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6340
        |subDef|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6341
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6342
        subDef := self definitionClassForPackage:p.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6343
        subDef notNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6344
            subDef unloadSubProjects.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6345
            subDef unloadPackage.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6346
        ].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6347
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6348
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6349
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6350
update:anAspectSymbol with:argument from:changedObject
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6351
    "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
  6352
     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
  6353
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6354
    (changedObject == self class and:[anAspectSymbol == #methodDictionary]) ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6355
        self projectIsLoaded:false.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  6356
    ]
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6357
! !
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6358
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6359
!ProjectDefinition class methodsFor:'private-prerequisites'!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6360
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6361
addReferencesToClassesFromGlobalsIn:aSetOfClasses to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6362
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6363
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6364
    aSetOfClasses
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6365
        do:[:aClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6366
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6367
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6368
                    (aClass theNonMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  6369
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6370
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6371
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6372
            self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6373
                addReferencesToClassesFromGlobalsInMethods:
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6374
                    (aClass theMetaclass methodDictionary values
15366
5b5b28b61455 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15343
diff changeset
  6375
                        reject:[:m | m isExtension])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6376
                to:usedClassReasons.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6377
        ].
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6378
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6379
    "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
  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
addReferencesToClassesFromGlobalsInMethods:someMethods to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6383
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  6384
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6385
    someMethods do:[:method |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6386
        |resources|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6387
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6388
        resources := method resources.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6389
        (resources isNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6390
        or:[ ((resources includesKey:#'ignoreInPrerequisites') not
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6391
              and:[(resources includesKey:#'example') not])])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6392
        ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6393
            method usedGlobals
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6394
                do:[:global |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6395
                    |globalsName usedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6396
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6397
                    globalsName := global asSymbol.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6398
                    usedClass := Smalltalk at:globalsName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6399
                    (usedClass notNil and:[usedClass isClass and:[usedClass isNameSpace not]]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6400
                        usedClass name == globalsName ifTrue:[ "/ skip aliases
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6401
                            (usedClassReasons at:usedClass ifAbsentPut:[Set new])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6402
                                add:(usedClass name, ' - referenced by ', method mclass name,'>>',method selector)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6403
                        ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6404
                    ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6405
                ]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6406
            ]
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6407
    ]
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6408
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6409
    "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
  6410
    "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
  6411
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6412
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6413
addReferencesToExtensionMethodsIn:someClasses to:usedMethodReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6414
    "helper for searchForPreRequisites: search for sends of a selector which
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6415
     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
  6416
     If found, add the extension method and a reason string to usedReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6417
     This should find especially sends to extension methods from libcompat."
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6418
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6419
    |allRealExtensions|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6420
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6421
    "/ only care for methods which are not already implemented in an extension methods's superclass
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6422
    allRealExtensions := Smalltalk allExtensions 
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6423
                            select:[:mthd |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6424
                                |superClass|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6425
                                superClass := mthd mclass superclass.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6426
                                (superClass isNil or:[superClass whichClassIncludesSelector:mthd selector]) isNil 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6427
                            ].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6428
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6429
    someClasses do:[:eachClass |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6430
        eachClass instAndClassMethodsDo:[:method |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6431
            |resources extensionsSent|
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6432
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6433
            resources := method resources.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6434
            (resources isNil
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6435
            or:[ ((resources includesKey:#'ignoreInPrerequisites') not
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6436
                  and:[(resources includesKey:#'example') not])])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6437
            ifTrue:[
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6438
                extensionsSent := allRealExtensions select:[:ext | method messagesSent includes:ext selector].
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6439
                extensionsSent do:[:eachExtensionMethod |
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6440
                    (usedMethodReasons at:eachExtensionMethod ifAbsentPut:[Set new])
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6441
                        add:(eachExtensionMethod selector, ' - sent by ', method mclass name,'>>',method selector)
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6442
                ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6443
            ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6444
        ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6445
    ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6446
!
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6447
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6448
allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6449
    "answer all (recursive) prerequisite project ids of myself - in random order."
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6450
    
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6451
    ^ self allPreRequisites:#effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6452
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6453
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6454
     stx_libbasic allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6455
     stx_libbasic2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6456
     stx_libview2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6457
     ubs_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6458
     ubs_application allPreRequisitesSorted
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6459
     exept_expecco_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6460
     exept_expeccoNET_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6461
     alspa_batch_application allPreRequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6462
    "Modified: / 13-04-2011 / 15:30:45 / sr"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6463
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6464
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6465
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6466
allPreRequisites:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6467
    "answer all (recursive) prerequisite project ids of myself - in random order."
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
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6470
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6471
    result := self 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6472
        allPreRequisites:aSelector withParentDo:[:parent :prereq | 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6473
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6474
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
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
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6477
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6478
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6479
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6480
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6481
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6482
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6483
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6484
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6485
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6486
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6487
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6488
     alspa_batch_application allPreRequisites"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6489
    "Modified: / 13-04-2011 / 15:30:45 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6490
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
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
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6493
allPreRequisites:aSelector withParentDo:aBlock
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6494
    "answer all (recursive) prerequisite project ids of myself - in random order.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6495
     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
  6496
     then what ????"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6497
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6498
    |setOfAllPreRequisites toAdd|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6499
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6500
    setOfAllPreRequisites := Set new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6501
    toAdd := Set withAll:(self perform:aSelector).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6502
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6503
    "is a subproject really a prerequisite??
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6504
     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
  6505
     so the following line has been deleted.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6506
     Unfortunately the meaning of 'subproject' has never been well defined. SV."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6507
"/    toAdd addAll:self effectiveSubProjects.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6508
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6509
    [toAdd notEmpty] whileTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6510
        |aPreRequisiteProjectID def|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6511
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6512
        aPreRequisiteProjectID := toAdd removeFirst.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6513
        (setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6514
            setOfAllPreRequisites add:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6515
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6516
            def := self definitionClassForPackage:aPreRequisiteProjectID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6517
            def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6518
                Transcript showCR:'ProjectDefinition ', aPreRequisiteProjectID, ' is missing - cannot find its preRequisites.'.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6519
            ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6520
                (def perform:aSelector)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6521
                    select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6522
                    thenDo:[:eachSubPreRequisite |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6523
                                Verbose == true ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6524
                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' requires ', eachSubPreRequisite).
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
                                aBlock value:def value:eachSubPreRequisite.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6527
                                toAdd add:eachSubPreRequisite
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6528
                           ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6529
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6530
                "but subprojects of our prerequisites are also prerequisites"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6531
"/ 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
  6532
"/ 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
  6533
"/ 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
  6534
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6535
"/                def effectiveSubProjects
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6536
"/                    select:[:eachSubSubRequisite | eachSubSubRequisite ~= self package and:[ (setOfAllPreRequisites includes:eachSubSubRequisite) not ]]
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6537
"/                    thenDo:[:eachSubSubRequisite |
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6538
"/                                Verbose == true ifTrue:[
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6539
"/                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' hasSub ', eachSubSubRequisite).
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6540
"/                                ].
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6541
"/                                aBlock value:def value:eachSubSubRequisite.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6542
"/                                toAdd add:eachSubSubRequisite
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6543
"/                           ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6544
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6545
        ]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6546
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6547
    ^ setOfAllPreRequisites.
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
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6550
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6551
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6552
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6553
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6554
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6555
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6556
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6557
     alspa_batch_application allPreRequisites
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
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6560
    "Created: / 13-04-2011 / 15:23:21 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6561
    "Modified: / 20-07-2012 / 18:29:31 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6562
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6563
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6564
allPreRequisitesSorted
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6565
    ^ self allPreRequisitesSorted:#effectivePreRequisites
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6566
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6567
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6568
allPreRequisitesSorted:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6569
    "answer all the prerequisites of this projects sorted in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6570
     the order they are needed.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6571
     Use this to e.g. compile packages in the dependency order"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6572
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6573
    |allPreRequisites orderedTuples sortedPackages|
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
    orderedTuples := OrderedCollection new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6576
    allPreRequisites := self allPreRequisites:aSelector.
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  6577
    allPreRequisites := allPreRequisites collect:[ :e | e asString ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6578
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6579
    "/JV@2013-03-13: Added asSortedCollection to make the order of packages
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6580
    "/as stable as possible. Makes merging of makefiles a lot easier.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6581
    allPreRequisites asSortedCollection do:[:eachPackageID |
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6582
        |def preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6583
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6584
        self assert:(eachPackageID ~= self package).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6585
        orderedTuples add:(Array with:eachPackageID with:self package).
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
        def := self definitionClassForPackage:eachPackageID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6588
        def isNil ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6589
            Transcript showCR:'Warning: no definition class for package: ', eachPackageID.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6590
            ((self searchForPreRequisites: eachPackageID) 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6591
                fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6592
        ] ifFalse:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6593
            preRequisites := def perform:aSelector.
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  6594
            preRequisites := preRequisites copyWithoutAll:def excludedFromPreRequisites.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6595
            preRequisites do:[:eachPrerequisitePackageID|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6596
                self assert:(eachPrerequisitePackageID ~= eachPackageID).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6597
                orderedTuples add:(Array with:eachPrerequisitePackageID with:eachPackageID).
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
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6600
    ].
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
    (orderedTuples includes:[:el | el first = el second]) ifTrue:[
15415
ff36f42342a7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15395
diff changeset
  6603
        self halt:'oops - something seems to depend upon itself'
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6604
    ].
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  6605
    sortedPackages := orderedTuples topologicalSortStable: true.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6606
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6607
    "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
  6608
     but they are not added, if not present in the first place"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6609
    ^ sortedPackages select:[:eachProject| allPreRequisites includes:eachProject]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6610
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6611
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6612
     stx_libbasic allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6613
     stx_libbasic2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6614
     stx_libwidg2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6615
     exept_expecco allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6616
     alspa_batch_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6617
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6618
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6619
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6620
    "Modified: / 13-04-2011 / 15:19:13 / sr"
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  6621
    "Modified: / 05-06-2014 / 12:22:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
14882
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
allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6625
    "answer all (recursive) projects to which I refer - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6626
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6627
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6628
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6629
    result := self 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6630
        allPreRequisites:#referencedPreRequisites withParentDo:[:parent :prereq | 
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6631
            prereq = self package ifTrue:[
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6632
                Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6633
            ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6634
        ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6635
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6636
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6637
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6638
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6639
     stx_libbasic allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6640
     stx_libbasic2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6641
     stx_libview2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6642
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6643
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6644
     exept_expecco_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6645
     exept_expeccoNET_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6646
     alspa_batch_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6647
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6648
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  6649
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6650
effectiveMandatoryPreRequisites
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6651
    "get the preRequisites, that are not excluded, which are needed for loading
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6652
     and compiling (i.e. which must be present BEFORE)"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6653
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6654
    self mandatoryPreRequisites notEmpty ifTrue:[
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6655
        "this is a new subclass - avoid overhead"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6656
        ^ OrderedSet new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6657
            addAll:self mandatoryPreRequisites;
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  6658
            "/ addAll:self includedInPreRequisites;
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6659
            removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6660
            yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6661
    ].
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6662
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6663
    "I am an old subclass, where #preRequisites returns a plain array"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6664
    ^ Set new
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6665
        addAll:self preRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6666
        addAll:self includedInPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6667
        removeAllFoundIn:self excludedFromPreRequisites;
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6668
        remove:self package ifAbsent:[];
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6669
        yourself.
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6670
!
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6671
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6672
effectivePreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6673
    "get the preRequisites, that are not excluded.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6674
     This method appears to be obsolete, because its functionality
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6675
     is now included in #preRequisites.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6676
     But is to be kept for backward compatibilty with old
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6677
     existing subclasses."
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6678
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6679
    self mandatoryPreRequisites notEmpty ifTrue:[
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6680
        "this is a new subclass - avoid overhead"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6681
        ^ self preRequisites.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6682
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6683
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  6684
    "I am an old subclass, where #preRequisites returns a plain array"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6685
    ^ Set new
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6686
        addAll:self preRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6687
        addAll:self includedInPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6688
        removeAllFoundIn:self excludedFromPreRequisites;
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6689
        remove:self package ifAbsent:[];
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6690
        yourself.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6691
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6692
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6693
searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6694
    "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
  6695
     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
  6696
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
  6697
    ^ self searchForPreRequisites:self package
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6698
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6699
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6700
     self searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6701
     stx_libbasic3 searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6702
     bosch_dapasx_Application searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6703
     bosch_dapasx_pav_browser searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6704
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6705
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6706
    "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
  6707
    "Modified: / 07-08-2006 / 21:56:25 / fm"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6708
    "Modified: / 06-09-2011 / 08:30:43 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6709
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6710
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6711
searchForPreRequisites: packageId
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6712
    "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
  6713
     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
  6714
     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
  6715
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6716
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6717
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6718
    ^ self searchForPreRequisites: packageId withSubProjects:false
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6719
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6720
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6721
     self searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6722
     self searchForPreRequisites:#'stx:libwidg3'
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6723
     self searchForPreRequisites:#'stx:libtool'
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6724
     bosch_dapasx_Application searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6725
     bosch_dapasx_pav_browser searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6726
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6727
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6728
    "Modified: / 07-08-2006 / 21:56:25 / fm"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6729
    "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
  6730
    "Modified: / 06-09-2011 / 08:30:20 / cg"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6731
!
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6732
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6733
searchForPreRequisites:packageId withSubProjects:withSubProjectsBoolean
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6734
    "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
  6735
     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
  6736
     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
  6737
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  6738
     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
  6739
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6740
    |requiredClasses mandatoryClassesForLoadingWithReasons referencedClassesWithReasons 
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6741
     ignoredPackages packageExtractionBlock mandatoryPackageReasons referencedPackageReasons referencedMethodsWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6742
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6743
    mandatoryClassesForLoadingWithReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6744
    referencedClassesWithReasons := Dictionary new.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6745
    referencedMethodsWithReasons := Dictionary new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6746
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6747
    "my classes are required"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6748
    requiredClasses := self searchForClassesWithProject: packageId.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6749
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6750
    withSubProjectsBoolean ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6751
        "my subproject's classes are required"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  6752
        self effectiveSubProjects do:[:eachProjectName |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6753
            requiredClasses addAll:(self searchForClassesWithProject:eachProjectName asSymbol)
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6754
        ].
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  6755
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6756
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6757
    "all superclasses of my classes 
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6758
     and my subProject's classes (if required) are mandatory.
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6759
     All shared pools used by my classes are required as well"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6760
    requiredClasses do:[:cls |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6761
        cls allSuperclassesDo:[:eachSuperclass |
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6762
            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6763
                add: (eachSuperclass name, ' - superclass of ', cls name).
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6764
        ].
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6765
        cls sharedPools do:[:eachSharedPool |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6766
            (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6767
                add: (eachSharedPool name, ' - shared pool used by ', cls name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6768
            eachSharedPool allSuperclassesDo:[:eachSuperclass |
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6769
                (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6770
                    add: (eachSuperclass name, ' - superclass of shared pool ', eachSharedPool name).
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6771
            ]
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6772
        ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6773
    ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6774
    "all classes for which I define extensions are mandatory"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6775
    self allExtensionClasses do:[:eachExtendedClass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6776
        (mandatoryClassesForLoadingWithReasons at:eachExtendedClass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6777
            add: (eachExtendedClass name, ' - extended').
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6778
        eachExtendedClass allSuperclassesDo:[:eachSuperclass |
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6779
            (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6780
                add: (eachSuperclass name, ' - superclass of extended ', eachExtendedClass name).
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6781
        ]
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6782
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6783
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6784
    "all classes referenced by my classes or my subproject's classes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6785
     are required. But:
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6786
         only search for locals refered to by my methods (assuming that superclasses'
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6787
         prerequisites are specified in their package)."
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6788
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6789
    self addReferencesToClassesFromGlobalsIn:requiredClasses to:referencedClassesWithReasons.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6790
    self addReferencesToClassesFromGlobalsInMethods:(self searchForExtensionsWithProject:self package) to:referencedClassesWithReasons.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6791
    self addReferencesToExtensionMethodsIn:requiredClasses to:referencedMethodsWithReasons.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6792
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6793
    "now map classes to packages and collect the reasons"
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6794
    packageExtractionBlock := 
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6795
        [:classesWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6796
            |requiredPackageReasons|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6797
            requiredPackageReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6798
            classesWithReasons keysAndValuesDo:[:usedClass :reasonsPerClass| 
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6799
                (requiredPackageReasons at:usedClass package ifAbsentPut:[Set new])
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6800
                                addAll:reasonsPerClass.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6801
            ].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6802
            "sort, to avoid differences from one generation to the next one"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6803
            requiredPackageReasons
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6804
        ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6805
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6806
    mandatoryPackageReasons := packageExtractionBlock value:mandatoryClassesForLoadingWithReasons.
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6807
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6808
    referencedPackageReasons := packageExtractionBlock value:referencedClassesWithReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6809
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6810
    "and map extension method invocations to packages and collect the reasons"
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6811
    referencedMethodsWithReasons keysAndValuesDo:[:usedMethod :reasonsPerMethod |
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6812
        (referencedPackageReasons at:usedMethod package ifAbsentPut:[Set new])
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6813
            addAll:reasonsPerMethod.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6814
    ].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6815
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6816
    ignoredPackages := Set 
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6817
        with:packageId
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6818
        with:PackageId noProjectID.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6819
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6820
    referencedPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6821
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6822
    referencedPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | referencedPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6823
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6824
    "don't put classes from subProjects into the required list"
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6825
    ignoredPackages addAll:(self siblingsAreSubProjects
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6826
                                ifTrue:[ self searchForSiblingProjects ]
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6827
                                ifFalse:[ self searchForSubProjects ]) asSet.
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6828
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6829
    mandatoryPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6830
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  6831
    mandatoryPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | mandatoryPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6832
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  6833
    ^ Array 
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6834
        with:mandatoryPackageReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6835
        with:referencedPackageReasons.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6836
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  6837
    "
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6838
     self searchForPreRequisites:#'stx:libwidg3'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6839
     bosch_dapasx_Application searchForPreRequisites
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6840
     bosch_dapasx_pav_browser searchForPreRequisites
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  6841
     self searchForPreRequisites:#'stx:goodies/json' withSubProjects:false
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6842
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6843
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6844
    "Modified: / 07-08-2006 / 21:56:25 / fm"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6845
    "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
  6846
    "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
  6847
! !
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  6848
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  6849
!ProjectDefinition class methodsFor:'queries'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  6850
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6851
allClassNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6852
    ^ self classNamesForWhich:[:nm :attr | true ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6853
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6854
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6855
allClasses
13950
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6856
    ^ self allClassNames 
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6857
        collect:[:nm | 
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6858
            |cls|
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6859
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6860
            cls := Smalltalk classNamed:nm.
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6861
            cls isNil ifTrue:[
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6862
                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
  6863
            ].
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6864
            cls
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6865
        ]
a997dd517a4c changed: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13899
diff changeset
  6866
        thenSelect:[:cls | cls notNil ].
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6867
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6868
    "Created: / 06-08-2011 / 15:47:36 / cg"
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6869
!
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  6870
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6871
allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6872
    "answer the set of classes, which are extended by the package.
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6873
     includes all superclasses of the extended classes"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6874
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6875
    ^ self extensionClassesWithSuperclasses:true
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6876
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6877
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6878
     stx_libboss allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6879
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6880
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6881
    "Created: / 06-09-2011 / 10:15:54 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6882
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  6883
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6884
autoloaded_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6885
    "the opposite of compiled class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6886
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6887
    ^ self classNamesForWhich:[:nm :attr | attr notEmptyOrNil and:[attr includes:#autoload]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6888
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6889
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6890
    "Created: / 30-08-2007 / 18:48:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6891
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6892
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6893
canHaveExtensions
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6894
    "return true, if this class allows extensions from other packages.
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6895
     Private classes, namespaces and projectDefinitions don't allow this"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6896
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6897
    ^ self isAbstract
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6898
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6899
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6900
     Smalltalk allClasses select:[:each | each canHaveExtensions not]
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6901
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6902
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6903
    "Created: / 30-08-2006 / 15:29:49 / cg"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6904
!
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  6905
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6906
classNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6907
    "answer an array containing all the class names of the project's classes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6908
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6909
    ^ self classNamesAndAttributesAsSpecArray collect:[:entry | entry first].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6910
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6911
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6912
     stx_libhtml classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6913
     stx_libhtml classNamesAndAttributesAsSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6914
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6915
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6916
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6917
classNamesForWhich:aBlock
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6918
    "a correponding method with real names is generated in my subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6919
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6920
    |coll|
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6921
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6922
    coll := OrderedCollection new.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6923
    self classNamesAndAttributesDo:[:nm :attributes |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6924
        (aBlock value:nm value:attributes) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6925
            coll add:nm.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6926
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6927
    ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6928
    ^ coll
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: / 17-08-2006 / 20:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6933
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6934
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6935
classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6936
    "list my classes.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6937
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6938
     Use #classNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6939
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6940
    ^ self classNames collect:[:nm | Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6941
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6942
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6943
     stx_libbasic3 classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6944
     stx_libbasic3 classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6945
    "
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6946
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  6947
    "Modified: / 27-09-2011 / 18:12:33 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6948
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6949
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6950
compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6951
    "the opposite of autoloaded class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6952
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6953
    ^ self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[(attr includes:#autoload) not]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6954
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6955
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6956
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6957
    "Modified: / 21-08-2006 / 18:48:31 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  6958
    "Modified (comment): / 05-03-2012 / 12:21:23 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6959
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6960
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6961
compiled_classNamesForPlatform
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6962
    "answer the classes to be compiled only for the current platformName"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6963
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6964
    ^ self compiled_classNamesForPlatform:OperatingSystem platformName
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_classNamesForPlatform:platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6968
    "answer the classes to be compiled only for platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6969
     platformName is one of #unix, #win32 (OperatingSystem platformName)"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6970
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6971
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6972
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6973
            (attr includes:#autoload) not and:[attr includes:platformName]
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6974
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6975
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6976
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6977
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6978
    "Modified: / 09-10-2006 / 13:30:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6979
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6980
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6981
compiled_classNames_common
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6982
    "classes to be compiled for any platform"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6983
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6984
    ^ self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6985
        classNamesForWhich:[:nm :attr |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6986
            attr isEmptyOrNil
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  6987
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6988
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6989
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6990
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6991
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6992
compiled_classNames_unix
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6993
    "class, only to be compiled under unix"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6994
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6995
    ^ self compiled_classNamesForPlatform:#unix.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6996
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6997
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6998
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6999
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7000
compiled_classNames_windows
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7001
    "class, only to be compiled under windows"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7002
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7003
    ^ self compiled_classNamesForPlatform:#win32.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7004
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7005
    "Created: / 18-08-2006 / 13:37:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7006
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7007
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7008
extensionClasses
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7009
    "answer the set of classes, which are extended by the package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7010
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7011
    ^ self extensionClassesWithSuperclasses:false
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7012
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7013
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7014
     stx_libboss extensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7015
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7016
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7017
    "Modified: / 06-09-2011 / 10:21:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7018
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7019
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7020
extensionClassesWithSuperclasses:withSuperclassesBoolean
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7021
    "answer the set of classes, which are extended by the package"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7022
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7023
    |classes|
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7024
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7025
    classes := IdentitySet new.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7026
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7027
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7028
        |mthdCls extendedClass|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7029
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7030
        mthdCls := Smalltalk classNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7031
        (mthdCls notNil and:[mthdCls isLoaded]) ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7032
            extendedClass := mthdCls theNonMetaclass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7033
            (classes includes:extendedClass) ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7034
                withSuperclassesBoolean ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7035
                    extendedClass withAllSuperclassesDo:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7036
                        classes add:eachClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7037
                    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7038
                ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7039
                    classes add:extendedClass.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7040
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7041
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7042
        ].
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7043
    ].
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7044
    ^ classes.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7045
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7046
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7047
        stx_libboss extensionClasses
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7048
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7049
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7050
    "Created: / 06-09-2011 / 10:17:06 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7051
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7052
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7053
extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7054
    "list my extension methods.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7055
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7056
     Use #extensionMethodsNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7057
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7058
    ^ self extensionMethodNames
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7059
        pairWiseCollect:[:className :selector |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7060
            (Smalltalk classNamed:className) compiledMethodAt:selector.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7061
        ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7062
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7063
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7064
     stx_libbasic2 extensionMethodNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7065
     stx_libbasic2 extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7066
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7067
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7068
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7069
extensionPackages
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7070
    "answer the set of packages, which are extended by this package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7071
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7072
    ^ self allExtensionClasses collect:[:eachClass| eachClass package]
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7073
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7074
    "
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7075
        stx_libboss extensionPackages
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7076
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7077
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7078
    "Modified: / 06-09-2011 / 10:20:47 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7079
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7080
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7081
hasAllClassesFullyLoaded
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  7082
    "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
  7083
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7084
    ^ self hasAllClassesLoaded:true
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7085
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7086
    "Created: / 25-10-2006 / 16:08:25 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7087
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7088
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7089
hasAllClassesLoaded
10205
33fadd7b4fd1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10203
diff changeset
  7090
    "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
  7091
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7092
    ^ self hasAllClassesLoaded:false
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7093
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7094
    "Modified: / 25-10-2006 / 16:08:11 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7095
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7096
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  7097
hasAllClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7098
    "check if all classes for this platform are present.
12421
67898c88eceb comment/format in: #hasAllClassesLoaded:
Claus Gittinger <cg@exept.de>
parents: 12416
diff changeset
  7099
     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
  7100
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7101
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7102
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[ attr includes:#autoload]])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7103
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7104
    and:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7105
        self
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7106
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7107
            loaded:checkIfFullyLoaded ]
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7108
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7109
    "Modified: / 07-11-2006 / 11:47:30 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7110
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7111
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7112
hasAllCompiledClassesFullyLoaded
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7113
    "return true, if all compiled classes are present and loaded"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7114
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7115
    ^ self hasAllCompiledClassesLoaded:true
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7116
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7117
    "Created: / 07-11-2006 / 11:48:02 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7118
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7119
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7120
hasAllCompiledClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7121
    "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
  7122
     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
  7123
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7124
    ^ (self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7125
            hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7126
            loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7127
    and:[
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7128
       self
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7129
            hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7130
            loaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  7131
    ]
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7132
!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7133
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7134
hasAllExtensionsLoaded
10203
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  7135
    "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
  7136
     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
  7137
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7138
    self extensionMethodNames pairWiseDo:[:className :selector |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7139
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7140
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7141
        cls := Smalltalk loadedClassNamed:className.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7142
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7143
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7144
                Transcript showCR:(self name,' missing extension class "',className,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7145
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7146
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7147
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7148
        "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
  7149
        (cls isLoaded not or:[(cls compiledMethodAt:selector) isNil]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7150
            Verbose ifTrue:[
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7151
                Transcript showCR:(self name,' missing extension method "',className,'>>',selector,'".').
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7152
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7153
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7154
        ].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7155
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7156
    ^ true.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7157
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7158
    "Created: / 17-08-2006 / 00:50:01 / cg"
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7159
    "Modified: / 25-10-2006 / 00:01:10 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7160
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7161
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7162
hasClasses:classNames loaded:checkIfFullyLoaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7163
    "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
  7164
     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
  7165
     are not considered"
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7166
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7167
    classNames do:[:eachClassName |
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7168
        |cls|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7169
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7170
        cls := Smalltalk loadedClassNamed:eachClassName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7171
        cls isNil ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7172
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7173
               (self name, ' [info]: missing class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7174
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7175
            ^ false
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7176
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7177
        (checkIfFullyLoaded and:[cls isLoaded not]) ifTrue:[
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7178
            Verbose ifTrue:[
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7179
                (self name,' [info]: unloaded class: ', eachClassName) infoPrintCR.
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7180
            ].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7181
            ^ false.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7182
        ].
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7183
    ].
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7184
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  7185
    ^ true
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7186
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  7187
9906
9efd21c9b1b6 hasExtensions is a bad name (conflicts with the other query)
Claus Gittinger <cg@exept.de>
parents: 9904
diff changeset
  7188
hasExtensionMethods
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7189
    ^ self extensionMethodNames notEmpty
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7190
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  7191
    "Created: / 14-09-2006 / 14:19:35 / cg"
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7192
!
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  7193
12369
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7194
hasPostLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7195
    "/ true if postLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7196
    ^ (self class whichClassIncludesSelector:#postLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7197
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7198
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7199
hasPostUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7200
    "/ true if postUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7201
    ^ (self class whichClassIncludesSelector:#postUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7202
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7203
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7204
hasPreLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7205
    "/ true if preLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7206
    ^ (self class whichClassIncludesSelector:#preLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7207
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7208
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7209
hasPreUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7210
    "/ true if preUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7211
    ^ (self class whichClassIncludesSelector:#preUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7212
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  7213
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7214
isAbstract
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7215
    ^ self == ProjectDefinition
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7216
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7217
    "Modified (format): / 20-08-2011 / 22:47:46 / cg"
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7218
!
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7219
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7220
isFullyLoaded
16160
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  7221
    "as the inherited query isLoaded only refers to a single classes load status,
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  7222
     this one returns true iff the whole project (all classes plus all extensions) is loaded"
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  7223
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7224
    ^ self hasAllCompiledClassesFullyLoaded
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  7225
    and:[self hasAllClassesLoaded and:[self hasAllExtensionsLoaded]]
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7226
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  7227
    "Created: / 24-10-2006 / 23:52:23 / cg"
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  7228
    "Modified: / 20-08-2011 / 22:47:16 / cg"
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7229
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7230
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7231
projectType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  7232
    ^ self subclassResponsibility
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7233
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7234
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7235
!ProjectDefinition class methodsFor:'queries-privacy'!
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7236
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7237
showClassDocumentationOf:aClass
12198
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7238
    "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
  7239
     or hidden.
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7240
     (used for expecco, to suppress documentation of workflow- and expecco classes
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  7241
     in the expecco-class browser)"
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7242
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7243
    ^ true
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7244
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7245
    "Created: / 05-11-2007 / 16:44:16 / cg"
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7246
! !
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  7247
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7248
!ProjectDefinition class methodsFor:'sanity checks'!
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7249
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7250
validateDescription
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  7251
    "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
  7252
     called before checking in build support files.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7253
     Somewhat obsolete: use the ProjectChecker, which does more checks"
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  7254
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7255
    |emptyProjects nonProjects emptyOrNonProjects classesInImage 
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7256
     classesInDescription onlyInImage onlyInDescription missingPools myPackage|
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7257
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7258
    emptyProjects := Set withAll:self effectiveSubProjects.
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7259
    Smalltalk allClassesDo:[:cls |
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7260
        emptyProjects remove:(cls package) ifAbsent:[].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7261
    ].
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7262
    nonProjects := self effectiveSubProjects select:[:p |
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7263
                    (self definitionClassForPackage: p) isNil
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7264
                   ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7265
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7266
    emptyOrNonProjects := Set withAll:emptyProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7267
    emptyOrNonProjects addAll:nonProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7268
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7269
    emptyOrNonProjects notEmpty ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7270
        (Dialog
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7271
            confirm:('The following projects are non-existent, empty or without description:\\    '
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7272
                    , ((emptyOrNonProjects
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7273
                            asSortedCollection
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7274
                                collect:[:p | p allBold])
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7275
                                asStringWith:'\    ')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7276
                    , '\\Continue ?') withCRs
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7277
            yesLabel:'OK' noLabel:'Cancel')
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7278
        ifFalse:[
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7279
            AbortSignal raise
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7280
        ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7281
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  7282
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7283
    myPackage := self package.
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  7284
    classesInImage := Smalltalk allClasses select:[:cls | (cls package == myPackage) and:[cls isPrivate not]].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7285
    "/ classesInDescription := self classes asIdentitySet.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7286
    classesInDescription := IdentitySet new.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7287
    ((self compiled_classNamesForPlatform:(OperatingSystem platformName))
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7288
    , (self compiled_classNames_common)
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7289
    , (self autoloaded_classNames)) do:[:nm |
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7290
        |cls|
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7291
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7292
        cls := Smalltalk at:nm asSymbol.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7293
        cls isNil ifTrue:[
14834
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7294
            (self autoloaded_classNames includes:nm) ifTrue:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7295
                Transcript showCR:'missing autoloaded class: ',nm.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7296
            ] ifFalse:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7297
                self error:('missing class: ',nm) mayProceed:true.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7298
            ]
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7299
        ] ifFalse:[
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7300
            classesInDescription add:cls.
d54330e59dcd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14817
diff changeset
  7301
        ]
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7302
    ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7303
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7304
    missingPools := Set new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7305
    classesInDescription do:[:eachClass |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7306
        eachClass sharedPoolNames do:[:eachPoolName |
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7307
            |pool|
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7308
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7309
            pool := eachClass nameSpace classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7310
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7311
                eachClass nameSpace ~~ Smalltalk ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7312
                    pool := Smalltalk classNamed:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7313
                ] 
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7314
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7315
            pool isNil ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7316
                Transcript showCR:'missing pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7317
                missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7318
            ] ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7319
                pool isSharedPool ifFalse:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7320
                    Transcript showCR:'not a shared pool: ',eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7321
                    missingPools add:eachPoolName.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7322
                ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7323
            ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7324
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7325
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7326
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7327
    missingPools notEmpty ifTrue:[
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7328
        (Dialog
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7329
            confirm:('The following sharedpools are non-existent, or not pools:\\    '
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7330
                    , ((missingPools
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7331
                            asSortedCollection
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7332
                                collect:[:p | p allBold])
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7333
                                asStringWith:'\    ')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7334
                    , '\\Continue ?') withCRs
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7335
            yesLabel:'OK' noLabel:'Cancel')
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7336
        ifFalse:[
15905
1975e5cce9c9 AbortSignal -> AbortOperationRequest
Stefan Vogel <sv@exept.de>
parents: 15892
diff changeset
  7337
            AbortOperationRequest raise
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7338
        ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7339
    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  7340
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7341
"/ also found by ProjectChecker...
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7342
    classesInImage ~= classesInDescription ifTrue:[
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7343
        onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7344
        onlyInImage notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  7345
            Transcript show:self name; show:': only in image: '; showCR:onlyInImage
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7346
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7347
        onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7348
        onlyInDescription notEmpty ifTrue:[
13899
d769ad2935e6 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13875
diff changeset
  7349
            Transcript show:self name; show:': only in description: '; showCR:onlyInDescription
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7350
        ].
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7351
        (Dialog confirm:'The set of classes in the image is different from the listed classes in the project definition.\\Proceed?' withCRs) ifFalse:[
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7352
            AbortOperationRequest raiseRequest
13711
d3fe511856fc changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13702
diff changeset
  7353
        ]
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7354
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7355
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7356
"/    self validateOrderOfClasses
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7357
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7358
    "
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7359
     exept_expecco_application validateDescription
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7360
     squeak_vmMaker validateDescription
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7361
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  7362
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7363
    "Modified: / 06-03-2012 / 11:31:37 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7364
!
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7365
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7366
validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7367
    "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
  7368
     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
  7369
     and superclasses must be compiled before subclasses (for the header files).
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7370
     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
  7371
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7372
    |classesInDescriptionInOrder classesInProject already|
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
    classesInDescriptionInOrder := OrderedCollection new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7375
    classesInDescriptionInOrder := 
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7376
        self compiled_classNames 
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7377
            collect:[:eachName |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7378
                |cls|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7379
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7380
                cls := Smalltalk at:eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7381
                self assert:cls notNil message:'missing class: ',eachName.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7382
                cls
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7383
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7384
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7385
    classesInProject := classesInDescriptionInOrder asSet.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7386
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7387
    already := Set new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7388
    classesInDescriptionInOrder do:[:eachClass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7389
        eachClass allSuperclassesDo:[:superclass |
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7390
            (classesInProject includes:superclass) ifTrue:[
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7391
                "/ if in the set, it must have been already listed
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7392
                self 
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7393
                    assert:(already includes:superclass) 
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7394
                    message:('superclass "%1" not compiled before "%2"'
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7395
                                    bindWith:superclass name
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  7396
                                    with:eachClass name).
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7397
            ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7398
        ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7399
        already add:eachClass.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7400
    ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7401
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7402
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7403
     stx_goodies_refactoryBrowser_lint validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7404
     squeak_vmMaker validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7405
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7406
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7407
    "Created: / 05-03-2012 / 12:18:45 / cg"
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7408
! !
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  7409
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7410
!ProjectDefinition class methodsFor:'testing'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7411
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7412
isApplicationDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7413
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7414
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7415
    "Created: / 23-08-2006 / 15:17:32 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7416
    "Modified: / 20-09-2006 / 14:59:56 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7417
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7418
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7419
isConsoleApplication
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7420
    ^ false
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7421
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7422
    "Created: / 20-09-2006 / 14:59:49 / cg"
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7423
!
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  7424
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7425
isGUIApplication
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7426
    ^ false
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7427
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7428
    "Created: / 20-09-2006 / 14:59:49 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7429
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7430
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7431
isLibraryDefinition
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7432
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7433
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7434
    "Created: / 23-08-2006 / 15:17:46 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  7435
    "Modified: / 20-09-2006 / 15:00:00 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7436
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7437
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7438
isProjectDefinition
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7439
    "concrete i.e. not abstract"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  7440
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7441
    ^ self isAbstract not
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7442
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  7443
    "Created: / 10-08-2006 / 16:24:02 / cg"
13285
bd6b2a49c8af comment
Claus Gittinger <cg@exept.de>
parents: 13251
diff changeset
  7444
    "Modified: / 08-02-2011 / 10:03:49 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7445
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7446
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7447
!ProjectDefinition::AbbrevEntry methodsFor:'accessing'!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7448
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7449
category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7450
    ^ category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7451
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7452
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7453
className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7454
    ^ className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7455
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7456
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  7457
className:classNameArg fileName:fileNameArg category:categoryArg numClassInstVars:numClassInstVarsArg
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7458
    className := classNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7459
    fileName := fileNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7460
    category := categoryArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7461
    numClassInstVars := numClassInstVarsArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7462
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7463
    "Created: / 18-08-2011 / 14:18:30 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7464
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7465
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7466
fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7467
    ^ fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7468
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7469
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7470
numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7471
    ^ numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7472
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7473
    "Created: / 18-08-2011 / 14:18:37 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7474
! !
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7475
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  7476
!ProjectDefinition class methodsFor:'documentation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  7477
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7478
version
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  7479
    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.505 2014-06-10 10:05:15 cg Exp $'
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7480
!
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  7481
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  7482
version_CVS
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  7483
    ^ '$Header: /cvs/stx/stx/libbasic/ProjectDefinition.st,v 1.505 2014-06-10 10:05:15 cg Exp $'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7484
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7485
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7486
version_SVN
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  7487
    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  7488
! !
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7489
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  7490
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  7491
ProjectDefinition initialize!