ProjectDefinition.st
author Stefan Vogel <sv@exept.de>
Wed, 15 Apr 2020 20:18:14 +0200
changeset 25357 cec6ca6e3af4
parent 25343 92613f039ffe
permissions -rw-r--r--
#BUGFIX by stefan class: FileStream changed: #copy:into:bufferSize: Unix: check that UnixOperatingSystem class >> #copyFromFd:toFd:startIndex:count: copied all the data
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
     1
"{ Encoding: utf8 }"
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
     2
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     3
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     4
 COPYRIGHT (c) 2006 by eXept Software AG
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
     5
	      All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     6
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     7
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     8
 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
     9
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    10
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    11
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    12
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    13
"
9671
cb20763db715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9667
diff changeset
    14
"{ Package: 'stx:libbasic' }"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    15
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    16
"{ NameSpace: Smalltalk }"
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    17
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    18
Object subclass:#ProjectDefinition
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    19
	instanceVariableNames:''
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    20
	classVariableNames:'AbbrevDictionary AccessLock FolderForSubApplicationsType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    21
		GUIApplicationType LibraryType NonGUIApplicationType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    22
		PackagesBeingLoaded Verbose'
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    23
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    24
	category:'System-Support-Projects'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    25
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    26
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
    27
ProjectDefinition class instanceVariableNames:'safeForOverwrittenMethods extensionOverwriteInfo projectIsLoaded'
9607
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
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    30
 No other class instance variables are inherited by this class.
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    31
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    32
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    33
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    34
Object subclass:#AbbrevEntry
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    35
	instanceVariableNames:'className fileName category numClassInstVars'
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    36
	classVariableNames:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    37
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    38
	privateIn:ProjectDefinition
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    39
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    40
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    41
Object subclass:#ApplicationDocumentTypeDescription
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    42
	instanceVariableNames:'extension iconFileOSX mimeType typeName iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    43
		iconFileLinux roleOSX'
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    44
	classVariableNames:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    45
	poolDictionaries:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    46
	privateIn:ProjectDefinition
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    47
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    48
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    49
!ProjectDefinition class methodsFor:'documentation'!
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    50
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    51
buildingMakefiles
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    52
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    53
    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
    54
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    55
    redefinable build-file attributes:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    56
	stcOptimizationOptions  -> STCLOCALOPT
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    57
	stcWarningOptions       -> STCLOCALOPT
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    58
	localIncludes_unix      -> LOCALINCLUDES (Make.proto)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    59
	localIncludes_win32     -> LOCALINCLUDES (bc.mak)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    60
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    61
    for applications:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    62
	startupClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    63
	startupSelector
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    64
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    65
    for libraries:
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    66
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    67
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    68
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    69
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    70
copyright
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    71
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    72
 COPYRIGHT (c) 2006 by eXept Software AG
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    73
	      All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    74
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    75
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    76
 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
    77
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    78
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    79
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    80
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    81
"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    82
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    83
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    84
documentation
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    85
"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    86
    As ST/X is (still) very tightly bound with stc, we keep the package and project information
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    87
    in a class-object (instead of some project object) and all queries about package contents and
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    88
    attributes are implemented as class methods.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    89
    (after all: a class is an object, which can be asked by sending it messages...
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    90
     ... so why would one want extra meta-descriptions with extra syntax?)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    91
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    92
    This has the advantage, that it can be compiled and included in a compiled class library just like any other class.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    93
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    94
    Every package includes a subclass of me (an instance of my meta), which provides useful
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    95
    information about the versioning and packaging.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    96
    Me myself, I know how to generate dependency information and can generate makefiles and other build-support
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
    97
    files for compilation (see the browser's 'Checkin Build Support File' menu item. For more details, see
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    98
    section 'Build Support Files' below).
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    99
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   100
    When a package is loaded from a binary shared class lib (i.e. a compiled class library is loaded
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   101
    via 'Smalltalk loadPackage:'), the loading is done in multiple phases:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   102
	1) the shared object is loaded, but not installed (registered) in Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   103
	2) the ProjectDefinition class is registered and initialized.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   104
	3) the ProjectDefinition class is asked to load its prerequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   105
	   This may recursively lead to other packages to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   106
	   - either as binary class libraries, as bytecode or from source; whichever is found.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   107
	4) the remaining classes and extensions of the package are registered
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
   108
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   109
    ## Some special notes about extension methods:
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   110
      if a package is loaded (Smalltalk loadPackage:'foo:bar/baz'), any already loaded package of which
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   111
      methods are overwritten by an extension method of the loaded package, the other package is asked to safe those
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   112
      methods in its safe(ForOverwrittenMethods).
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   113
      Thus, if the other package or any of its classes is asked
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   114
      to file itself out, it can do so using the safe (otherwise, you'd not be able to check the original class into
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   115
      its repository while it has an overriding extension loaded).
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   116
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   117
      Also, the information about which other package was in charge when a method is overwritten is recorded in
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   118
      extensionOverwriteInfo.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   119
      This is used to correctly reinstall any overwritten method, whenever a package is unloaded.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   120
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   121
    ## Build Support Files
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   122
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   123
    To support compilation of a package, ProjectDefinition can generate a set of makefiles and other
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   124
    support files to allow that. To see the set of files that should be generated, see #fileNamesToGenerate.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   125
    These files are usually generated and saved to the repository upon a commit - the source code management
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   126
    does (should) care for this.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   127
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   128
    Packages may add more files to this list by defining an (extension) method in project definition class
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   129
    and by annotating the method by <file:overwrite:> annotation:
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   130
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   131
	* the first parameter is the file name to generate as String, relative to the package root. As directory
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   132
	  separator, use slash (as on UNIX), it will be automagically converted to platform's separator.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   133
	* The second parametrer (true or false) tells the SCM whether the file should be generated (and thus
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   134
	  overwritten) upon each commit (when true) or only the first time (when false). Important: see the
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   135
	  remark below.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   136
	* The method itself should return file's contents a string. If it returns nil, then the file is *not*
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   137
	  generated at all.
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   138
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   139
    For examples, see #generate_java_build_auto_dot_xml and #generate_java_build_dot_xml defined by STX:LIBJAVA.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   140
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   141
    REMARK: CAUTION:
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   142
    The overwrite: boolean is currently *not* supported by old SCM managers, more specifically
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   143
    CVSSourceCodeManager does not support it. CVSSourceCodeManager will always overwrite the file!!
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   144
    It *is* supported by all SCMs based on new stx:libscm. More specifically, *it is supported* by
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   145
    Mercurial.
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   146
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   147
    ## Adding additional rules to generated makefiles
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   148
20986
3758c77e6af0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20985
diff changeset
   149
    There are two ways to add additional rules to generated makefiles (Make.proto and bc.mak):
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   150
      1) overriding #additionalRules_make_dot_proto and/or #additionalRules_bc_dot_mak
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   151
      2) adding a method annotated by <file:target:> or <file:target:extends:>
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   152
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   153
    ### Overriding #additionalRules* methods
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   154
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   155
    You may override #additionalRules_make_dot_proto and/or #additionalRules_bc_dot_mak and return
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   156
    string containing the code of the rules. This string is inserted to the resulting makefile
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   157
    as-is. This is the traditional way of doing this.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   158
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   159
    If you any of the targets defined there to be called as part of standard build, you may
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   160
    also want to list these targets in #additionalTargets_make_dot_proto and/or
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   161
    #additionalTargets_bc_dot_mak
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   162
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   163
    ### Adding annotatated method
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   164
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   165
    Alternatively, you may add one method per rule and annotate it by
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   166
    <file:target:> or <file:target:extends:> annotation. For example,
20624
36a96279296c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20605
diff changeset
   167
    to call 'ant' whenever a package is built, add a method like:
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   168
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   169
    additionalRuleAnt_make_dot_proto
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   170
	<file: 'Make.proto' target: 'ant' extends: 'pre_objs' >
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   171
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   172
	^ '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   173
	java:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   174
		ant -f java/build.xml
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   175
	'
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   176
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   177
    The meaning annotation parameters is the following:
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   178
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   179
	* file: <String> - name of the file in which to include
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   180
	  the rule. Currently only two values are valid:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   181
	  'Make.proto' and 'bc.mak'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   182
	* target: <String> - name of the target'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   183
	* extends: <String> - optional name of the target that this additional
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   184
	  rule extends. This means that the extending target (specified by target:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   185
	  annotation parameter) is called as part of building of  the extended target
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   186
	  (i.e., the target specified by extends: annotation parameter). Not all targets
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   187
	  are extendible, see below.
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   188
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   189
    Method annotated by these annotations should return - when executed - a string
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   190
    with exactly one rule. The rule name SHOULD match with the name in target: annotation
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   191
    parameter, otherwise the extends: parameter will not work correctly.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   192
    If the methor returns nil, the rule is not included in resulting makefile.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   193
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   194
    The advantage of this approach is that it allows for additional, non-basic packages to hook in
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   195
    and add their own targets if they want to. The disadvantage is that if package makefiles
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   196
    are regenerated without this extending package loaded, targets are lost. To avid this,
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   197
    you may want to add this non-basic package to prerequsites.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   198
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   199
    Currently, this mechanism is used by STX:LIBJAVA to call ant to compile package's java classes.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   200
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   201
    #### Extendable targets
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   202
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   203
    Make.proto:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   204
	all
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   205
	clean
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   206
	...more to be added...
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   207
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   208
    bc.mak
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   209
	ALL
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   210
	clean
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   211
	...more to be added...
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   212
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   213
"
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
   214
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   215
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   216
!ProjectDefinition class methodsFor:'instance creation'!
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   217
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   218
definitionClassForPackage:aPackageID
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   219
    "given a packageID (such as 'stx:libfoo/bar'), lookup the corresponding peoject definition class.
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   220
     Return it, or nil if not present"
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   221
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   222
    ^ self definitionClassForPackage:aPackageID createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   223
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   224
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   225
     ProjectDefinition definitionClassForPackage:'stx:libbasic'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   226
     ProjectDefinition definitionClassForPackage:'stx:libfoobarBaz'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   227
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   228
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   229
    "Modified: / 17-08-2006 / 14:33:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   230
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   231
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   232
definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   233
    ^ self definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent projectType:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   234
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   235
    "Modified: / 23-08-2006 / 14:29:15 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   236
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   237
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   238
definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType:typeOrNil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   239
    |packageDefinitionClassName class|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   240
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   241
    packageDefinitionClassName := self projectDefinitionClassNameForDefinitionOf:aPackageID.
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   242
    class := Smalltalk classNamed:packageDefinitionClassName.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   243
    class isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   244
	doCreateIfAbsent ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   245
	    typeOrNil = GUIApplicationType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   246
		class := ApplicationDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   247
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   248
		typeOrNil = NonGUIApplicationType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   249
		    class := ApplicationDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   250
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   251
		    typeOrNil = FolderForSubApplicationsType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   252
			class := FolderForProjectsDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   253
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   254
			class := LibraryDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   255
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   256
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   257
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   258
	    "setup before prerequisites are defined"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   259
	    class setupForType:typeOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   260
	    "/ look what is there and include it; is this ok ?
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   261
	    class compileDescriptionMethods
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   262
	].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   263
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   264
	typeOrNil notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   265
	    doCreateIfAbsent ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   266
		class projectType == typeOrNil ifFalse: [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   267
		    class setupForType:typeOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   268
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   269
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   270
	].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   271
    ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   272
    ^ class
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   273
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   274
    "Created: / 23-08-2006 / 14:29:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   275
    "Modified: / 23-08-2006 / 15:35:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   276
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   277
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   278
definitionClassForPackage:newProjectID projectType:typeOrNil createIfAbsent:createIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   279
    ^ (self definitionClassForType:typeOrNil)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   280
	    definitionClassForPackage:newProjectID
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   281
	    createIfAbsent:createIfAbsent
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   282
	    projectType:typeOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   283
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   284
    "Created: / 23-08-2006 / 14:28:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   285
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   286
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   287
definitionClassForType: type
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   288
    "answer the class that describes a give project type"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   289
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   290
    (type = LibraryType) ifTrue:[ ^ LibraryDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   291
    (type = GUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   292
    (type = NonGUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   293
    (type = FolderForSubApplicationsType) ifTrue:[ ^ FolderForProjectsDefinition ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   294
    (type = 'Application') ifTrue:[ ^ ApplicationDefinition ].     "/ temporary - for backward compat.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   295
    self error:'unknown project type'.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   296
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   297
    "Created: / 17-08-2006 / 14:46:28 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   298
    "Modified: / 23-08-2006 / 13:49:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   299
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   300
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   301
newForPackage:packageID
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   302
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   303
	newNamed:(self projectDefinitionClassNameForDefinitionOf:packageID)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   304
	package:packageID.
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   305
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   306
    "Created: / 11-08-2006 / 14:27:19 / cg"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   307
!
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   308
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   309
newNamed:newName package:packageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   310
    |newClass|
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   311
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   312
    "/ for now, we are strict.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   313
    self assert:(self projectDefinitionClassNameForDefinitionOf:packageID) = newName.
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   314
    self assert:(self ~~ ProjectDefinition).  "ProjectDefinition is abstract"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   315
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   316
    newClass := self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   317
		    subclass:(newName asSymbol)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   318
		    instanceVariableNames:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   319
		    classVariableNames:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   320
		    poolDictionaries:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   321
		    category:(self defaultCategory).
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   322
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   323
    newClass package:packageID asSymbol.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   324
    ^ newClass
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   325
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   326
    "Created: / 09-08-2006 / 17:57:37 / fm"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   327
    "Modified: / 09-08-2006 / 19:27:53 / fm"
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   328
    "Modified: / 17-08-2006 / 17:24:23 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   329
! !
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   330
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   331
!ProjectDefinition class methodsFor:'accessing'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   332
23452
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   333
additionalClassResources
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   334
    "for projects which need additional resources from some other
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   335
     package (i.e. plugins), redefine this to return a collection
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   336
     of inherited definitions.
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   337
     i.e. change to ^ { foo_package classResources }"
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   338
     
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   339
    ^ #()
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   340
!
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   341
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   342
directory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   343
    "for packageId compatibility"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   344
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   345
    ^ self moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   346
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   347
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   348
     bosch_dapasx_datenbasis_Definition moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   349
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   350
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   351
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   352
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   353
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   354
     stx_goodies_xml_vw moduleDirectory
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   355
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   356
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   357
    "Created: / 08-08-2006 / 20:25:39 / fm"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   358
    "Modified: / 18-08-2006 / 12:18:33 / cg"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   359
!
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   360
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   361
extensionsRevisionInfoForManager:managerOrNil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   362
    "return the revisionInfo object for my extensions for a particular source code manager.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   363
     Return nil, if there is either no manager, or I have no extensions"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   364
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   365
    |mgr versionMethod revString|
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   366
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   367
    (mgr := managerOrNil) isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   368
	mgr := SourceCodeManagerUtilities sourceCodeManagerFor:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   369
	mgr isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   370
	    ^ nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   371
	].
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   372
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   373
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   374
    versionMethod := mgr nameOfVersionMethodForExtensions.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   375
    (self class implements:versionMethod) ifFalse:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   376
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   377
    revString := self perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   378
    revString isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   379
	^ nil.
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   380
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   381
    ^ mgr revisionInfoFromString:revString.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   382
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   383
    "
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   384
     (stx_libcomp extensionsRevisionInfoForManager:nil) revision
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   385
     (stx_libbasic extensionsRevisionInfoForManager:nil)
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   386
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   387
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   388
    "Created: / 25-11-2011 / 14:34:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   389
!
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   390
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   391
fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   392
    "all components with underlines"
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   393
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   394
    ^ self fullPackageNameFor: self package
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   395
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   396
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   397
     stx_libwidg2 packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   398
     stx_libwidg2 fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   399
     stx_goodies_refactoryBrowser_browser packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   400
     stx_goodies_refactoryBrowser_browser fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   401
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   402
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   403
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   404
fullPackageNameFor: aProjectID
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   405
    ^ (aProjectID copyReplaceAny:':/' with:$_)
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   406
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   407
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   408
     stx_goodies_refactoryBrowser_lint fullPackageNameFor:#stx_goodies_refactoryBrowser_lint
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   409
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   410
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   411
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   412
initialClassNameForDefinitionOf:aPackageId
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   413
    <resource: #obsolete>
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   414
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   415
    "now obsolete - left here for backward compatibility
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   416
     given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   417
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   418
    ^ self projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   419
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   420
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   421
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   422
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   423
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   424
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   425
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   426
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   427
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   428
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   429
libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   430
    ^ self package asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   431
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   432
    "
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   433
     bosch_dapasx_datenbasis libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   434
     stx_libbasic3 libraryName
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   435
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   436
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   437
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   438
    "Modified: / 18-08-2006 / 12:36:45 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   439
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   440
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   441
libraryNameFor:aProjectID
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   442
    ^ aProjectID asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   443
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   444
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   445
     bosch_dapasx_datenbasis libraryName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   446
     stx_libbasic3 libraryNameFor:'stx:libbasic'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   447
     stx_libbasic3 libraryNameFor:'bosch:dapasx/datenbasis'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   448
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   449
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   450
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   451
    "Modified: / 18-08-2006 / 12:37:02 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   452
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   453
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   454
loadDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   455
    "if I was loaded from a directory (as opposed to loaded via a dll or from a source code manager),
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   456
     return that directory. Otherwise return nil."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   457
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   458
    ^ self getAttribute:#projectDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   459
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   460
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   461
loadDirectory:aDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   462
    "remember the directory from which I was loaded from"
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   463
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   464
    self setAttribute:#projectDirectory to:aDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   465
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   466
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   467
module
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   468
    ^ self moduleOfClass:self
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   469
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   470
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   471
       bosch_dapasx_datenbasis_Definition module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   472
       DapasX_Datenbasis module
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   473
       stx_libbasic3 module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   474
       stx_libbasic3 directory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   475
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   476
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   477
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   478
    "Modified: / 09-08-2006 / 16:16:37 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   479
    "Modified: / 17-08-2006 / 20:50:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   480
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   481
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   482
moduleDirectory
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   483
    ^ (PackageId from:self package) directory
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   484
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   485
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   486
     bosch_dapasx_datenbasis_Definition moduleDirectory
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   487
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   488
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   489
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   490
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   491
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   492
     stx_goodies_xml_vw moduleDirectory
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   493
     cg_demos_demo1 moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   494
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   495
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   496
    "Created: / 08-08-2006 / 20:25:39 / fm"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   497
    "Modified (comment): / 05-09-2012 / 10:07:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   498
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   499
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   500
moduleDirectoryFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   501
    ^ (aProjectID subStrings:$:) last
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   502
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   503
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   504
	bosch_dapasx_datenbasis_Definition moduleDirectory
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   505
	bosch_dapasx_parameter_system_Definition moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   506
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   507
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   508
    "Created: / 08-08-2006 / 20:25:39 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   509
    "Modified: / 17-08-2006 / 14:13:41 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   510
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   511
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   512
moduleDirectory_win32
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   513
    ^ (PackageId from:self package) directory copyReplaceAll:$/ with:$\
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   514
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   515
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   516
     bosch_dapasx_datenbasis moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   517
     bosch_dapasx_parameter_system moduleDirectory_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   518
     stx_libbasic3 moduleDirectory_win32
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   519
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   520
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   521
    "Created: / 14-09-2006 / 20:19:17 / cg"
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   522
!
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   523
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   524
moduleDirectory_win32For: projectID
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   525
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   526
    ^(self moduleDirectoryFor:projectID) copyReplaceAll:$/ with:$\
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   527
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   528
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   529
     self moduleDirectory_win32For: #'bosch:dapasx/pav_vergleich'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   530
     self moduleDirectory_win32For: #'stx:goodies/xml/stx'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   531
     self moduleDirectory_win32For: #'stx:libbasic2'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   532
    "
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   533
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   534
    "Modified: / 16-07-2013 / 19:47:24 / cg"
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   535
!
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   536
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   537
moduleFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   538
    ^ (aProjectID subStrings:$:) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   539
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   540
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   541
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   542
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   543
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   544
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   545
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   546
    "Modified: / 17-08-2006 / 14:13:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   547
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   548
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   549
moduleOfClass:aClass
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   550
    ^ self moduleFor:aClass package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   551
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   552
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   553
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   554
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   555
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   556
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   557
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   558
    "Modified: / 17-08-2006 / 14:13:51 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   559
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   560
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   561
monticelloPackageName
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   562
    "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
   563
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   564
    ^ nil
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   565
!
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   566
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   567
msdosPathToPackage:toPackageID from:fromPackageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   568
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   569
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
   570
    |parts1 parts2 common up down|
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   571
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   572
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   573
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   574
    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
   575
    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
   576
    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
   577
    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
   578
       down isEmpty ifTrue:[^ '.'].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   579
	^ down.
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   580
    ].
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
   581
    down isEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   582
	^ up.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   583
    ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   584
    ^ up, '\', down
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   585
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   586
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   587
     self msdosPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   588
     self msdosPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   589
     self msdosPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   590
     self msdosPathToPackage:'exept:expecco' from:'exept:expecco/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   591
     self msdosPathToPackage:'exept:expecco/application' from:'exept:expecco'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   592
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   593
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   594
    "Created: / 17-08-2006 / 14:26:39 / cg"
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   595
    "Modified: / 14-09-2006 / 22:04:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   596
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   597
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   598
packageDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   599
    "if I was loaded from a directory (as opposed to loaded via a dll or from a source code manager),
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   600
     return that directory.
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   601
     Otherwise ask Smalltalk for my package directory a long the package path."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   602
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   603
    |loadDirectory|
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   604
14586
4e6d15f5defc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14585
diff changeset
   605
    (loadDirectory := self loadDirectory) ifNotNil:[ ^ loadDirectory ].
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
   606
    ^ Smalltalk packageDirectoryForPackageId: self package
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   607
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   608
    "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
   609
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   610
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   611
packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   612
    "the last component"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   613
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   614
    ^ self packageNameFor: self package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   615
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   616
    "
10810
e62a55885c85 New: #allPreRequisitesSorted
Stefan Vogel <sv@exept.de>
parents: 10806
diff changeset
   617
     stx_libwidg2 packageName
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
   618
     stx_goodies_refactoryBrowser_browser packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   619
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   620
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   621
     bosch_dapasx_parameter_system packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   622
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   623
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   624
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   625
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   626
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   627
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   628
packageNameFor: aProjectID
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   629
    ^ (aProjectID asCollectionOfSubstringsSeparatedByAny:':/') last.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   630
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   631
    "
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   632
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   633
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   634
     bosch_dapasx_parameter_system packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   635
     cg_croquet packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   636
     stx_goodies_xml_vw packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   637
     stx_goodies_xml_vw packageDirectory
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   638
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   639
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   640
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   641
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   642
    "Modified: / 11-08-2006 / 14:02:32 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   643
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   644
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   645
parentProject
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   646
    "return the packageID of the parent project.
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   647
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   648
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   649
    ^ (self parentProjectFor: self package)
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   650
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   651
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   652
     bosch_dapasx_hw_schnittstellen_Definition parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   653
     DapasX_Datenbasis parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   654
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   655
     stx_libbasic parentProject
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   656
     stx_goodies_refactoryBrowser_lint parentProject
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   657
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   658
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   659
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   660
parentProjectFor: aProjectID
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   661
    "given a packageID symbol or string, return the packageID of the
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   662
     parent project.
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   663
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   664
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   665
    |path|
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   666
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   667
    path := aProjectID splitByAny:':/'.
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   668
    path size == 1 ifTrue:[^ nil].
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   669
    path size == 2 ifTrue:[^ path first].
25289
e0413497ca0a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25285
diff changeset
   670
    ^ path first , ':' , ((path copyButFirstAndLast) asStringWith:'/')
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   671
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   672
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   673
     bosch_dapasx_hw_schnittstellen parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   674
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   675
     self parentProjectFor:'bosch:dapasx'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   676
     self parentProjectFor:'bosch:dapasx/hw_schnittstellen'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   677
     self parentProjectFor:'stx:goodies/refactoryBrowser/lint'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   678
     self parentProjectFor:'stx:goodies/svg'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   679
     self parentProjectFor:'stx:libbasic'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   680
     self parentProjectFor:'exept:expecco/application'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   681
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   682
     self parentProjectFor:'stx'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   683
     self parentProjectFor:'exept'
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   684
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   685
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   686
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   687
pathSeparator:platformName
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   688
    ^ platformName == #unix ifTrue:['/'] ifFalse:['\'].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   689
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   690
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   691
pathTo:aBaseFilename inPackage:aPackageID architecture:arch
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   692
    "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
   693
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   694
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   695
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   696
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   697
    p := self pathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   698
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   699
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   700
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   701
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   702
pathToPackage:toPackageID from:fromPackageID withSeparator:pathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   703
    "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
   704
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   705
    |parts1 parts2 common up down rel oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   706
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   707
    oneUp := '..', pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   708
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   709
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   710
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   711
    common := parts1 commonPrefixWith:parts2.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   712
    common notEmpty ifTrue:[
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   713
        up := ((1 to:parts1 size - common size) collect:[:p | oneUp]) asStringWith:''.
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   714
        down := (parts2 copyFrom:common size+1) asStringWith:pathSeparator.
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   715
        (up isEmpty and:[down isEmpty]) ifTrue:[^ '.'].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   716
        (up endsWith:'/') ifTrue:[
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   717
            down isEmpty ifTrue:[^ up copyButLast]
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   718
        ].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   719
        (up isEmpty) ifTrue:[
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   720
            (down startsWith:'/') ifTrue:[^ down copyButFirst]
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   721
        ].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   722
        ^ up , down
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   723
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   724
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   725
    rel := (self topRelativePathToPackage:toPackageID withSeparator:pathSeparator).
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   726
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   727
        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the separator remains
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   728
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   729
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   730
    ^ '$(TOP)', pathSeparator, oneUp, rel.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   731
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   732
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   733
     self pathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   734
     self pathToPackage:'stx:libbasic' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   735
     self pathToPackage:'bosch:dapasx/application' from:'stx:libbasic' withSeparator:'\'
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   736
     exept_expecco_application pathToPackage:'exept:expecco' from:'exept:expecco/application' withSeparator:'/'
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   737
     exept_expecco_application pathToPackage:'exept:expecco/plugins/guiBrowser' from:'exept:expecco/application' withSeparator:'/'
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   738
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   739
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   740
    "Created: / 14-09-2006 / 15:21:10 / cg"
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   741
    "Modified: / 07-11-2018 / 17:24:26 / Claus Gittinger"
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   742
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   743
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   744
pathToPackage:aPackageID withSeparator:pathSeparator
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   745
    "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
   746
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   747
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   748
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   749
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   750
        ^ self pathToPackage:aPackageID from:self package withSeparator:pathSeparator.
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   751
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   752
    rel := self topRelativePathToPackage:aPackageID withSeparator:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   753
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   754
        ^ '$(TOP)', (rel copyFrom:'stx/' size).   "keep the separator"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   755
    ] ifFalse:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   756
        ^ '$(TOP)', pathSeparator, '..', pathSeparator, rel
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   757
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   758
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   759
    "
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   760
     exept_expecco_application pathToPackage:'exept:expecco/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   761
     exept_expecco_application pathToPackage:'exept:expecco/report' withSeparator:'\'
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   762
     exept_expecco_application make_dot_proto_resource_rules
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   763
     stx_libbasic pathToPackage:'exept:expecco/application' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   764
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   765
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   766
    "Modified: / 16-08-2006 / 18:55:41 / User"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   767
    "Created: / 14-09-2006 / 13:21:23 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   768
    "Modified: / 14-09-2006 / 15:23:59 / cg"
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   769
    "Modified (comment): / 26-10-2018 / 21:06:56 / Claus Gittinger"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   770
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   771
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   772
pathToTopFor:aProjectID withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   773
    "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
   774
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   775
    |parts oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   776
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   777
    oneUp := '..', aPathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   778
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   779
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   780
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   781
    parts first = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   782
	parts size == 1 ifTrue:[^ ''].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   783
	^ (((2 to:parts size-1) collect:[:p | oneUp]) asStringWith:'') , '..'
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   784
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   785
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   786
    ^ ((parts collect:[:p | oneUp]) asStringWith:'') , 'stx'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   787
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   788
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   789
     self pathToTopFor: #'exept' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   790
     self pathToTopFor: #'exept:expecco' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   791
     self pathToTopFor: #'exept:expecco/application' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   792
     self pathToTopFor: #'stx' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   793
     self pathToTopFor: #'stx:libview' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   794
     self pathToTopFor: #'stx:goodies/foo' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   795
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   796
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   797
    "Created: / 14-09-2006 / 14:59:53 / cg"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   798
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   799
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   800
pathToTopWithSeparator:aPathSeparator
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   801
    "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
   802
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   803
    ^ self pathToTopFor:self package withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   804
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   805
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   806
     exept_expecco_application pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   807
     stx_libbasic pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   808
     stx_goodies_xml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   809
     stx_libhtml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   810
     stx_goodies_refactoryBrowser_changes pathToTopWithSeparator:'\'
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   811
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   812
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   813
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   814
    "Modified: / 14-09-2006 / 15:01:47 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   815
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   816
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   817
projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   818
    "given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   819
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   820
    |s|
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   821
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   822
    s := aPackageId asString copy replaceAny:' :/-' with:$_.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   823
    (s endsWith:$_) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   824
	s := s copyButLast:1
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   825
    ].
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   826
    ^ s
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   827
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   828
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   829
     ProjectDefinition initialClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   830
     ProjectDefinition initialClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   831
     ProjectDefinition initialClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   832
     ProjectDefinition initialClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   833
     ProjectDefinition initialClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   834
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   835
!
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   836
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   837
projectIsLoaded
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   838
    "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
   839
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   840
    projectIsLoaded isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   841
	projectIsLoaded := false.
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   842
    ].
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   843
    ^ projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   844
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   845
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   846
      stx_libbasic projectIsLoaded
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   847
      (ProjectDefinition definitionClassForPackage:#'stx:libbasic') projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   848
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   849
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   850
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   851
projectIsLoaded:aBoolean
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   852
    projectIsLoaded := aBoolean.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   853
    aBoolean ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   854
	"register myself as dependent - I want to get notified on method changes"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   855
	self class addDependent:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   856
	self postLoadAction.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   857
	self executeHooks: #postLoad.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   858
    ].
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   859
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   860
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   861
projectTags
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   862
    "a list of resource-tags used in the project.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   863
     These are offered in the browser's methodList menu as 'Tag as' items.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   864
     Allowing convenient tagging for things like '<resource: EXPECCO_API>'.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   865
     When redefined, a collection of useful tag-strings should be returned."
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   866
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   867
    ^ #()
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   868
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   869
    "Created: / 15-02-2017 / 16:42:48 / cg"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   870
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   871
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   872
topRelativePathTo:aBaseFilename inPackage:aPackageID architecture:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   873
    "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
   874
     and adding for each one '../' to get the ST/X top directory"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   875
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   876
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   877
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   878
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   879
    p := self topRelativePathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   880
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   881
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   882
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   883
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   884
topRelativePathToPackage:aPackageID withSeparator:aDirectorySeparator
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   885
    "Returns the path to the package as specified by aPackageID relative to the top directory.
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   886
     Basically this simply replaces colons and slashes by the OS's path separator."
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   887
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   888
    ^ aPackageID asString copyReplaceAny:':/' with:aDirectorySeparator first
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   889
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   890
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   891
     self topRelativePathToPackage:'stx:goodies/xml' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   892
     self topRelativePathToPackage:'bosch:dapasx/kernel' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   893
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   894
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   895
    "Created: / 14-09-2006 / 13:20:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   896
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   897
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   898
!ProjectDefinition class methodsFor:'accessing - coverage'!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   899
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   900
excludedFromCoverage
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   901
    "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
   902
     Entries maybe ClassName or #(ClassName selector)
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   903
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   904
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   905
     in #Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   906
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   907
    ^ #()
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   908
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   909
    "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
   910
    "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
   911
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   912
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   913
excludedFromCoverage: aMethod
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   914
    "Return true if given method should be excluded from coverage
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   915
     info. This method may be redefined in subclasses to automagically omit methods
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   916
     matching some criteria.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   917
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   918
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   919
     in Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   920
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   921
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   922
    |excluded mclass mselector|
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   923
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   924
    excluded := self excludedFromCoverage.
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   925
    excluded notEmptyOrNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   926
	mclass := aMethod mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   927
	mselector := aMethod selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   928
	excluded do:[:eachSpecLine|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   929
	    eachSpecLine isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   930
		(eachSpecLine first = mclass name and:[eachSpecLine second == mselector]) ifTrue:[ ^ true ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   931
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   932
	    eachSpecLine = mclass name ifTrue:[ ^ true ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   933
	].
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   934
    ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   935
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   936
    ^ false
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   937
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   938
    "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
   939
    "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
   940
! !
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   941
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
   942
17228
a219a717e0aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17186
diff changeset
   943
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   944
!ProjectDefinition class methodsFor:'accessing - packaging'!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   945
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   946
classNames:aCollectionOfClassNames
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   947
    "set the set of classes"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   948
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   949
    self classNamesAndAttributes:aCollectionOfClassNames usingCompiler:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   950
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   951
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   952
classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   953
    "set the set of classes. and attributes
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   954
     Because this requires compilation of my classList-method, a compiler can be passed in,
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   955
     which has to do the job.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   956
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   957
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   958
    |oldSpec newCode|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   959
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   960
    oldSpec := self classNamesAndAttributes.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   961
    newSpec = oldSpec ifTrue: [^ self].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   962
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   963
    newCode := self classNamesAndAttributes_codeFor:newSpec.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   964
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
   965
    self compile:newCode categorized:'description - contents' using:compilerOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   966
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   967
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   968
excludeClasses:toExclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   969
    "exclude (remove from classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   970
     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
   971
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   972
     (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
   973
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   974
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   975
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   976
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   977
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   978
    toExclude do:[:eachClassToExclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   979
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   980
	className := eachClassToExclude theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   981
	(self allClassNames includes:className) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   982
	    |idx|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   983
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   984
	    idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   985
	    idx ~~ 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   986
		newSpec := newSpec copyWithoutIndex:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   987
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   988
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   989
    ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   990
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   991
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   992
    "Created: / 30-08-2007 / 18:28:28 / cg"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   993
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
   994
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   995
excludeMethodFor:selector inClassNamed:className usingCompiler:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   996
    "exclude (remove from extensionList) a method by name.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   997
     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
   998
     which has to do the job.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
   999
     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
  1000
     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
  1001
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1002
    |oldSpec newSpec newCode idx|
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1003
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1004
    oldSpec := self extensionMethodNames.
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1005
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1006
    idx := (1 to:oldSpec size-1 by:2)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1007
		detect:[:i |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1008
		    ((oldSpec at:i) = className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1009
		    and:[ (oldSpec at:i+1) = selector ]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1010
		ifNone:[ ^ self ].
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1011
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1012
    "/ attention: there are two spec-elements per method
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1013
    newSpec := oldSpec copyWithoutIndex:idx toIndex:idx+1.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1014
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1015
    newCode := self extensionMethodNames_code_For:newSpec.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1016
    self compile:newCode categorized:'description - contents' using:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1017
!
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1018
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1019
excludeMethods:toRemove usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1020
    "exclude (remove from extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1021
     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
  1022
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1023
     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
  1024
     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
  1025
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1026
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1027
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1028
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1029
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1030
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1031
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1032
    toRemove do:[:eachMethodToRemove |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1033
	|className selector idx|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1034
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1035
	(extensionMethods includes:eachMethodToRemove) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1036
	    className := eachMethodToRemove mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1037
	    selector := eachMethodToRemove selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1038
	    idx := (1 to:newSpec size-1 by:2)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1039
			detect:[:i |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1040
			    ((newSpec at:i) = className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1041
			    and:[ (newSpec at:i+1) = selector ]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1042
			ifNone:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1043
	    idx notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1044
		"/ attention: there are two spec-elements per method
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1045
		newSpec := newSpec removeFromIndex:idx toIndex:idx+1
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1046
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1047
	].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1048
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1049
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1050
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1051
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1052
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1053
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1054
includeClasses:toInclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1055
    "include (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1056
     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
  1057
     which has to do the job.
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1058
     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
  1059
     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
  1060
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1061
    |oldSpec newSpec|
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1062
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1063
    oldSpec := self classNamesAndAttributes.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1064
    newSpec := oldSpec copy.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1065
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1066
    toInclude do:[:eachClassToInclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1067
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1068
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1069
	className := eachClassToInclude theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1070
	(self compiled_classNames includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1071
	    | idx entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1072
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1073
	    idx := oldSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1074
	    idx == 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1075
		newSpec := newSpec copyWith:(Array with:className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1076
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1077
		entry := newSpec at:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1078
		entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1079
		    entry := entry copyWithout:#autoload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1080
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1081
		newSpec at:idx put:entry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1082
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1083
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1084
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1085
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1086
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1087
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1088
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1089
includeMethods:toInclude usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1090
    "include (add to extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1091
     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
  1092
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1093
     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
  1094
     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
  1095
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1096
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1097
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1098
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1099
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1100
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1101
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1102
    toInclude do:[:eachMethodToInclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1103
	(extensionMethods includes:eachMethodToInclude) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1104
	    newSpec := newSpec copyWith:eachMethodToInclude mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1105
	    newSpec := newSpec copyWith:eachMethodToInclude selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1106
	].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1107
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1108
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1109
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1110
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1111
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1112
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1113
makeClassesAutoloaded:toMakeAutoloaded usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1114
    "include as autoloaded (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1115
     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
  1116
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1117
     (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
  1118
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1119
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1120
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1121
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1122
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1123
    toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1124
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1125
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1126
	className := eachClassToMakeAutoloaded theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1127
	(self autoloaded_classNames includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1128
	    |idx entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1129
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1130
	    idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1131
	    idx == 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1132
		newSpec := newSpec copyWith:(Array with:className with:#autoload)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1133
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1134
		entry := newSpec at:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1135
		entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1136
		    entry := (entry copyWithout:#autoload) copyWith:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1137
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1138
		    entry := Array with:entry with:#autoload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1139
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1140
		newSpec at:idx put:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1141
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1142
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1143
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1144
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1145
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1146
!
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1147
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1148
updateContentsMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1149
    "regenerate the contents-describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1150
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1151
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1152
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1153
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1154
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1155
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1156
    Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1157
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1158
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1159
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1160
		forEachContentsMethodsCodeToCompileDo:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1161
		    [:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1162
			(compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1163
			    compile:code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1164
			    forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1165
			    inCategory:category.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1166
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1167
		ignoreOldDefinition:doRegenerate
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1168
	].
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1169
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1170
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1171
updateExtensionMethodNamesUsingCompiler:compilerOrNil
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1172
    "set the set of extension methods
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1173
     Because this requires compilation of my extensionMethodNames-method,
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1174
     a compiler can be passed in, which has to do the job.
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1175
     (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
  1176
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1177
    |newCode|
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1178
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1179
    newCode := self extensionMethodNames_code.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1180
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1181
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1182
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1183
updateMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1184
    "regenerate the all contents- plus version describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1185
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1186
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1187
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1188
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1189
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1190
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1191
    Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1192
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1193
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1194
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1195
		forEachMethodsCodeToCompileDo:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1196
		    [:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1197
			(compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1198
			    compile:code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1199
			    forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1200
			    inCategory:category.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1201
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1202
		ignoreOldDefinition:doRegenerate
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1203
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1204
! !
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1205
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1206
!ProjectDefinition class methodsFor:'accessing - tests'!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1207
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1208
excludedFromTestSuite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1209
    "List of testcases and/or tests excluded from testsuite.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1210
     Entries maybe ClassName or #(ClassName testName)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1211
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1212
    ^ #()
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1213
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1214
    "Created: / 03-06-2011 / 16:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1215
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1216
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1217
testSuite
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1218
    "generate and return a testSuite containing all of my test-classes"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1219
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1220
    |suite classes|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1221
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1222
    suite := TestSuite named:self package.
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1223
    classes := self classes
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1224
		select:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1225
		    [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1226
		    each isLoaded ifFalse:[each autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1227
		    (each isTestCaseLike) and:[ each isAbstract not ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1228
		    ] on: Autoload autoloadFailedSignal do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1229
				'FAILED TO LOAD: ' infoPrint.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1230
				each name infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1231
			false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1232
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1233
		].
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1234
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1235
    classes := classes asSortedCollection:[:a :b | a name <= b name ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1236
    classes do: [:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1237
	| tests |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1238
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1239
	eachClass name infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1240
	tests := eachClass suite tests.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1241
	tests := tests reject:[:test|self shouldExcludeTest: test].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1242
	suite addTests: tests
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1243
    ].
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1244
    ^ suite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1245
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1246
    "Created: / 01-04-2011 / 15:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1247
    "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
  1248
    "Modified: / 08-08-2011 / 14:59:45 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1249
! !
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1250
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1251
!ProjectDefinition class methodsFor:'class initialization'!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1252
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1253
initialize
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1254
    AccessLock isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1255
	LibraryType := #Library.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1256
	GUIApplicationType := #'GUI-Application'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1257
	NonGUIApplicationType := #'NonGUI-Application'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1258
	FolderForSubApplicationsType := #'Folder for Subapplications'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1259
	AccessLock := Semaphore forMutualExclusion name:'ProjectDefinition Lock'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1260
	Verbose := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1261
	PackagesBeingLoaded := Set new.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1262
    ].
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1263
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1264
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1265
     self initialize
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1266
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1267
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1268
    "Modified: / 18-08-2011 / 13:48:31 / cg"
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1269
!
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1270
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1271
initializeAllProjectDefinitions
16179
7acaf638974b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16163
diff changeset
  1272
    "tells all already loaded project definition classes that they are loaded
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1273
     (i.e. calls postLoadAction).
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1274
     This needs everything else (especially the compiler etc.) to be initialized.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1275
     Therefore, it's not invoked by the projDef's #initialize,
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1276
     but instead explicitely, by Smalltalk as a late step in the startup."
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1277
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1278
    |isStandAloneApp|
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1279
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1280
    isStandAloneApp := Smalltalk isStandAloneApp.
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1281
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1282
    self allSubclassesDo:[:eachProjectDefinitionClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1283
	eachProjectDefinitionClass isAbstract ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1284
	    isStandAloneApp ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1285
		eachProjectDefinitionClass installAutoloadedClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1286
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1287
	    eachProjectDefinitionClass projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1288
	]
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1289
    ].
10115
a43005ac7423 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10114
diff changeset
  1290
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1291
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1292
     self initialize
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1293
    "
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1294
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1295
    "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
  1296
!
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1297
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1298
installAutoloadedClasses
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1299
    "install all of my autoloaded classes (if any)"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1300
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1301
    |classesToFixClassFileName|
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1302
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1303
    classesToFixClassFileName := OrderedCollection new.
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1304
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1305
    self autoloaded_classNames do:[:className |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1306
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1307
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1308
	"/ 'install as autoloaded: ' errorPrint. className errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1309
	(cls := Smalltalk classNamed:className) isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1310
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1311
		(self name,' [warning]: failed to install autoloaded: ',className) errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1312
		(self name,' [info]: reason: ',ex description) errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1313
		"/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1314
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1315
		cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1316
		    installAutoloadedClassNamed:className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1317
		    category:'* as yet unknown category *'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1318
		    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1319
		    revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1320
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1321
	    cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1322
		classesToFixClassFileName add:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1323
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1324
	].
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1325
    ].
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1326
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1327
    Smalltalk addStartBlock:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1328
	|abbrevs|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1329
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1330
	abbrevs := self abbrevs.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1331
	"/ patch the classFileNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1332
	classesToFixClassFileName do:[:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1333
	    |entry classFilenameFromAbbreviations|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1334
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1335
	    entry := abbrevs at:cls name ifAbsent:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1336
	    entry notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1337
		classFilenameFromAbbreviations := entry fileName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1338
		classFilenameFromAbbreviations notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1339
		    classFilenameFromAbbreviations := classFilenameFromAbbreviations,'.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1340
		    (classFilenameFromAbbreviations ~= cls getClassFilename) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1341
			cls setClassFilename:classFilenameFromAbbreviations
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1342
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1343
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1344
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1345
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1346
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1347
	"/ patch the categories
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1348
	Class withoutUpdatingChangesDo:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1349
	    |entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1350
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1351
	    self classNames do:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1352
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1353
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1354
		((cls := Smalltalk at: nm) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1355
			and:[ cls isLoaded not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1356
			and:[ (entry := abbrevs at:cls name ifAbsent:[nil]) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1357
		]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1358
		    cls category: (entry category)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1359
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1360
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1361
	]
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1362
    ].
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1363
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1364
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1365
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1366
     stx_libbasic installAutoloadedClasses
12268
b3cd2af642f2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 12264
diff changeset
  1367
     stx_libhtml installAutoloadedClasses
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1368
     stx_libtool2 installAutoloadedClasses
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1369
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1370
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1371
    "Created: / 23-10-2006 / 16:02:12 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1372
    "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
  1373
    "Modified: / 20-08-2011 / 23:32:32 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1374
! !
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1375
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1376
!ProjectDefinition class methodsFor:'code generation'!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1377
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1378
applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1379
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1380
	s nextPutLine:'applicationIconFileNameLinux'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1381
	s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1382
	s nextPutLine:'     This is currently unused (will be for desktop definitions)"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1383
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1384
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1385
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1386
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1387
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1388
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1389
     self applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1390
     stx_libbasic3 applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1391
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1392
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1393
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1394
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1395
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1396
applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1397
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1398
	s nextPutLine:'applicationIconFileNameOSX'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1399
	s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1400
	s nextPutLine:'     This is used to create the osx/Info.plist file"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1401
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1402
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1403
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1404
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1405
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1406
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1407
     self applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1408
     stx_libbasic3 applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1409
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1410
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1411
    "Created: / 18-08-2006 / 16:21:01 / cg"
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  1412
    "Modified: / 24-02-2017 / 11:55:32 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1413
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1414
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1415
applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1416
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1417
	s nextPutLine:'applicationIconFileNameWindows'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1418
	s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon).'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1419
	s nextPutLine:'     This will be included in the rc-resource file for Windowsdeployment"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1420
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1421
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1422
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1423
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1424
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1425
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1426
     self applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1427
     stx_libbasic3 applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1428
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1429
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1430
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1431
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1432
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1433
applicationIconFileName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1434
    "obsolete - replaced by three separate methods as-per-OS"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1435
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1436
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1437
	s nextPutLine:'applicationIconFileName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1438
	s nextPutLine:'    "Return the name (without suffix) of an icon-file (the app''s icon);'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1439
	s nextPutLine:'    "will be included in the rc-resource file"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1440
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1441
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1442
	nextPutLine:'    " ^ self applicationName "'.
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1443
    ].
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1444
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1445
    "
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1446
     self applicationIconFileName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1447
     stx_libbasic3 applicationIconFileName_code
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1448
    "
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1449
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1450
    "Created: / 18-08-2006 / 16:21:01 / cg"
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1451
!
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1452
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1453
checkForBadReferences:prerequisiteList
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1454
    "check, that there are no 'illegal' references to prerequisites.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1455
     If there is a bad prrequisite, ask the user whether to abort."
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1456
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1457
    prerequisiteList keysDo:[:eachPackageSymbol|
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1458
        |defClass|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1459
24567
ee198c04099f #BUGFIX by exept
Claus Gittinger <cg@exept.de>
parents: 24566
diff changeset
  1460
        defClass := (self definitionClassForPackage:eachPackageSymbol) theNonMetaclass.
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1461
        (defClass isProjectDefinition and:[defClass isPluginDefinition]) ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1462
            (self confirm:('Bad cross-plugin requirement to: %1%<cr>%<cr>Proceed?' bindWith:eachPackageSymbol)) ifFalse:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1463
                AbortOperationRequest raiseRequest.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1464
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1465
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1466
    ]
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1467
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1468
    "Modified (format): / 02-07-2018 / 18:56:29 / cg"
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1469
!
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1470
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1471
classNamesAndAttributes_codeFor:aSpecArray
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1472
    "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
  1473
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1474
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1475
	s nextPutLine:'classNamesAndAttributes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1476
	s nextPutLine:'    "lists the classes which are to be included in the project.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1477
	s nextPutLine:'     Each entry in the list may be: a single class-name (symbol),'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1478
	s nextPutLine:'     or an array-literal consisting of class name and attributes.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1479
	s nextPutLine:'     Attributes are: #autoload or #<os> where os is one of win32, unix,..."'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1480
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1481
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1482
	s nextPutLine:'        "<className> or (<className> attributes...) in load order"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1483
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1484
	(self classNamesAndAttributesFromSpecArray:aSpecArray) do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1485
	    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1486
	    entry storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1487
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1488
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1489
	s nextPutLine:'    )'
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1490
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1491
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1492
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1493
     stx_libbasic3 classNamesAndAttributes_codeFor:(stx_libbasic3 classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1494
     exept_expecco classNamesAndAttributes_codeFor:(exept_expecco classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1495
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1496
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1497
    "Modified: / 08-08-2006 / 19:24:34 / fm"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1498
    "Created: / 19-02-2007 / 15:43:27 / cg"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1499
!
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1500
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1501
classNamesAndAttributes_code_ignoreOldEntries:ignoreOldEntries ignoreOldDefinition:ignoreOldDefinition
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1502
    "generate method code returning all classes of the project.
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1503
     Platform attributes are kept from the old definition.
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1504
     If ignoreOldEntries is true, the list is completely recreated;
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1505
     if false, existing entries are preserved.
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1506
     If ignoreOldDefinition is true, the autoload attribute is set/reset if
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1507
     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
  1508
     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
  1509
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  1510
    |newSpec oldSpec ignored|
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1511
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1512
    oldSpec := self classNamesAndAttributesAsSpecArray.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1513
    ignored := self ignoredClassNames asSet.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1514
    newSpec := OrderedCollection new.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1515
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1516
    ignoreOldEntries ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1517
	oldSpec do:[:oldEntry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1518
	    |newEntry className cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1519
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1520
	    newEntry := oldEntry copy.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1521
	    className := newEntry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1522
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1523
	    (ignored includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1524
		cls := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1525
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1526
		    ignoreOldDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1527
			cls isLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1528
			    (newEntry includes:#autoload) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1529
				newEntry := newEntry copyWith:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1530
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1531
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1532
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1533
		    "JV @ 2010-06-19
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1534
		     Force merge default class attributes with existing ones"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1535
		    newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1536
		    newSpec add:newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1537
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1538
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1539
	].
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1540
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1541
    self searchForClasses do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1542
	|className attributes oldSpecEntry oldAttributes newEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1543
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1544
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1545
	    className := eachClass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1546
	    (ignored includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1547
		oldSpecEntry := oldSpec detect:[:entry | entry first = className] ifNone:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1548
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1549
		(ignoreOldEntries or:[oldSpecEntry isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1550
		    (eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1551
			(self additionalClassNamesAndAttributes includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1552
			    (oldSpecEntry size > 1) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1553
				oldAttributes := oldSpecEntry copyFrom:2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1554
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1555
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1556
			    ignoreOldDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1557
				"take autoload attribute from classes state in the image"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1558
				oldAttributes notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1559
				    attributes := oldAttributes copyWithout:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1560
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1561
				    attributes := #()
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1562
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1563
				eachClass isLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1564
				    attributes := attributes copyWith:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1565
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1566
			    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1567
				"keep any existing attribute"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1568
				oldAttributes notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1569
				    attributes := oldAttributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1570
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1571
				    attributes := eachClass isLoaded ifTrue:[ #() ] ifFalse:[ #(autoload) ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1572
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1573
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1574
			    "JV @ 2010-06-19
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1575
			     Support for additional class attributes and programming language attribute"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1576
			    attributes := self mergeDefaultClassAttributesFor: eachClass with: attributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1577
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1578
			    newEntry := Array with:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1579
			    attributes notEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1580
				newEntry := newEntry , attributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1581
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1582
			    newSpec add:newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1583
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1584
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1585
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1586
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1587
	]
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1588
    ].
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  1589
    ^ self classNamesAndAttributes_codeFor:newSpec
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1590
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1591
    "
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1592
     stx_libbasic3 classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1593
     exept_expecco classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1594
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1595
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1596
    "Modified: / 08-08-2006 / 19:24:34 / fm"
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1597
    "Created: / 10-10-2006 / 22:00:50 / cg"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  1598
    "Modified: / 06-09-2011 / 07:48:52 / cg"
16802
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  1599
    "Modified: / 30-07-2014 / 20:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22333
3c675c8b5266 #DOCUMENTATION by mawalch
mawalch
parents: 22186
diff changeset
  1600
    "Modified (comment): / 08-11-2017 / 17:59:04 / mawalch"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1601
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1602
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1603
companyName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1604
    "generate code that answers the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1605
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1606
    ^ self companyName_codeFor:self companyName
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1607
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1608
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1609
     self companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1610
     stx_libbasic3 companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1611
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1612
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1613
    "Created: / 18-08-2006 / 16:20:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1614
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1615
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1616
companyName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1617
    "generate code that answers aString as the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1618
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1619
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1620
	s nextPutLine:'companyName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1621
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #companyName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1622
	s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1623
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1624
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
     self companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1627
     stx_libbasic3 companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1628
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1629
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1630
    "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
  1631
    "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
  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
compileDescriptionMethods
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1635
    (self isAbstract) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1636
	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
  1637
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1638
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1639
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1640
	forEachMethodsCodeToCompileDo:[:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1641
	    self compile:code categorized:category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1642
	].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1643
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1644
"/    self instAndClassMethodsDo:[:m | m package:self package].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1645
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1646
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1647
     DapasXProject compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1648
     DapasX_Datenbasis compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1649
     bosch_dapasx_interactiver_editor compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1650
     stx_libbasic compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1651
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1652
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1653
    "Created: / 09-08-2006 / 18:00:31 / fm"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1654
    "Modified: / 05-09-2006 / 13:46:29 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1655
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1656
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1657
description_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1658
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1659
	s nextPutLine:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1660
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #description) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1661
	s cr; nextPutLine:'    ^ ',self description asString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1662
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1663
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1664
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1665
     self description_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1666
     stx_libbasic3 description_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1667
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1668
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1669
    "Created: / 17-08-2006 / 21:24:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1670
    "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
  1671
    "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
  1672
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1673
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1674
effectiveSubProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1675
    "get the subProjects for the current OS platform, that are not excluded"
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1676
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1677
    ^ self effectiveSubProjects:OperatingSystem platformName
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1678
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1679
    "Modified: / 17-01-2017 / 16:31:42 / stefan"
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1680
!
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1681
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1682
effectiveSubProjects:osSymbol
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1683
    "get the subProjects, that are not excluded.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1684
     osSymbol can be #win32 or #unix (for now)."
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1685
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1686
    |prereqs subProjects|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1687
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1688
    prereqs := self allPreRequisites.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1689
    
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1690
    subProjects := (self subProjects, self includedInSubProjects) 
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1691
                        collect:[:eachLine|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1692
                            |prj|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1693
                            
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1694
                            eachLine isString ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1695
                                prj := eachLine
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1696
                            ] ifFalse:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1697
                                eachLine second = osSymbol ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1698
                                    prj := eachLine first.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1699
                                ].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1700
                            ].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1701
                            (prereqs includes:prj) ifTrue:[ prj := nil].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1702
                            prj.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1703
                       ] as:OrderedSet.
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1704
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1705
    subProjects remove:self package ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1706
    subProjects remove:nil ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1707
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1708
    self excludedFromSubProjects do:[:eachLine|
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1709
        eachLine isString ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1710
            subProjects remove:eachLine ifAbsent:[].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1711
        ] ifFalse:[eachLine second = osSymbol ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1712
            subProjects remove:eachLine first ifAbsent:[].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1713
        ]].
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1714
    ].
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1715
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1716
    ^ subProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1717
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1718
    "Created: / 17-01-2017 / 16:16:03 / stefan"
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1719
    "Modified: / 22-01-2019 / 14:42:51 / Claus Gittinger"
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1720
!
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1721
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1722
excludedFromPreRequisites_code
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1723
    "generate the code of the #excludedFromPreRequisites method"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1724
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1725
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1726
	s nextPutLine:'excludedFromPreRequisites'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1727
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #excludedFromPreRequisites) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1728
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1729
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1730
	s nextPutLine:'    )'
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1731
    ].
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
  1732
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1733
    "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
  1734
!
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1735
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1736
extensionMethodNames_code
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1737
    ^ self extensionMethodNames_code_ignoreOldEntries:true
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1738
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1739
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1740
     self extensionMethodNames_code
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1741
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1742
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1743
    "Created: / 17-08-2006 / 21:21:48 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1744
    "Modified: / 10-10-2006 / 22:02:42 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1745
!
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1746
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1747
extensionMethodNames_code_For:extensionMethodNames
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1748
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1749
	|spec|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1750
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1751
	s nextPutLine:'extensionMethodNames'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1752
	s nextPutLine:'    "lists the extension methods which are to be included in the project.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1753
	s nextPutLine:'     Entries are pairwise elements, consisting of class-name and selector."'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1754
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1755
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1756
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1757
	spec := extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1758
	spec do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1759
	    |mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1760
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1761
	    mclassName := entry key asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1762
	    (mclassName endsWith:' class') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1763
		mclassName := mclassName asString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1764
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1765
	    mselector := entry value asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1766
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1767
	    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1768
	    mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1769
	    s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1770
	    mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1771
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1772
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1773
	s nextPutLine:'    )'
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1774
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1775
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1776
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1777
extensionMethodNames_code_ignoreOldEntries:ignoreOldEntries
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1778
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1779
	|oldSpec|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1780
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1781
	s nextPutLine:'extensionMethodNames'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1782
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #extensionMethodNames) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1783
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1784
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1785
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1786
	oldSpec := self extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1787
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1788
	ignoreOldEntries ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1789
	    oldSpec do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1790
		|mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1791
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1792
		mclassName := entry key asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1793
		(mclassName endsWith:' class') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1794
		    mclassName := mclassName asString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1795
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1796
		mselector := entry value asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1797
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1798
		s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1799
		mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1800
		s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1801
		mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1802
		s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1803
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1804
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1805
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1806
	self searchForExtensions do:[:eachMethod |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1807
	    |attributes oldSpecEntry mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1808
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1809
	    mclassName := eachMethod mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1810
	    mselector := eachMethod selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1811
	    "JV@2012-09-07: Do not list Java methods in extensionMethodNames.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1812
	     They are loaded lazily by JavaClassReader and if listed here,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1813
	     they would cause an error if the package is loaded from source.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1814
	     Sort of a HACK, indeed"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1815
	    eachMethod mclass theNonMetaclass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1816
		oldSpecEntry := oldSpec detect:[:entry | entry key = mclassName and:[ entry value = mselector]] ifNone:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1817
		(ignoreOldEntries or:[ oldSpecEntry isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1818
		    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1819
		    mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1820
		    s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1821
		    mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1822
		    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1823
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1824
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1825
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1826
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1827
	s nextPutLine:'    )'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1828
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1829
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1830
    "
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1831
     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
  1832
     stx_libjava extensionMethodNames_code_ignoreOldEntries:false
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1833
     stx_libtool extensionMethodNames_code_ignoreOldEntries:true
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1834
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1835
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1836
    "Created: / 10-10-2006 / 22:02:36 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  1837
    "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
  1838
    "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
  1839
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1840
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1841
forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1842
    "generate code for each contents-specifying method
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1843
     (classesAndAttributes, extensionMethodNames, etc.),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1844
     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
  1845
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1846
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1847
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1848
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1849
	value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1850
	value:'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1851
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1852
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1853
	value: (self extensionMethodNames_code_ignoreOldEntries:ignoreOldDefinition)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1854
	value: 'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1855
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1856
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1857
	value: self mandatoryPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1858
	value: 'description'.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1859
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1860
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1861
	value: self referencedPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1862
	value: 'description'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1863
16571
e7bc644361e4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16554
diff changeset
  1864
    (self class includesSelector:#excludedFromPreRequisites) ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1865
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1866
	    value: self excludedFromPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1867
	    value: 'description'.
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  1868
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1869
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1870
    "/ JV:  No, subProjects **should not** be automatically generated.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1871
    "/      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
  1872
    "/      subProjects only if there's no such method yet.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1873
    (self class methodDictionary includesKey: #subProjects) ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1874
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1875
	    value: self subProjects_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1876
	    value: 'description'.
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1877
    ].
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  1878
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1879
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1880
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1881
	    value: self monticelloTimestamps_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1882
	    value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1883
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1884
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  1885
    "Modified: / 25-11-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1886
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1887
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1888
forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1889
    "generate code for descriptive methods,
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1890
     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
  1891
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1892
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1893
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1894
    "/  code like:
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1895
    "/
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1896
    "/ (self class includesSelector:#productName) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1897
    "/     aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1898
    "/         value: self productName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1899
    "/         value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1900
    "/ ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1901
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1902
    #(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1903
	(productName productName_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1904
	(description description_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1905
	(companyName companyName_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1906
	(legalCopyright legalCopyright_code)
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1907
    ) pairsDo:[:selector :codeMethodSelector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1908
	(self class includesSelector:selector) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1909
	    aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1910
		value: (self perform:codeMethodSelector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1911
		value: 'description - project information'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1912
	].
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1913
    ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1914
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1915
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1916
forEachMethodsCodeToCompileDo:aTwoArgBlock
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1917
    "update code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1918
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1919
     New items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1920
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1921
    self forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1922
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1923
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1924
forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1925
    "generate code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1926
     and evaluate aTwoArgBlock on it, passing in the code and the method's category.
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1927
     If ignoreOldDefinition is true, new code is generated (class/method scan);
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1928
     otherwise, new items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1929
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1930
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1931
	forEachContentsMethodsCodeToCompileDo:aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1932
	ignoreOldDefinition:ignoreOldDefinition.
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1933
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1934
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1935
	forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1936
	ignoreOldDefinition:ignoreOldDefinition.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1937
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1938
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1939
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1940
	    value: self monticelloTimestamps_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1941
	    value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1942
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1943
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1944
    "Created: / 18-08-2006 / 16:22:37 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1945
    "Modified: / 09-11-2010 / 18:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1946
    "Modified: / 21-12-2011 / 16:42:41 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1947
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1948
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1949
legalCopyright_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1950
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1951
	s nextPutLine:'legalCopyright'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1952
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #legalCopyright) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1953
	s cr; nextPutLine:'    ^ ', self legalCopyright storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1954
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1955
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1956
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1957
     self legalCopyright_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1958
     stx_libbasic3 legalCopyright_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1959
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1960
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1961
    "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
  1962
    "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
  1963
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1964
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1965
mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1966
    "generate the code of the #mandatoryPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1967
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1968
    |preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1969
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1970
    preRequisites := self searchForPreRequisites first.
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1971
    preRequisites 
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1972
        removeAllKeys:self excludedFromMandatoryPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1973
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1974
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1975
    self checkForBadReferences:preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1976
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1977
    ^ String streamContents:[:s |
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1978
        s nextPutLine:'mandatoryPreRequisites'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1979
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #mandatoryPreRequisites) comment; nextPutLine:'"'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1980
        s nextPutLine:''.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1981
        s nextPutLine:'    ^ #('.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1982
        preRequisites keys asSortedCollection do:[:eachPackageID |
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1983
            |reason|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1984
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1985
            s spaces:8.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1986
            eachPackageID asSymbol storeOn:s.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1987
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1988
            reason notEmptyOrNil ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1989
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1990
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1991
            s cr.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1992
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1993
        s nextPutLine:'    )'
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1994
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1995
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1996
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1997
     demo_demoApp1 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1998
     stx_libbasic3 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  1999
     stx_libtool2 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2000
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2001
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2002
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2003
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2004
    "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
  2005
    "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
  2006
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2007
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2008
productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2009
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2010
	s nextPutLine:'productInstallDirBaseName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2011
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productInstallDirBaseName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2012
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2013
	nextPutLine:'    ^ (self package asCollectionOfSubstringsSeparatedByAny:'':/'') last'.
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2014
    ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2015
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2016
    "
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2017
     ApplicationDefinition productInstallDirBaseName_code
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2018
     stx_libbasic3 productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2019
     stx_clients_Clock_QlockTwoWatchApplication productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2020
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2021
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2022
    "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
  2023
    "Modified: / 05-03-2014 / 17:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2024
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2025
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2026
productName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2027
    "generate code that answers the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2028
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2029
    ^ self productName_codeFor:(self productName)
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2030
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2031
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2032
     self productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2033
     stx_libbasic3 productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2034
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2035
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2036
    "Created: / 18-08-2006 / 16:14:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2037
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2038
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2039
productName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2040
    "generate code that answers aString as the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2041
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2042
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2043
	s nextPutLine:'productName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2044
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2045
	s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2046
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2047
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2048
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2049
     self productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2050
     stx_libbasic3 productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2051
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2052
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2053
    "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
  2054
    "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
  2055
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2056
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2057
referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2058
    "generate the code of the #referencedPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2059
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2060
    |preRequisitesColl preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2061
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2062
    preRequisitesColl := self searchForPreRequisites.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  2063
    preRequisites := preRequisitesColl second.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2064
    preRequisites
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2065
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2066
        removeAllKeys:self excludedFromRequiredPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2067
        removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2068
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2069
    self checkForBadReferences:preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2070
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2071
    ^ String streamContents:[:s |
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2072
        s nextPutLine:'referencedPreRequisites'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2073
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #referencedPreRequisites) comment; nextPutLine:'"'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2074
        s nextPutLine:''.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2075
        s nextPutLine:'    ^ #('.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2076
        preRequisites keys asSortedCollection do:[:eachPackageID |
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2077
            |reason|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2078
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2079
            s spaces:8.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2080
            eachPackageID asSymbol storeOn:s.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2081
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2082
            reason notEmptyOrNil ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2083
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2084
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2085
            s cr.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2086
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2087
        s nextPutLine:'    )'
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2088
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2089
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2090
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2091
     demo_demoApp1 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2092
     stx_libbasic3 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2093
     stx_libtool2 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2094
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2095
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2096
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2097
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2098
    "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
  2099
    "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
  2100
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2101
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2102
subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2103
    "generate the code of the #subProjects method.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2104
     Returns nil if no such code is needed (because there are none)"
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2105
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2106
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2107
	s nextPutLine:'subProjects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2108
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #subProjects) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2109
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2110
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2111
	ProjectDefinition allSubclassesDo:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2112
	    (each package startsWith:(self package,'/')) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2113
		s nextPutLine:'        #''',each package,''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2114
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2115
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2116
	s nextPutLine:'    )'
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2117
    ].
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
  2118
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  2119
    "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
  2120
!
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2121
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2122
svnRevisionNr_code: revisionNrOrNil
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2123
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2124
	s nextPutLine:'svnRevisionNr'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2125
	s nextPutLine:'    "Return a SVN revision number of myself.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2126
	s nextPutLine:'     This number is updated after a commit"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2127
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2128
	nextPutLine:'    ^ "$SVN-Revision:"''', ('%-16s' printf: (Array with: revisionNrOrNil printString)) , '''"$"'.
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2129
    ].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2130
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2131
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2132
     self svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2133
     stx_libbasic3 svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2134
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2135
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2136
    "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
  2137
    "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
  2138
    "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
  2139
! !
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2140
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2141
!ProjectDefinition class methodsFor:'defaults'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2142
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2143
applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2144
    GUIApplicationType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2145
    ^ Array with:GUIApplicationType with:NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2146
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2147
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2148
     self applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2149
    "
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2150
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2151
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2152
defaultCategory
10466
aa61cdb54299 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10434
diff changeset
  2153
    ^'* Projects & Packages *'
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2154
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2155
    "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
  2156
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2157
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2158
defaultProjectType
9745
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2159
    ^ self libraryTypes first
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2160
    "/ ^ self applicationTypes first
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2161
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2162
    "Created: / 23-08-2006 / 14:27:32 / cg"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2163
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2164
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2165
defaultProjectTypeForGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2166
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2167
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2168
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2169
defaultProjectTypeForNonGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2170
    ^ NonGUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2171
!
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2172
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2173
folderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2174
    ^ FolderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2175
!
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2176
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2177
guiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2178
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2179
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2180
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2181
libraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2182
    ^ LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2183
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2184
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2185
libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2186
    LibraryType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2187
    ^ Array with:LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2188
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2189
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2190
     self libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2191
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2192
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2193
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2194
nonGuiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2195
    ^ NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2196
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2197
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2198
projectTypeSelectors
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2199
    "a list of possible project type selectors"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2200
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2201
    ^ #( libraryType guiApplicationType nonGuiApplicationType folderForSubApplicationsType )
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2202
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2203
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2204
     self libraryType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2205
     self guiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2206
     self nonGuiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2207
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2208
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2209
    "Created: / 23-08-2006 / 14:27:32 / cg"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2210
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2211
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2212
projectTypes
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2213
    "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
  2214
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2215
    ^ self libraryTypes , self applicationTypes , { FolderForSubApplicationsType }
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2216
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2217
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2218
     self projectTypes
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2219
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2220
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2221
    "Created: / 23-08-2006 / 14:27:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2222
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2223
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2224
!ProjectDefinition class methodsFor:'description'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2225
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2226
excludedFromMandatoryPreRequisites
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2227
    "list packages which are to be explicitely excluded from the automatic constructed
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2228
     mandatory prerequisites list.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2229
     If empty, everything that is found along the inheritance of any of
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2230
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2231
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2232
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2233
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2234
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2235
excludedFromPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2236
    "obsolete; temporarily, this is still called for, but will eventually vanish.
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2237
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2238
     List packages which are to be explicitely excluded from the automatic constructed
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2239
     prerequisites lists (both).
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2240
     If empty, everything that is found along the inheritance of any of
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2241
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2242
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2243
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2244
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2245
    "Modified: / 17-08-2006 / 19:48:59 / cg"
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2246
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2247
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2248
excludedFromRequiredPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2249
    "list packages which are to be explicitely excluded from the automatic constructed
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2250
     required prerequisites list.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2251
     If empty, everything that is found along the inheritance of any of
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2252
     my classes is considered to be a prerequisite package."
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2253
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2254
    ^ #()
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2255
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2256
    "Modified: / 17-08-2006 / 19:48:59 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2257
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2258
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2259
excludedFromSubProjects
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2260
    "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
  2261
     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
  2262
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2263
    ^ #()
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2264
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2265
    "Modified: / 17-08-2006 / 19:49:40 / cg"
10039
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2266
!
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2267
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2268
includedInPreRequisites
17577
53adcc238353 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17552
diff changeset
  2269
    "list packages which are to be implicitely included in the prerequisites list,
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2270
     even if not found by the automatic search.
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2271
     Redefine this, if classes from other packages are referred to via reflection
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2272
     or by constructing names dynamically (i.e. the search cannot find it)"
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2273
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2274
    ^ #()
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2275
!
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2276
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2277
includedInSubProjects
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2278
    "list packages which are to be explicitely included in the subproject list,
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2279
     even if not found by the automatic search.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2280
     However: they are not forced to be loaded when a package is loaded;
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2281
     for those, redefine #includedInPreRequisites."
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2282
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2283
    ^ #()
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2284
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2285
    "Modified: / 17-08-2006 / 19:57:46 / cg"
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2286
!
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2287
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2288
mandatoryPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2289
    "list packages which are mandatory as a prerequisite.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2290
     This are packages containing superclasses of my classes and classes which
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2291
     are extended by myself.
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  2292
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2293
     When loading whole packages,
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2294
     mandatoryPreRequisites will be automatically loaded
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2295
     BEFORE this packet has been loaded. 
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2296
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2297
     by searching along the inheritance chain of all of my classes.
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2298
     Please take a look at the #referencedPreRequisites method as well."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2299
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2300
    ^ #()
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2301
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2302
    "Modified (comment): / 23-06-2019 / 10:40:58 / Claus Gittinger"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2303
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2304
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2305
nonMandatorySubProjects
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2306
    "list subprojects which can be ignored if the folder has been removed.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2307
     Make will give a warning, but proceed.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2308
     Should be a subset of what is returned by #subProjects"
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2309
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2310
    ^ #()
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2311
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2312
    "Created: / 07-03-2019 / 17:31:36 / Claus Gittinger"
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2313
!
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2314
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2315
preRequisites
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2316
    "list packages which are required as a prerequisite (both mandatory and referenced).
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2317
     This is used to build dependency chains in makefiles"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2318
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2319
    "use an OrderedSet here, so that mandatory prerequisites come first"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2320
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2321
    ^ OrderedSet new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2322
	addAll:self mandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2323
	addAll:self referencedPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2324
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2325
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2326
	yourself.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2327
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2328
    "Modified: / 17-08-2006 / 19:54:21 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2329
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2330
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2331
preRequisitesFor:packageId
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2332
    |def|
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2333
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2334
    def := self definitionClassForPackage:packageId.
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2335
    def isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2336
	"Maybe the package is not loaded? Try to load it..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2337
	[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2338
	    Smalltalk loadPackage:packageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2339
	    def := self definitionClassForPackage:packageId
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2340
	] on:PackageLoadError do:[:ex| def := nil].
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2341
    ].
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2342
    ^ def isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2343
	"Still no project definition - maybe it does not exist?"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2344
	Transcript showCR:'Warning: no definition class for package: ', packageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2345
	((self searchForPreRequisites:packageId)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2346
	    fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2347
    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2348
	def effectivePreRequisites
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2349
    ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2350
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2351
    "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
  2352
    "Modified: / 18-11-2011 / 14:52:43 / cg"
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2353
    "Modified (format): / 19-11-2011 / 11:25:36 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2354
    "Modified: / 17-01-2017 / 16:55:39 / stefan"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2355
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2356
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2357
referencedPreRequisites
16213
27e97f818e5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16179
diff changeset
  2358
    "list packages which are a prerequisite, because they contain
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2359
     classes which are referenced by my classes.
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2360
     These packages are NOT needed as a prerequisite for compiling or loading,
17472
5546981c5eb9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17461
diff changeset
  2361
     however, a class from it may be referenced during execution and having it
5546981c5eb9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17461
diff changeset
  2362
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
5546981c5eb9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17461
diff changeset
  2363
     includes explicit checks for the package being present.
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2364
     When loading whole packages,
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2365
     referencedPreRequisites will be automatically loaded
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2366
     AFTER this packet has been loaded. 
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2367
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2368
     by searching all classes (and their packages) which are referenced by my classes.
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2369
     Please also take a look at the #mandatoryPreRequisites method"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2370
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2371
    ^ #()
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2372
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  2373
    "Modified (comment): / 23-06-2019 / 10:40:30 / Claus Gittinger"
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2374
!
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2375
9685
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2376
siblingsAreSubProjects
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2377
    ^ false
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2378
!
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2379
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2380
splashFileName
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2381
    "answer the base-name of the splash bitmap.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2382
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2383
     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
  2384
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2385
    ^ nil.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2386
!
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2387
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2388
subProjects
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2389
    "list packages which are known as subprojects.
14959
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2390
     The generated makefile will enter those and make there as well.
24425
3733fe6e6258 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 24416
diff changeset
  2391
     However: they are only built, not forced to be loaded when a package is loaded;
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2392
     for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2393
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2394
    ^ #()
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2395
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2396
    "Modified: / 17-08-2006 / 19:57:46 / cg"
24425
3733fe6e6258 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 24416
diff changeset
  2397
    "Modified (comment): / 15-07-2019 / 15:31:56 / Claus Gittinger"
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2398
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2399
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2400
superProject
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2401
    "return the package which contains me as subProject,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2402
     or if not found, which contains me under its directory hierarchy,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2403
     or nil if none found"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2404
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2405
    |p superPackage idx|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2406
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2407
    p := self package.
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2408
    ProjectDefinition allSubclassesDo:[:prjDef |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2409
	(prjDef subProjects includes:p) ifTrue:[^ prjDef].
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2410
    ].
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2411
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2412
	(idx := p lastIndexOf:$/) ~~ 0
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2413
    ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2414
	|defClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2415
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2416
	superPackage := p copyTo:idx-1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2417
	(defClass := ProjectDefinition definitionClassForPackage:superPackage) notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2418
	    ^ defClass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2419
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2420
	p := superPackage.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2421
    ].
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2422
    ^ nil
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2423
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2424
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2425
     stx_goodies_refactoryBrowser_lint superProject
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2426
     exept_expecco_plugin_guiBrowser superProject
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2427
    "
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2428
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2429
    "Created: / 15-02-2017 / 16:49:05 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2430
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2431
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2432
!ProjectDefinition class methodsFor:'description - actions'!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2433
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2434
postLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2435
    "invoked after loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2436
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2437
    "/ 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
  2438
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2439
    "Modified: / 17-08-2006 / 19:59:17 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2440
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2441
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2442
preLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2443
    "invoked before loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2444
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2445
    "/ 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
  2446
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2447
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2448
preUnloadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2449
    "invoked before unloading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2450
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2451
    "/ 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
  2452
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2453
    "Modified: / 17-08-2006 / 19:59:26 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2454
! !
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2455
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  2456
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2457
!ProjectDefinition class methodsFor:'description - compilation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2458
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2459
additionalBaseAddressDefinition_bc_dot_mak
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2460
    "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
  2461
     Subclasses may redefine this to something like
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2462
	LIB_BASE=$(LIBWIDG_BASE)
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2463
     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
  2464
    "
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2465
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2466
    ^ nil
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2467
!
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2468
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2469
additionalDefinitions
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  2470
    "allows for additional definitions/rules to be added to both the Make.proto and bc.mak file."
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2471
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2472
    ^ ''
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2473
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2474
    "Modified (comment): / 03-02-2015 / 05:59:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2475
!
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2476
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2477
additionalDefinitions_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2478
    "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
  2479
     Subclasses may redefine this."
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2480
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2481
    ^ self additionalDefinitions_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2482
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2483
    "Created: / 22-08-2006 / 23:59:32 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2484
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2485
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2486
additionalDefinitions_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2487
    "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
  2488
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2489
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2490
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2491
    "Created: / 22-08-2006 / 23:53:08 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2492
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2493
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2494
additionalDefinitions_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2495
    "obsolete - kept for compatibility with old project files"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2496
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2497
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2498
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2499
    "Created: / 22-08-2006 / 23:59:32 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2500
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2501
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2502
additionalHeaderRulesUsingTemplate:template withSeparator:pathSeparator
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2503
    "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
  2504
     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
  2505
     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
  2506
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2507
    ^ String streamContents:[:s |
25285
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2508
        (self extensionClassesWithSuperclasses:true) do:[:eachExtendedClass |
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2509
            |headerFileDirPath baseFilename|
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2510
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2511
            (eachExtendedClass isLoaded not or:[eachExtendedClass wasAutoloaded]) ifTrue:[
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2512
                headerFileDirPath := self pathToPackage:eachExtendedClass package withSeparator:pathSeparator.
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2513
                baseFilename := self filenameForClass:eachExtendedClass.
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2514
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2515
                s nextPutAll:template with:headerFileDirPath with:baseFilename.
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2516
            ]
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  2517
        ].
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2518
    ].
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2519
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2520
    "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
  2521
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2522
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2523
additionalHeaderRules_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2524
    "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
  2525
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2526
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2527
	additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_bc_dot_mak)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2528
	withSeparator:'\'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2529
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2530
    "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
  2531
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2532
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2533
additionalHeaderRules_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2534
    "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
  2535
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2536
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2537
	additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_make_dot_proto)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2538
	withSeparator:'/'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2539
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2540
    "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
  2541
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2542
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2543
additionalLinkLibraries_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2544
    "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
  2545
     Subclasses may redefine this"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2546
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2547
    "backward compatibilty with old projects"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2548
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2549
    ^ self additionalLinkLibraries_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2550
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2551
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2552
    "Created: / 22-08-2006 / 23:53:33 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2553
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2554
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2555
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
  2556
    "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
  2557
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2558
    ^ ''
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2559
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2560
    "Created: / 22-08-2006 / 23:53:33 / cg"
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2561
!
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2562
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2563
additionalLinkLibraries_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2564
    "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
  2565
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2566
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2567
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2568
    "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
  2569
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2570
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2571
additionalRulesFor: fileToGenerateFor
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2572
    "Return additional rules for given file specified by <rule:file:> or <rule:extends:file:>.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2573
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2574
     See class documentation on rule extension methods"
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2575
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2576
    | rules cls processed |
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2577
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2578
    cls := self.
20503
e598faa37310 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 20424
diff changeset
  2579
    rules := '' writeStream.
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2580
    processed := Set new.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2581
    [ cls ~~ Object ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2582
	cls class selectorsAndMethodsDo:[:selector :method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2583
	    method annotationsAt: #file:target: orAt:#file:target:extends: do: [ :annotation |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2584
		(processed includes: selector) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2585
		    | file target extends contents |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2586
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2587
		    processed add: selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2588
		    file := annotation argumentAt: 1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2589
		    target := annotation argumentAt: 2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2590
		    annotation key == #file:target:extends: ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2591
			extends := annotation argumentAt: 3.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2592
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2593
		    (#('Make.proto' 'bc.mak' ) includes: file) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2594
			self error:'Only Make.proto or bc.mak can have extension rules!!'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2595
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2596
		    extends notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2597
			file = 'Make.proto' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2598
			    (#('all' 'clean' ) includes: extends) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2599
				self error: ('Rule %1 cannot be extended. Check documentation to see which rules can be extended' bindWith: extends).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2600
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2601
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2602
			file = 'bc.mak' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2603
			    (#('ALL' 'clean') includes: extends) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2604
				self error: ('Rule %1 cannot be extended. Check documentation to see which rules can be extended' bindWith: extends).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2605
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2606
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2607
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2608
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2609
		    (fileToGenerateFor = file and:[(contents := self perform: selector) notNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2610
			rules nextPutAll: contents.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2611
			rules cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2612
			extends notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2613
			    rules nextPutAll: extends; nextPutAll:'::'; space; nextPutLine: target; cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2614
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2615
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2616
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2617
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2618
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2619
	cls := cls superclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2620
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2621
    fileToGenerateFor = 'Make.proto' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2622
	rules nextPutAll: self additionalRules_make_dot_proto.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2623
    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2624
	fileToGenerateFor = 'bc.mak' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2625
	    rules nextPutAll: self additionalRules_bc_dot_mak
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2626
	]
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2627
    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2628
    ^ rules contents asStringCollection withTabs asString.
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2629
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2630
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2631
    stx_libjava additionalRulesFor: 'Make.proto'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2632
    stx_libjava additionalRulesFor: 'bc.mak'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2633
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2634
    stx_libjava generateFile:'Make.proto'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2635
    stx_libjava generateFile:'bc.mak'
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2636
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2637
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2638
    "Created: / 03-02-2015 / 06:49:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17404
e15994335cb4 Allow to extend target clean in both Make.proto and bc.mak.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17366
diff changeset
  2639
    "Modified: / 04-02-2015 / 07:41:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2640
!
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2641
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2642
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
  2643
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2644
    (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
  2645
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2646
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2647
# **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
  2648
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2649
# 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
  2650
# 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
  2651
# 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
  2652
!!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
  2653
$(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
  2654
!!ENDIF
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2655
' 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
  2656
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2657
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2658
	stx_libscm_mercurial additionalRulesHG_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
  2659
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2660
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2661
    "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
  2662
    "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
  2663
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2664
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2665
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
  2666
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2667
    (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
  2668
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2669
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2670
# 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
  2671
# 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
  2672
# definition class always contains correct binary revision string.
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2673
ifdef HGROOT
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2674
ifneq (**NOHG**, $(shell hg root 2> /dev/null || echo -n ''**NOHG**''))
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2675
 %1.$(O): $(shell hg root)/.hg/dirstate
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2676
endif
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2677
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2678
' 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
  2679
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2680
    "
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2681
        stx_libscm_mercurial additionalRulesHG_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
  2682
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2683
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2684
    "Created: / 28-11-2012 / 10:12:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2685
    "Modified: / 28-08-2018 / 16:00:49 / Claus Gittinger"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2686
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2687
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2688
additionalRulesSvn_make_dot_proto
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2689
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2690
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2691
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2692
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2693
# 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
  2694
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
  2695
.svnversion: *.st
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2696
	if [ -d .svn ]; then \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2697
		rev=$(shell svnversion -n); \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2698
		echo -n $$rev > .svnversion; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2699
	else \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2700
		echo -n exported > .svnversion; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2701
	fi
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2702
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2703
%1.o: %1.st .svnversion
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2704
	@if [ -d .svn ]; then \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2705
		rev2="$(shell printf "%-16s" $$(cat .svnversion))"; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2706
		echo "  [SV]  Expanding svnRevisionNo in $1.st"; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2707
		sed -e "s/\"\$$SVN\-Revision:\".*\"\$$\"/\"\$$SVN-Revision:\"\''$$rev2\''\"\$$\"/g" $< > .%1.svn.st; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2708
	fi
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2709
	$(MAKE) CC="$(CLASSLIB_CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" STC="$(STC)" STFILE=.%1.svn $(C_RULE);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2710
	sed -i -e "s/\".%1.svn.st\");/\"\%1.st\");/g" .%1.svn.c
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2711
	$(MAKE) .%1.svn.$(O)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2712
	@mv .%1.svn.$(O) %1.$(O)
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2713
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2714
' 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
  2715
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2716
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2717
	stx_libbasic3 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
  2718
    "
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2719
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2720
    "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
  2721
    "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
  2722
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2723
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2724
additionalRules_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2725
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2726
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2727
    ^ ''
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2728
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2729
    "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
  2730
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2731
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2732
additionalRules_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2733
    "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
  2734
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2735
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2736
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2737
    "Created: / 22-08-2006 / 23:59:16 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2738
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2739
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2740
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
  2741
    "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
  2742
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2743
    ^ ''
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2744
!
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2745
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2746
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
  2747
    "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
  2748
     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
  2749
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2750
    "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
  2751
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2752
    ^''
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2753
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2754
    "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
  2755
    "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
  2756
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2757
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2758
additionalTargets_bc_dot_mak
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2759
    "can list additional bc.mak targets (additional windows support files)"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2760
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2761
    ^ ''
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2762
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2763
    "Created: / 23-08-2006 / 00:00:35 / cg"
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2764
    "Modified (comment): / 07-11-2018 / 19:19:51 / Claus Gittinger"
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2765
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2766
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2767
additionalTargets_make_dot_proto
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2768
    "can list additional Make.proto targets (additional unix support files)"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2769
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2770
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2771
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2772
    "Created: / 22-08-2006 / 23:53:33 / cg"
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2773
    "Modified (comment): / 07-11-2018 / 19:20:02 / Claus Gittinger"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2774
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2775
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2776
additional_post_nsis_rules
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2777
    "this will be performed after the nsis did build the program installer"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2778
    ^ ''
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2779
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2780
    "Created: / 02-06-2015 / 17:41:37 / gg"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2781
!
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2782
19592
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2783
additional_post_nsis_rules64
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2784
    "this will be performed after the nsis did build the program installer for 64bit build"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2785
    ^ ''
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2786
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2787
    "Created: / 02-06-2015 / 17:41:37 / gg"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2788
!
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  2789
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2790
globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2791
    "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
  2792
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2793
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2794
    ^ ''
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2795
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2796
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2797
globalDefines_unix
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2798
    "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
  2799
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2800
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2801
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2802
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2803
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2804
globalDefines_win32
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2805
    "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
  2806
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2807
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2808
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2809
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2810
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2811
localDefines
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2812
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2813
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2814
    ^ ''
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2815
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2816
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2817
localDefines_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2818
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2819
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2820
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2821
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2822
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2823
localDefines_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2824
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2825
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2826
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2827
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  2828
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2829
localIncludes
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2830
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2831
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2832
    ^ ''
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2833
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2834
    "Created: / 06-09-2006 / 18:14:31 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2835
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2836
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2837
localIncludes_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2838
    "allow for the specification of additional include directories"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2839
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2840
    ^ self makeUnixIncludes:(self localIncludes)
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2841
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2842
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2843
    "Modified: / 06-09-2006 / 18:15:26 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2844
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2845
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2846
localIncludes_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  2847
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2848
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2849
    ^ self makeWin32Includes:(self localIncludes)
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2850
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2851
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  2852
    "Modified: / 06-09-2006 / 18:15:37 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2853
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2854
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
  2855
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
  2856
    "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
  2857
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2858
    ^ ''
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2859
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2860
    "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
  2861
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2862
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2863
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
  2864
    "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
  2865
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2866
    ^ 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
  2867
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2868
    "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
  2869
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2870
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2871
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
  2872
    "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
  2873
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2874
    ^ 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
  2875
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2876
    "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
  2877
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  2878
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2879
singleHeaderRuleTemplate_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2880
    "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
  2881
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2882
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2883
%1\%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2884
',Character tab,'pushd %1 \
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2885
',Character tab,'& $(STC) $(FFLAGS) $(STCFLAGS) $(STC_MSGFORMAT) $(DBGFLAGS) $(DEFS) -C -headerOnly %2.st \
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2886
',Character tab,'& popd
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2887
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2888
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2889
    "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
  2890
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2891
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2892
singleHeaderRuleTemplate_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2893
    "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
  2894
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2895
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2896
%1/%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  2897
',Character tab,'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
  2898
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2899
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2900
    "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
  2901
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2902
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2903
stcOptimizationOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2904
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2905
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2906
     For now, the following variants are useful:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2907
	+optspace3                  most compact code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2908
				    - use for all gui, application code.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2909
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2910
	+optinline +optinline2 +inlineNew
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2911
				    fastest code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2912
				    - use only for computation-intensive classes"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2913
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2914
    ^ '+optspace3'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2915
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2916
    "Created: / 18-08-2006 / 12:50:27 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2917
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2918
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2919
stcWarningOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2920
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  2921
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2922
     For now, the following variants are useful:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2923
	-warn                   no warnings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2924
	-warnNonStandard        no warnings about non-standard smalltalk features
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2925
	-warnUnused             no warnings about unused variables"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2926
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2927
    ^ '-warnNonStandard'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2928
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2929
    "Created: / 18-08-2006 / 12:51:38 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2930
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2931
22688
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2932
!ProjectDefinition class methodsFor:'description - contents'!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2933
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2934
additionalClassNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2935
    "a List of classes, that belong to the project, but may not be included
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2936
     in the image (someone may have removed it by purpose)"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2937
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2938
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2939
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2940
    "Created: / 21-08-2006 / 19:53:04 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2941
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2942
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2943
classNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2944
    "a correponding method with real names must be present in my concrete subclasses"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2945
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2946
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2947
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2948
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2949
    "Created: / 07-08-2006 / 19:02:57 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2950
    "Modified: / 07-08-2006 / 21:25:25 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2951
    "Modified: / 17-08-2006 / 20:47:20 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2952
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2953
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2954
extensionMethodNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2955
    "lists the extension methods which are to be included in the project.
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2956
     Entries are 2-element array literals, consisting of class-name and selector.
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2957
     A correponding method with real names must be present in my concrete subclasses
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2958
     if it has extensions."
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2959
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2960
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2961
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2962
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2963
    "Modified: / 17-08-2006 / 20:49:51 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2964
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2965
25227
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2966
extensionMethodNamesPairWiseDo:aBlock
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2967
    "enumerates the extension methods into aBlock, passing class name and selector
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2968
     for each.
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2969
     New feature: second element of each pair can now be either a selector symbol
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2970
     (as it used to be) or an array of selectors."
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2971
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2972
    self extensionMethodNames pairWiseDo:[:className :selOrArrayOfSels |
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2973
        selOrArrayOfSels isSymbol ifTrue:[
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2974
            aBlock value:className value:selOrArrayOfSels
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2975
        ] ifFalse:[
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2976
            selOrArrayOfSels do:[:eachSelector |
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2977
                aBlock value:className value:eachSelector
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2978
            ]
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2979
        ]
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2980
    ].
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2981
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2982
    "Modified: / 17-08-2006 / 20:49:51 / cg"
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2983
!
5d8dd5d78968 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25195
diff changeset
  2984
22688
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2985
ignoredClassNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2986
    "can be redefined to suppress some classes from being included in a
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2987
     generated classNamesAndAttributes spec"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2988
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2989
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2990
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2991
    "Created: / 23-01-2007 / 19:08:27 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  2992
! !
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  2993
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2994
!ProjectDefinition class methodsFor:'description - project information'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2995
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  2996
applicationAdditionalIconFileNames
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2997
    "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
  2998
    (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
  2999
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3000
    ^ #()
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3001
!
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3002
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3003
applicationDocumentTypeDescriptions
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3004
    "Return the OSX document type descriptions.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3005
     For deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3006
     on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3007
     This is used eg. for double-clicking on a document in OSX.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3008
     If the deployed app can/should handle this, redefine this
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3009
     to return a collection of instances of ApplicationDocumentTypeDescription."
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3010
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3011
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3012
    ^ nil
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3013
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3014
    "Modified (comment): / 24-02-2017 / 09:36:42 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3015
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3016
11039
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3017
applicationIconFileName
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3018
    "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
  3019
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3020
    ^ nil
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3021
!
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3022
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3023
applicationIconFileNameLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3024
    "Return the icon-filename for the application (nil if there is none)"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3025
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3026
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3027
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3028
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3029
applicationIconFileNameOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3030
    "Return the OSX icon-filename for the application (nil if there is none).
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3031
     This must be the name of a .icns file, which contains the app-icon in
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3032
     multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3033
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3034
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3035
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3036
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3037
applicationIconFileNameWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3038
    "Return the icon-filename for the application (nil if there is none).
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3039
     This must be the name of a .ico file, which contains the app-icon in
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3040
     single or multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3041
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3042
    "/ for backward compatibility
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3043
    ^ self applicationIconFileName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3044
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3045
21571
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3046
applicationReadMeFileNameOSX
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3047
    "Return the OSX filename for a readme file.
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3048
     If nil, nothing is installed;
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3049
     if non-nil, it is copied into the dmg folder."
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3050
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3051
    ^ nil
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3052
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3053
    "Created: / 24-02-2017 / 14:21:57 / cg"
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3054
!
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3055
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3056
companyName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3057
    "Returns a company string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3058
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3059
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3060
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3061
    |m|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3062
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3063
    m := self module.
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3064
    (m = 'stx') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3065
	^ 'Claus Gittinger & eXept Software AG'
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3066
    ].
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3067
    (m = 'exept') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3068
	^ 'eXept Software AG'
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3069
    ].
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3070
    ^ 'My Company'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3071
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3072
    "Modified: / 18-08-2006 / 16:08:20 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3073
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3074
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3075
description
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3076
    "Returns a description string which will appear in vc.def / bc.def"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3077
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3078
    ^self productName,' ',self packageName
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3079
"/    ^ self name
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3080
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3081
    "Created: / 08-08-2006 / 11:15:01 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3082
    "Modified: / 17-08-2006 / 20:53:34 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3083
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3084
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3085
fileDescription
10416
e4fe2bf2276d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10414
diff changeset
  3086
    "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
  3087
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3088
    ^self description
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3089
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3090
    "Modified: / 17-08-2006 / 20:27:07 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3091
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3092
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3093
fileMajorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3094
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3095
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3096
    ^ self majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3097
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3098
    "Created: / 18-08-2006 / 12:03:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3099
    "Modified: / 30-08-2006 / 18:50:51 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3100
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3101
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3102
fileMinorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3103
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3104
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3105
    ^ self minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3106
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3107
    "Created: / 18-08-2006 / 12:03:13 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3108
    "Modified: / 30-08-2006 / 18:50:46 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3109
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3110
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3111
fileReleaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3112
    "Returns a releaseNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3113
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3114
    "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
  3115
     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
  3116
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3117
    "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
  3118
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3119
    ^ self cvsRevision last upTo:$m
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3120
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3121
    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
  3122
    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
  3123
    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
  3124
    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
  3125
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3126
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3127
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3128
    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
  3129
    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
  3130
    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
  3131
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3132
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3133
    "Created: / 18-08-2006 / 12:02:58 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3134
    "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
  3135
    "Modified: / 23-11-2012 / 11:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3136
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3137
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3138
fileRevisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3139
    "Returns a revisionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3140
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3141
    "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
  3142
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3143
    "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
  3144
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3145
    ^ self cvsRevision first
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3146
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3147
    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
  3148
    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
  3149
    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
  3150
    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
  3151
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3152
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3153
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3154
    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
  3155
    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
  3156
    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
  3157
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3158
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3159
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3160
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3161
    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
  3162
    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
  3163
    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
  3164
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3165
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3166
    "Created: / 18-08-2006 / 12:02:39 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3167
    "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
  3168
    "Modified: / 23-11-2012 / 11:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3169
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3170
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3171
fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3172
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3173
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3174
    "<major>.<minor>.<rev>.<rel> (such as '1.2.17.1') "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3175
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3176
    ^ '%1.%2.%3.%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3177
	bindWith:self fileMajorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3178
	with:self fileMinorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3179
	with:self fileRevisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3180
	with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3181
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
     self fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3184
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3185
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3186
    "Modified: / 30-08-2006 / 18:51:49 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3187
!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3188
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3189
fileVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3190
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3191
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3192
    "<major>,<minor>,<revision>,<release> (such as '2,17,1,2') "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3193
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3194
    ^ '%1,%2,%3,%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3195
	bindWith:self fileMajorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3196
	with:self fileMinorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3197
	with:self fileRevisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3198
	with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3199
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3200
    "Created: / 17-08-2006 / 20:16:17 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3201
    "Modified: / 30-08-2006 / 18:54:20 / cg"
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3202
!
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3203
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3204
internalName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3205
    "Returns a name string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3206
11041
3bb26d86e616 Fix #description and #internalName
Stefan Vogel <sv@exept.de>
parents: 11039
diff changeset
  3207
    ^ self package
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3208
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3209
    "Modified: / 17-08-2006 / 20:27:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3210
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3211
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3212
legalCopyright
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3213
    "Returns a copyright string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3214
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3215
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3216
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3217
    |m thisYear template|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3218
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3219
    m := self module.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3220
    thisYear := Date today year.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3221
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3222
    m = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3223
	"hardwired-default"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3224
	template := 'Copyright Claus Gittinger %1\nCopyright eXept Software AG %1'
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3225
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3226
	m = 'exept' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3227
	    "hardwired-default"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3228
	    template := 'Copyright eXept Software AG %1'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3229
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3230
	    template := 'My CopyRight or CopyLeft %1'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3231
	].
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3232
    ].
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3233
    ^ template bindWith:thisYear
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3234
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3235
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3236
     self legalCopyright
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3237
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3238
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3239
    "Modified (comment): / 18-11-2016 / 12:23:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3240
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3241
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3242
majorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3243
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3244
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3245
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3246
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3247
     But that's probably not good for an end-user-app."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3248
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3249
    ^ Smalltalk majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3250
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3251
    "Created: / 17-08-2006 / 20:20:18 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3252
    "Modified: / 30-08-2006 / 18:52:13 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3253
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3254
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3255
minorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3256
    "Returns a versionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3257
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3258
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3259
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3260
     But that's probably not good for an end-user-app."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3261
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3262
    ^ Smalltalk minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3263
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3264
    "Created: / 17-08-2006 / 20:20:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3265
    "Modified: / 30-08-2006 / 18:52:16 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3266
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3267
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3268
productDate
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3269
    "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
  3270
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3271
    "take the current date - by default"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3272
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3273
    ^ Timestamp now printStringRFC1123Format
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3274
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3275
    "Created: / 17-08-2006 / 20:17:28 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3276
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3277
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3278
productDescription
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3279
    "Returns a description (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3280
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3281
    ^ self description
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3282
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3283
    "Created: / 21-12-2010 / 09:32:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3284
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3285
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3286
productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3287
    "Returns a filename which will be used as linkname, product file name etc.
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3288
     The final deployable will be named like this (<fn>.dmg / <fn>Setup.ex / <fn>Install.pkg etc.)"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3289
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3290
    ^ self productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3291
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3292
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3293
     stx_projects_smalltalk productName
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3294
     stx_projects_smalltalk productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3295
     stx_libbasic productFilename
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3296
     stx_doc_coding_demoConsoleApp productFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3297
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3298
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3299
    "Created: / 01-03-2007 / 19:33:06 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3300
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3301
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3302
productInstallDir
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3303
    "Returns a default installDir which will appear in <app>.nsi."
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3304
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3305
    ^ '$PROGRAMFILES\',(self productInstallDirBaseName).
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3306
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3307
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3308
     stx_projects_smalltalk productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3309
     stx_clients_Clock_QlockTwoWatchApplication productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3310
    "
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3311
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3312
    "Created: / 14-09-2006 / 21:23:01 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3313
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3314
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3315
productInstallDirBaseName
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3316
    "Returns a default installDir which will appear in <app>.nsi.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3317
     This is usually not the one you want to keep"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3318
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3319
    ^ self module
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3320
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3321
    "Created: / 21-12-2011 / 16:31:38 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3322
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3323
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3324
productLicense
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3325
    "Returns the license (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3326
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3327
    ^ 'Commercial'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3328
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3329
    "Created: / 21-12-2010 / 09:31:25 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3330
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3331
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3332
productMaintainer
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3333
    "Returns the maintainer (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3334
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3335
    ^ self companyName
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3336
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3337
    "Created: / 21-12-2010 / 09:26:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3338
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3339
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3340
productName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3341
    "Returns a product name which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3342
     Under win32, this is placed into the dll's file-info.
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3343
     This method is usually redefined in a concrete application definition"
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3344
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3345
    |m|
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3346
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3347
    m := self module.
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3348
    m = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3349
	^ 'Smalltalk/X'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3350
    ].
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3351
    m = 'exept' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3352
	^ 'eXept AddOns'
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3353
    ].
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3354
    ^ nil.
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  3355
20982
32144b4ff22c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20952
diff changeset
  3356
    "Modified: / 18-11-2016 / 11:44:03 / cg"
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3357
    "Modified: / 03-04-2017 / 19:09:22 / stefan"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3358
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3359
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3360
productNameAsValidFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3361
    "Returns a filename generated from the product name.
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3362
     This will be the name of the deployable package (i.e. <fn>.dmg, <fn>Setup.exe, etc.)"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3363
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3364
    |nm|
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3365
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3366
    nm := self productName.
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3367
    ^ nm copy replaceAny:'/\:;., ' with:$_
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3368
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3369
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3370
     'Smalltalk/X' replaceAny:'/\:;.,' with:nil
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3371
     stx_doc_coding_demoConsoleApp productName
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3372
     stx_doc_coding_demoConsoleApp productNameAsValidFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3373
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3374
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3375
    "Created: / 01-03-2007 / 19:19:21 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3376
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3377
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3378
productPublisher
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3379
    "Returns a product publisher which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3380
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3381
    ( #('exept' 'stx') includes:self module) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3382
	^ 'eXept Software AG'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3383
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3384
11789
8d56dc5fa8a8 Default productPublisher is companyName
Stefan Vogel <sv@exept.de>
parents: 11777
diff changeset
  3385
    ^ self companyName
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3386
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3387
    "Created: / 14-09-2006 / 21:12:54 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3388
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3389
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3390
productType
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3391
    "Returns the product type for autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3392
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3393
    ^ 'Application'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3394
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3395
    "Created: / 21-12-2010 / 09:28:48 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3396
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3397
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3398
productVersion
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3399
    "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
  3400
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3401
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3402
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3403
    ^ '%1.%2.%3.%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3404
	bindWith:self majorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3405
	with:self minorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3406
	with:self revisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3407
	with:self releaseNr.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3408
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3409
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3410
     self productVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3411
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3412
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3413
    "Modified: / 30-08-2006 / 18:52:47 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3414
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3415
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3416
productVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3417
    "Returns a product version which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3418
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3419
    "<major>.<minor>.<revision>.<release> (such as '0,1,1,1') "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3420
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3421
    ^ '%1,%2,%3,%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3422
	bindWith:self majorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3423
	with:self minorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3424
	with:self revisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3425
	with:self releaseNr.
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3426
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3427
    "
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3428
     self productVersionCommaSeparated
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3429
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3430
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3431
    "Created: / 17-08-2006 / 20:13:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3432
    "Modified: / 30-08-2006 / 18:52:42 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3433
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3434
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3435
productWebSite
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3436
    "Returns a product webSite which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3437
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3438
    ( #('exept' 'stx') includes:self module) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3439
	^ 'http://www.exept.de'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3440
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3441
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3442
    "/ should be redefined by concrete ApplicationDefinition
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3443
    ^ 'http://www.yoursite.com'
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3444
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3445
    "Created: / 14-09-2006 / 21:15:05 / cg"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3446
    "Modified: / 01-03-2007 / 18:11:27 / cg"
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3447
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3448
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3449
releaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3450
    "Returns a releaseNr which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3451
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3452
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3453
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3454
     But that's probably not good for an end-user-app."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3455
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3456
    ^ Smalltalk releaseNr
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3457
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3458
    "Created: / 17-08-2006 / 20:20:51 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3459
    "Modified: / 30-08-2006 / 18:52:22 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3460
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3461
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3462
revisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3463
    "Returns a revisionNr which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3464
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3465
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3466
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3467
     But that's probably not good for an end-user-app."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3468
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3469
    ^ Smalltalk revisionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3470
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3471
    "Created: / 17-08-2006 / 20:20:40 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3472
    "Modified: / 30-08-2006 / 18:52:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3473
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3474
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3475
supportedLanguages
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3476
    "Returns a list of languages that (should be / are) supported by this application or library.
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3477
     Currently this is only used by lint, to verify that the corresponding languages are
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3478
     present in the resource files."
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3479
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3480
    self module = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3481
	^ #(en de)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3482
    ].
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3483
    ^ #(en)
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3484
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3485
    "
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3486
     stx_goodies_rdoit supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3487
     cg_tools supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3488
    "
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3489
!
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3490
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3491
versionNumber
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3492
    "Returns a version string which will appear in bc.def / vc.def "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3493
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3494
    ^''
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3495
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3496
    "Created: / 08-08-2006 / 11:35:52 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3497
    "Modified: / 17-08-2006 / 19:46:29 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3498
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3499
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3500
!ProjectDefinition class methodsFor:'doc generation'!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3501
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3502
autoDocClassNamePatterns
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3503
    "lists patterns for class names for which autodoc html-documentation files
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3504
     are to be built.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3505
     Return #( '*' ) to get doc files for all classes"
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3506
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3507
    ^ #(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3508
	'*'
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3509
    )
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3510
!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3511
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3512
generate_autoDocFiles
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3513
    "generate html documentation for all classes matching the autoDocNamePatterns.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3514
     Use this, if you don't want to deliver source code, but still need some documentation
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3515
     to be deployed."
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3516
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3517
    self classes do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3518
	(self autoDocClassNamePatterns contains:[:pattern | pattern match:eachClass name]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3519
	    self generateClassDocumentationFor:eachClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3520
	]
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3521
    ].
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3522
! !
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3523
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  3524
!ProjectDefinition class methodsFor:'file generation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3525
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3526
apspecFilename
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3527
    "/ for linux
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3528
    ^ 'autopackage/default.apspec'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3529
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3530
    "Created: / 21-12-2010 / 09:43:13 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3531
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3532
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3533
basicFileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3534
    "answer a dictionary (filename -> generator method) with all the build-support files,
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  3535
     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
  3536
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3537
    | dict cls |
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3538
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3539
    dict := OrderedDictionary withKeysAndValues:#(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3540
	  'Make.spec'         #'generate_make_dot_spec'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3541
	  'Make.proto'        #'generate_make_dot_proto'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3542
	  "/ cg: changed to generate Makefile.init instead of Makefile,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3543
	  "/     because macosx files are not case sensitive.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3544
	  "/ You will have to execute make -f Makefile.init initially
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3545
	  "/ 'Makefile'          #'generate_makefile'          "/ for unix
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3546
	  'Makefile.init'     #'generate_makefile'          "/ for unix
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3547
	  'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3548
	  'abbrev.stc'        #'generate_abbrev_dot_stc'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3549
	  'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3550
	  'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3551
	  "/ 'lccmake.bat'       #'generate_lccmake_dot_mak'   "/ for lcc - not supported at the moment
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3552
	  "/ 'tccmake.bat'       #'generate_tccmake_dot_mak'     "/ for tcc - cannot link at the moment
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3553
	  '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
  3554
    ).
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3555
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3556
    dict
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3557
	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
  3558
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3559
    "Add additional custom files as specified in file:overwrite: annotations"
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3560
    cls := self.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3561
    [ cls ~~ Object ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3562
	cls class selectorsAndMethodsDo:[:selector :method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3563
	    | annotation |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3564
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3565
	    annotation := method annotationAt: #file:overwrite:.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3566
	    annotation notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3567
		dict at: (annotation argumentAt: 1) put: selector
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3568
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3569
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3570
	cls := cls superclass.
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3571
    ].
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3572
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3573
    ^ dict.
13154
bac0fcd8a888 make sure that the makefiles are generated before the libInit file
Claus Gittinger <cg@exept.de>
parents: 13148
diff changeset
  3574
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3575
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3576
     stx_libbasic basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3577
     stx_libjava basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3578
    "
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3579
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3580
    "Modified: / 19-01-2015 / 16:33:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3581
    "Modified (comment): / 04-12-2017 / 17:40:03 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3582
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3583
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3584
fileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3585
    "answer the build-support 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
  3586
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3587
    ^ self basicFileNamesToGenerate removeAllKeys:self protectedFileNames ifAbsent:[]
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3588
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3589
    "
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3590
      stx_libbasic fileNamesToGenerate
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3591
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3592
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3593
    "Modified (comment): / 04-12-2017 / 17:40:23 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3594
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3595
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3596
forEachFileNameAndGeneratedContentsDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3597
    "for build-support file generation, checkin etc., use this common method which
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3598
     enumerates all build-support fileNames with their generated contents to be built."
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3599
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3600
    |pairs|
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3601
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3602
    pairs := OrderedCollection new.
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3603
    self fileNamesToGenerate keysDo:[:fileName |
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3604
        |fileContents|
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3605
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3606
        fileContents := self generateFile:fileName confirmMissingClasses:false.
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3607
        fileContents notNil ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3608
            pairs add:(Array with:fileName with:fileContents)
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3609
        ].
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3610
    ].
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3611
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3612
    pairs pairsDo:aTwoArgBlock
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3613
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3614
    "Created: / 16-08-2006 / 18:37:52 / User"
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3615
    "Modified: / 19-01-2015 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3616
    "Modified (comment): / 04-12-2017 / 17:40:49 / cg"
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3617
!
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3618
25154
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3619
forEachFileNameForWhich:filter withGeneratedContentsDo:aTwoArgBlock
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3620
    "for build-support file generation, checkin etc., use this common method which
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3621
     enumerates all build-support fileNames with their generated contents to be built."
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3622
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3623
    |pairs|
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3624
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3625
    pairs := OrderedCollection new.
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3626
    self fileNamesToGenerate keysDo:[:fileName |
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3627
        |fileContents|
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3628
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3629
        (filter value:fileName) ifTrue:[
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3630
            fileContents := self generateFile:fileName confirmMissingClasses:false.
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3631
            fileContents notNil ifTrue:[
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3632
                pairs add:(Array with:fileName with:fileContents)
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3633
            ].
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3634
        ].
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3635
    ].
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3636
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3637
    pairs pairsDo:aTwoArgBlock
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3638
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3639
    "Created: / 16-08-2006 / 18:37:52 / User"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3640
    "Modified: / 19-01-2015 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3641
    "Modified (comment): / 04-12-2017 / 17:40:49 / cg"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3642
!
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3643
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3644
forEachFileNameForWhich:filter wothGeneratedContentsDo:aTwoArgBlock
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3645
    "for build-support file generation, checkin etc., use this common method which
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3646
     enumerates all build-support fileNames with their generated contents to be built."
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3647
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3648
    self forEachFileNameForWhich:[:fn | true] withGeneratedContentsDo:aTwoArgBlock
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3649
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3650
    "Created: / 16-08-2006 / 18:37:52 / User"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3651
    "Modified: / 19-01-2015 / 16:58:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3652
    "Modified (comment): / 04-12-2017 / 17:40:49 / cg"
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3653
!
6760cec2fd9e #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 25151
diff changeset
  3654
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3655
generateFile:filename
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3656
    ^ self generateFile:filename confirmMissingClasses:true
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3657
!
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3658
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3659
generateFile:filename confirmMissingClasses:confirmBoolean
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3660
    |action missingNames|
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3661
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3662
    confirmBoolean ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3663
        (#('bc.mak' 'Make.proto' 'loadAll') includes:filename) ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3664
            "if there are missing classes in image, the dependencies cannot be computed.
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3665
             Warn the user"
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3666
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3667
            missingNames := 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3668
                    self allClassNames "compiled_classNames"
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3669
                        select:[:aName |
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3670
                            |cls|
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3671
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3672
                            cls := Smalltalk at:aName asSymbol.
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3673
                            cls isNil
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3674
                        ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3675
            missingNames notEmpty ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3676
                (self confirm:(self classResources 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3677
                                    stringWithCRs:'While generating %1:\Some classes from the list of compiled classes are missing in the image:\\%2\\If you continue, you have to fix dependencies for these classes in %1 manually!!\\Continue anyway?'
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3678
                                    with:filename 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3679
                                    with:(missingNames asStringWith:', ')))
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3680
                ifFalse:[^ nil].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3681
            ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3682
        ].
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3683
    ].
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3684
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3685
    action := self basicFileNamesToGenerate at:filename ifAbsent:[].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3686
    action notNil ifTrue:[
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3687
        ^ self perform:action
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3688
    ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3689
    (filename = 'app.rc' 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3690
      or:[filename = 'lib.rc' 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3691
      or:[filename = self rcFilename]]
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3692
    ) ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3693
        ^ self generate_packageName_dot_rc
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  3694
    ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3695
    (filename = 'loadAll') ifTrue:[
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3696
        ^ self generate_loadAll
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3697
    ].
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3698
    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
  3699
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  3700
    "Modified: / 24-02-2017 / 11:53:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3701
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3702
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3703
generateFile:filename in: directory
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3704
    |dir|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3705
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3706
    dir := directory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3707
    dir exists ifFalse:[self error:'Directory does not exist'].
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3708
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3709
    (dir / (filename asFilename baseName)) contents:(self generateFile: filename).
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3710
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3711
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3712
	stx_projects_smalltalk generateFile:'package.deps.rake' in: '/tmp'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3713
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3714
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3715
    "Created: / 26-02-2011 / 10:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3716
    "Modified: / 09-06-2011 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3717
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3718
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3719
generateRemoveShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3720
    "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
  3721
     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
  3722
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3723
    |firstLine|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3724
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3725
    firstLine := true.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3726
    self searchForClasses do:[:eachClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3727
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3728
	    firstLine ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3729
		aStream nextPutAll:'cvs rm -f '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3730
		firstLine := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3731
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3732
	    eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3733
		aStream nextPutAll:eachClass classBaseFilename; space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3734
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3735
	].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3736
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3737
    firstLine ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3738
	aStream cr.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3739
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3740
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3741
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3742
       stx_goodies_webServer_htmlTree generateRemoveShellScriptOn:Transcript
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3743
    "
16802
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3744
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3745
    "Modified: / 30-07-2014 / 20:44:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3746
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3747
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3748
generateRenameShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3749
    "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
  3750
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3751
    self searchForClasses do:[:eachClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3752
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3753
	    eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3754
		aStream nextPutAll:'cp ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3755
		       nextPutAll:eachClass classBaseFilename; nextPutAll:',v ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3756
		       nextPutAll:eachClass generateClassFilename; nextPutAll:'.st,v'; cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3757
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3758
	]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3759
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3760
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3761
    "
11981
e479249ba36e Fix #generateRenameShellScriptOn:
Stefan Vogel <sv@exept.de>
parents: 11980
diff changeset
  3762
       stx_libdb generateRemoveShellScriptOn:Transcript
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3763
    "
16802
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3764
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3765
    "Modified: / 30-07-2014 / 20:44:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3766
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3767
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3768
generate_abbrev_dot_stc
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3769
   "/ 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
  3770
   self checkIfClassesArePresent.
10104
96bce48c03b5 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10103
diff changeset
  3771
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3772
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3773
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3774
	    |addEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3775
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3776
	    addEntry :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3777
		[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3778
		    |cls fn wasLoaded failedToLoad numClassInstvars|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3779
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3780
		    s nextPutAll:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3781
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3782
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3783
		    cls := Smalltalk classNamed:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3784
		    cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3785
			fn := self filenameForClass:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3786
			s nextPutAll:fn.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3787
			s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3788
			s nextPutAll:' '; nextPutAll:'unknownCategory' storeString; nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3789
			s nextPutAll:' '; nextPutAll:'0'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3790
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3791
			wasLoaded := cls isLoaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3792
			wasLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3793
			    failedToLoad := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3794
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3795
			    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3796
				failedToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3797
			    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3798
				ParserFlags
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3799
				    withSTCCompilation:#never
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3800
				    do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3801
					cls autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3802
				    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3803
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3804
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3805
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3806
			fn := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3807
			(fn includes:Character space) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3808
			    s nextPutAll:fn storeString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3809
			] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3810
			    s nextPutAll:fn.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3811
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3812
			s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3813
			s nextPutAll: (cls category asString storeString).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3814
			failedToLoad ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3815
			    s nextPutAll:' 0'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3816
			] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3817
			    numClassInstvars := cls theMetaclass instSize - Class instSize.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3818
			    s nextPutAll:' '; nextPutAll:numClassInstvars printString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3819
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3820
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3821
			wasLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3822
			    UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3823
				cls unload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3824
			    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3825
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3826
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3827
		    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3828
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3829
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3830
	    s nextPutLine:'# automagically generated by the project definition'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3831
	    s nextPutLine:'# this file is needed for stc to be able to compile modules independently.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3832
	    s nextPutLine:'# it provides information about a classes filename, category and especially namespace.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3833
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3834
	    self allClassNames do:addEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3835
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3836
		(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3837
		    addEntry value:nm
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3838
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3839
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3840
	]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3841
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3842
    "
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3843
	stx_libbasic generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3844
	DapasXProject generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3845
	DapasX_Datenbasis generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3846
	bosch_dapasx_interactiver_editor generate_abbrev_dot_stc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3847
    "
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3848
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3849
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  3850
    "Modified: / 28-01-2014 / 21:43:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3851
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3852
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3853
generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3854
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3855
    ^self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3856
	replaceMappings: self autopackage_default_dot_apspec_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3857
	in: self autopackage_default_dot_apspec
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3858
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3859
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3860
     stx_projects_smalltalk generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3861
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3862
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3863
    "Created: / 21-12-2010 / 09:40:04 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3864
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3865
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3866
generate_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3867
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3868
	replaceMappings: self bc_dot_mak_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3869
	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
  3870
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3871
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3872
     DapasXProject generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3873
     DapasX_Datenbasis generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3874
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3875
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3876
    "Modified: / 09-08-2006 / 11:46:14 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3877
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3878
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3879
generate_bmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3880
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3881
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3882
	    in: self bmake_dot_mak
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3883
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3884
    "Created: / 17-08-2006 / 20:03:43 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3885
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3886
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3887
generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3888
    ^ self replaceMappings:self builder_baseline_dot_rbspec_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3889
	in:self builder_baseline_dot_rbspec
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3890
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3891
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3892
     stx_projects_smalltalk generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3893
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3894
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3895
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3896
    "Created: / 24-02-2011 / 11:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3897
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3898
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3899
generate_lccmake_dot_mak
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3900
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3901
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3902
	    in: self lccmake_dot_mak
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3903
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  3904
    "Created: / 03-09-2012 / 19:49:56 / cg"
11979
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3905
!
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  3906
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3907
generate_loadAll
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3908
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3909
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3910
	    |classNames classesLoaded classNamesUnloaded classesSorted|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3911
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3912
	    classNames := self compiled_classNames_common.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3913
	    classesLoaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3914
			collect:[:nm | Smalltalk classNamed:nm]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3915
			thenSelect:[:cls |  cls notNil and:[cls isLoaded] ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3916
	    classNamesUnloaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3917
			select:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3918
			    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3919
			    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3920
			    cls isNil or:[cls isLoaded not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3921
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3922
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3923
	    classesSorted := Class classesSortedByLoadOrder:classesLoaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3924
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3925
	    s nextPutAll:'"/
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3926
"/ $' , 'Header' , '$
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3927
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3928
"/ loadAll-file to fileIn code for: ' , self package , '
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3929
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3930
"/ Automatically generated from the ProjectDefinition.
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3931
"/ DO NOT MODIFY THIS FILE;
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3932
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3933
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3934
"/ Prerequisites:
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3935
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3936
"/ Smalltalk loadPackage:''module:directory''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3937
"/ Smalltalk loadPackage:''....''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3938
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3939
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3940
"{ package:''' , self package, ''' }"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3941
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3942
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3943
|files|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3944
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3945
''loading package ' , self package ,'...'' infoPrint.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3946
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3947
files := #(
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3948
'.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3949
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3950
	    classesSorted do:[:eachClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3951
		s nextPutLine:'  ''' , (self filenameForClass:eachClass), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3952
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3953
	    classNamesUnloaded do:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3954
		s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3955
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3956
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3957
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3958
		(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3959
		    s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3960
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3961
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3962
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3963
	    self hasExtensionMethods ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3964
		s nextPutLine:'  ''extensions.st'''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3965
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3966
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3967
	    s nextPutAll:'
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3968
).
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3969
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3970
"/ see if there is a classLibrary
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3971
(Smalltalk fileInClassLibrary:''' , (self libraryName) , ''') ifTrue:[
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3972
    |handle loaded|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3973
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3974
    handle := ObjectFileLoader loadedObjectHandles
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3975
		    detect:[:h | h package = ''' , self package , '''] ifNone:nil.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3976
    handle ifNotNil:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3977
	loaded := Set new:(handle classes size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3978
	handle classes do:[:c| c isMeta ifFalse:[loaded add:c classBaseFilename]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3979
	files := files \ loaded.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3980
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3981
].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3982
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3983
"/ 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
  3984
files notEmpty ifTrue:[
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3985
  '''' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3986
  files do:[:f |
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3987
    ''.'' infoPrint.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3988
    f asFilename exists ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3989
	Smalltalk fileIn:f.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3990
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3991
	Smalltalk fileIn:(''source/'' , f)
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3992
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3993
  ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3994
  '' '' infoPrintCR.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3995
].
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  3996
''done (' , self package ,').'' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3997
'.
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3998
	].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3999
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4000
    "Created: / 14-09-2006 / 14:21:31 / cg"
10080
e7a9912eef18 use classBaseFilename
Claus Gittinger <cg@exept.de>
parents: 10076
diff changeset
  4001
    "Modified: / 12-10-2006 / 15:55:00 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4002
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4003
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4004
generate_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4005
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4006
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4007
	replaceMappings: self make_dot_proto_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4008
	in: self make_dot_proto) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4009
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4010
    "
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4011
     stx_libbasic2 generate_make_dot_proto
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4012
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4013
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4014
    "Modified: / 09-08-2006 / 11:31:01 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4015
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4016
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4017
generate_make_dot_spec
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4018
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4019
	replaceMappings: self make_dot_spec_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4020
	in: self make_dot_spec) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4021
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4022
    "
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4023
     DapasXProject generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4024
     DapasX_Datenbasis generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4025
     bosch_dapasx_kernel_Definition generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4026
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4027
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4028
    "Modified: / 09-08-2006 / 11:31:09 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4029
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4030
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4031
generate_makefile
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4032
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4033
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4034
	replaceMappings: self makefile_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4035
	in: self makefile) asStringCollection withTabs asString
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4036
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4037
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4038
     stx_libbasic2 generate_makefile
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4039
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4040
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4041
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4042
generate_mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4043
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4044
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4045
	    in: self mingwmake_dot_mak
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4046
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4047
    "Created: / 05-09-2012 / 19:44:07 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4048
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4049
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4050
generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4051
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4052
    ^self replaceMappings: self packageName_dot_rc_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4053
	    in: self packageName_dot_rc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4054
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4055
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4056
  bosch_dapasx_datenbasis generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4057
  bosch_dapasx_hw_schnittstellen  generate_packageName_dot_rc
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4058
  stx_libbasic3 generate_packageName_dot_rc
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  4059
  stx_libwidg3 generate_packageName_dot_rc
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4060
  stx_libwidg3 productVersion
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4061
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4062
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4063
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4064
    "Modified: / 09-08-2006 / 11:31:09 / fm"
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  4065
    "Modified: / 21-08-2006 / 19:33:21 / cg"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4066
!
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4067
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4068
generate_package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4069
    ^ (self replaceMappings:self package_dot_deps_dot_rake_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4070
	in:self package_dot_deps_dot_rake) asStringCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4071
	withTabs asString
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4072
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4073
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4074
     stx_libjava generate_dependencies_dot_rake"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4075
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4076
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4077
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4078
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4079
generate_tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4080
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4081
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4082
	    in: self tccmake_dot_mak
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4083
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4084
    "Created: / 03-09-2012 / 19:50:25 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4085
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4086
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4087
generate_vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4088
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4089
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4090
	    in: self vcmake_dot_mak
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4091
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4092
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4093
nsiFilename
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4094
    "only applications define it"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4095
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4096
    ^ nil.
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4097
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4098
    "Created: / 18-06-2018 / 14:07:43 / Claus Gittinger"
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4099
!
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4100
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4101
protectedFileNames
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  4102
    "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
  4103
     - 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
  4104
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4105
    ^ #()
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4106
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4107
    "Created: / 14-09-2006 / 14:38:40 / cg"
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  4108
    "Modified: / 21-12-2010 / 11:36:46 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4109
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4110
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4111
rcFilename
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4112
    ^ self fullPackageName,'WINrc.rc'.
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4113
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4114
    "Created: / 07-09-2006 / 17:07:00 / cg"
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4115
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4116
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4117
resourceFilename
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4118
    ^ (self rcFilename asFilename withSuffix:'$(RES)') name
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4119
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4120
    "Created: / 07-09-2006 / 17:12:53 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4121
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4122
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4123
!ProjectDefinition class methodsFor:'file mappings'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4124
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4125
autopackage_default_dot_apspec_mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4126
    |mappings|
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4127
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4128
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4129
    ^ mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4130
	at: 'TOP' put: (self pathToTopWithSeparator:'/');                 "/ unix here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4131
"/        at: 'MODULE_PATH' put: ( self moduleDirectory );        "/ unix here
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4132
	at: 'DESCRIPTION' put: (self description);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4133
	at: 'PRODUCT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4134
	at: 'PRODUCT_VERSION' put: (self productVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4135
	at: 'PRODUCT_DATE' put: (self productDate);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4136
	at: 'PRODUCT_PUBLISHER' put: (self productPublisher);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4137
	at: 'PRODUCT_WEBSITE' put: (self productWebSite);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4138
	at: 'PRODUCT_INSTALLDIR' put: (self productInstallDir);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4139
	at: 'PRODUCT_TYPE' put: (self productType);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4140
	at: 'PRODUCT_LICENSE' put: (self productLicense);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4141
	at: 'PRODUCT_DESCRIPTION' put: (self productDescription);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4142
	at: 'PRODUCT_CPU_VERSIONS' put: 'x86';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4143
	at: 'PRODUCT_ROOT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4144
	at: 'MAINTAINER' put: (self productMaintainer);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4145
	at: 'PACKAGER' put: (self productPublisher);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4146
	at: 'ADDITIONAL_SOURCE_DIRS' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4147
	at: 'ADDITIONAL_COPYFILES' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4148
	at: 'ADDITIONAL_INSTALL' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4149
	yourself.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4150
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4151
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4152
    "Created: / 21-12-2010 / 09:00:49 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4153
    "Modified: / 05-09-2012 / 10:09:06 / cg"
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4154
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4155
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4156
bc_dot_mak_mappings
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4157
    |d|
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4158
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4159
    d := self common_mappings.
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  4160
    ^ d
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4161
	at: 'TOP' put: ( self pathToTopWithSeparator:'\' );                "/ win32 here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4162
	at: 'MODULE_PATH' put: ( self moduleDirectory_win32 );  "/ win32 here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4163
	at: 'PRIMARY_TARGET' put: (self primaryTarget_bc_dot_mak);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4164
	at: 'ADDITIONAL_BASE_ADDRESS_DEFINITION' put: (self additionalBaseAddressDefinition_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4165
	at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4166
	at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_bc_dot_mak);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4167
	at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'bc.mak');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4168
	at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4169
	at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4170
	at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4171
	at: 'ADDITIONAL_POSTNSISRULES' put: (self additional_post_nsis_rules);  "/ win32 bc here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4172
	at: 'ADDITIONAL_POSTNSISRULES64' put: (self additional_post_nsis_rules64);  "/ win64 mingw here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4173
	at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_win32 ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4174
	at: 'LOCAL_DEFINES' put: self localDefines_win32 ? '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4175
	at: 'GLOBAL_DEFINES' put: self globalDefines_win32 ? '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4176
	yourself.
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4177
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4178
    "Created: / 18-08-2006 / 11:43:39 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4179
    "Modified: / 05-09-2012 / 10:02:51 / cg"
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  4180
    "Modified: / 03-02-2015 / 07:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  4181
    "Modified: / 02-06-2015 / 17:44:11 / gg"
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4182
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4183
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4184
bmake_dot_mak_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4185
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4186
	at:'TOP' put: ( self pathToTopWithSeparator:'\' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4187
	at:'SUBPROJECT_BMAKE_CALLS' put:(self subProjectBmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4188
	at:'SUBPROJECT_VCMAKE_CALLS' put:(self subProjectVCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4189
	at:'SUBPROJECT_LCCMAKE_CALLS' put:(self subProjectLCCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4190
	at:'SUBPROJECT_TCCMAKE_CALLS' put:(self subProjectTCCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4191
	at:'SUBPROJECT_MINGWMAKE_CALLS' put:(self subProjectMingwmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4192
	yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4193
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4194
    "Created: / 17-08-2006 / 21:41:56 / cg"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4195
    "Modified: / 05-09-2012 / 19:45:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4196
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4197
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4198
builder_baseline_dot_rbspec_mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4199
    |mappings|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4200
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4201
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4202
    ^ mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4203
	at:'APPLICATION' put:(self perform:#applicationName ifNotUnderstood:[self packageName]);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4204
	at:'APPLICATION_PACKAGE' put:self package printString;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4205
	at:'PREAMBLE' put:self builder_baseline_dot_rbspec_preamble;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4206
	at:'POSTAMBLE' put:self builder_baseline_dot_rbspec_postamble;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4207
	at:'PACKAGES' put:self builder_baseline_dot_rbspec_packages;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4208
	yourself.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4209
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4210
    "Modified: / 21-12-2010 / 11:00:22 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4211
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4212
    "Modified: / 09-06-2011 / 14:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4213
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4214
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4215
builder_baseline_dot_rbspec_packages
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4216
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4217
	self allPreRequisitesSorted do: [:packageId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4218
	    s nextPutLine:('  package "%1"' bindWith:packageId).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4219
	]
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4220
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4221
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4222
    "Created: / 24-02-2011 / 11:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4223
    "Modified: / 06-06-2016 / 14:32:44 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4224
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4225
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4226
classLine_mappings:aClassName
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4227
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4228
	at:'CLASS' put:(self st2c:aClassName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4229
	yourself
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4230
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4231
    "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
  4232
    "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
  4233
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4234
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4235
common_mappings
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4236
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4237
	at: 'TAB' put: ( Character tab asString );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4238
	at: 'TOP' put: ( 'depends-on-file(unix vs. win32)' );       "/ must be in specific mapping
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4239
	at: 'LIBRARY_NAME' put: ( self libraryName );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4240
	at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4241
	at: 'MODULE' put: ( self module );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4242
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );           "/ always unix format
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4243
	at: 'MODULE_PATH' put: ( 'depends-on-file(unix vs. win32)' );   "/ must be in specific mapping
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4244
	yourself
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4245
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4246
    "Created: / 04-09-2012 / 13:04:26 / cg"
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4247
!
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4248
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4249
make_dot_proto_mappings
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4250
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4251
	at: 'MODULE' put: ( self module );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4252
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4253
	at: 'MODULE_PATH' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4254
	at: 'TOP' put: ( self pathToTopWithSeparator:'/' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4255
	at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4256
	at: 'LIBRARY_NAME' put: ( self libraryName );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4257
	at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4258
	at: 'LOCAL_DEFINES' put: self localDefines_unix;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4259
	at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4260
	at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4261
	at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4262
	at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4263
	at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4264
	at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4265
	at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'Make.proto');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4266
	at: 'ADDITIONAL_RULES_SVN' put: (self additionalRulesSvn_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4267
	at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4268
	at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4269
	at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4270
	at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4271
	at: 'ADDITIONAL_SHARED_LINK_LIBRARIES' put: (self additionalSharedLinkLibraries_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4272
	at: 'DEPENDENCIES' put: (self generateDependencies_unix);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4273
	yourself
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4274
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4275
    "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
  4276
    "Modified: / 09-08-2006 / 16:44:48 / fm"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  4277
    "Modified: / 24-06-2009 / 21:50:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4278
    "Modified: / 05-09-2012 / 10:10:40 / cg"
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  4279
    "Modified: / 03-02-2015 / 07:17:05 / 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
  4280
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4281
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4282
make_dot_spec_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4283
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4284
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4285
	at: 'STCWARNINGOPTIONS' put: (self stcWarningOptions);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4286
	at: 'STCOPTIMIZATIONOPTIONS' put: (self stcOptimizationOptions);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4287
	at: 'CLASSES' put: [self generateClasses_make_dot_spec];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4288
	at: 'OBJECTS' put: [self generateObjects_make_dot_spec];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4289
	yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4290
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4291
    "Created: / 18-08-2006 / 11:44:23 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4292
    "Modified: / 05-09-2012 / 10:11:02 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4293
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4294
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4295
makefile_mappings
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4296
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4297
	yourself
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4298
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4299
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4300
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
  4301
    |d s resourceCount|
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4302
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4303
    d := Dictionary new.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4304
    d
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4305
	at: 'PRODUCT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4306
	at: 'PRODUCT_VERSION' put: (self productVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4307
	at: 'PRODUCT_DATE' put: (self productDate);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4308
	at: 'FILETYPE' put: ( 'VFT_DLL' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4309
	at: 'FILE_VERSION_COMMASEPARATED' put: (self fileVersionCommaSeparated);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4310
	at: 'PRODUCT_VERSION_COMMASEPARATED' put: (self productVersionCommaSeparated);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4311
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4312
	at: 'COMPANY_NAME' put: (self companyName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4313
	at: 'FILE_DESCRIPTION' put: (self fileDescription);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4314
	at: 'FILE_VERSION' put: (self fileVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4315
	at: 'INTERNAL_NAME' put: (self internalName).
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  4316
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4317
    s := self legalCopyright.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4318
    s notNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4319
	d at: 'LEGAL_COPYRIGHT_LINE' put: '      VALUE "LegalCopyright", "',s,'\0"'
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4320
    ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4321
    s := String streamContents:[:stream|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4322
	    |suff|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4323
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4324
	    s := self applicationIconFileNameWindows.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4325
	    s notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4326
		s asFilename suffix isEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4327
		    suff := '.ico'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4328
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4329
		    suff := ''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4330
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4331
		'IDR_MAINFRAME           ICON    DISCARDABLE     "%1%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4332
			expandPlaceholdersWith:(Array with:s with:suff) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4333
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4334
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4335
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4336
	    s := self splashFileName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4337
	    s notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4338
		s asFilename suffix isEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4339
		    suff := '.bmp'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4340
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4341
		    suff := ''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4342
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4343
		'IDR_SPLASH           BITMAP    DISCARDABLE     "%1%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4344
			expandPlaceholdersWith:(Array with:s with:suff) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4345
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4346
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4347
	    resourceCount := 2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4348
	    self applicationAdditionalIconFileNames do:[:eachFilename|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4349
		'IDR_MAINFRAME+%1           ICON    DISCARDABLE     "%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4350
			expandPlaceholdersWith:(Array with:resourceCount with:eachFilename) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4351
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4352
		resourceCount := resourceCount+1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4353
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4354
	].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4355
    d at: #'ICONDEFINITION_LINE' put:s.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4356
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4357
    ^ d
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4358
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4359
    "Created: / 09-08-2006 / 11:21:21 / fm"
13309
27f463f6c0cb changed: #packageName_dot_rc_mappings
Claus Gittinger <cg@exept.de>
parents: 13285
diff changeset
  4360
    "Modified: / 22-02-2011 / 11:30:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4361
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4362
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4363
package_dot_deps_dot_rake_mappings
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4364
    |dependencies|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4365
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4366
    dependencies := String
25285
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4367
            streamContents:[:s |
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4368
                self allPreRequisites do:[:package |
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4369
                    (self preRequisitesFor:package) do:[:prereq |
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4370
                        s nextPutLine:'task "%1" => "%2"' with:package with:prereq
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4371
                    ].
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4372
                    s cr
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4373
                ].
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4374
                self effectivePreRequisites do:[:prereq |
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4375
                    s nextPutLine:'task "%1" => "%2"' with:self package with:prereq
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4376
                ].
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4377
            ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4378
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4379
    ^ (Dictionary new)
25285
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4380
        at:'DEPENDENCIES' put:dependencies;
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4381
        yourself
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4382
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4383
    "
4b23119f86e4 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 25227
diff changeset
  4384
        stx_libjava generate_package_dot_deps_dot_rake
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4385
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4386
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4387
    "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4388
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4389
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4390
replaceMappings: mappings in: fileTemplate
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4391
    "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
  4392
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4393
    ^ fileTemplate bindWithArguments:mappings.
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4394
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4395
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4396
     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
  4397
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4398
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4399
    "Created: / 08-08-2006 / 11:44:27 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4400
    "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
  4401
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4402
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4403
st2c:aString
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4404
	^ (aString asString
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4405
	    copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8)))
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4406
		replaceAny:':' with:$_
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4407
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4408
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4409
!ProjectDefinition class methodsFor:'file mappings support'!
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4410
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4411
classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4412
    "answer a dictionary
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4413
	category -> classNames topological sorted"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4414
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4415
    |classes classNames mapping alreadyWarned|
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4416
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4417
    mapping := Dictionary new.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4418
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  4419
    classes := Class classesSortedByLoadOrder:self compiled_classes_common.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4420
    classNames := classes collect:[:eachClass| eachClass name].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4421
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4422
	(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4423
	    classNames add:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4424
	].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4425
    ].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4426
    mapping at:'COMMON' put:classNames.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4427
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4428
    alreadyWarned := false.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4429
    OperatingSystem knownPlatformNames do:[:platformID |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4430
	|platformClasses platformClassNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4431
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4432
	platformClasses := self compiled_classesForPlatform:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4433
	platformClasses notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4434
	    (platformClasses contains:[:each| each isNil or:[each isLoaded not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4435
		"win32 classes are not present in linux..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4436
		Transcript show:'Missing classes for platform: '. Transcript showCR:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4437
		platformClassNames := self compiled_classNamesForPlatform:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4438
		platformClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4439
		    select:[:nm | |cls| cls := Smalltalk classNamed:nm. cls isNil or:[cls isLoaded not]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4440
		    thenDo:[:nm | Transcript tab; showCR:nm].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4441
		UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4442
		    alreadyWarned ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4443
			(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))
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4444
			ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4445
			    AbortOperationRequest raise.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4446
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4447
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4448
		    alreadyWarned := true
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4449
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4450
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4451
		classes := Class classesSortedByLoadOrder:platformClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4452
		platformClassNames := platformClasses collect:[:eachClass| eachClass name].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4453
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4454
	    mapping at:platformID asUppercase put:platformClassNames.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4455
	].
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4456
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4457
    ^ mapping
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4458
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4459
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4460
     stx_libbasic classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4461
     stx_libbasic3 classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4462
     stx_libview classNamesByCategory
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4463
     stx_libjava classNamesByCategory
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4464
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4465
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4466
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4467
    "Modified: / 28-01-2014 / 21:40:23 / cg"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4468
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4469
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4470
commonSymbolsFlag
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4471
    "only for libraries"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4472
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4473
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4474
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4475
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4476
filenameForClass:classNameOrClass
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4477
    "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
  4478
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4479
"/    "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
  4480
"/     See also: #generateRemoveShellScriptOn: and #generateRenamShellScriptOn:"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4481
"/    classNameOrClass isBehavior ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4482
"/        ^ classNameOrClass generateClassFilename.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4483
"/    ] ifFalse:[
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4484
"/        |cls|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4485
"/
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4486
"/        cls := Smalltalk classNamed:classNameOrClass.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4487
"/        cls notNil ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4488
"/            ^ cls generateClassFilename.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4489
"/        ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4490
"/    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4491
"/    "end special code"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4492
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4493
    ^ Smalltalk fileNameForClass:classNameOrClass.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4494
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4495
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4496
	self filenameForClass:HTML::Encoder
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4497
	Smalltalk fileNameForClass:HTML::Encoder
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4498
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4499
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4500
    "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
  4501
    "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
  4502
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4503
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4504
generateClassLines:classLineTemplate
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4505
    "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
  4506
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4507
    ^ 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
  4508
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4509
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4510
generateClassLines:classLineTemplate forClasses:classNames
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4511
    "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
  4512
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4513
    ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4514
!
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4515
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4516
generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4517
    "for the init-file: generate class-init-lines for a collection of classes"
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4518
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4519
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4520
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4521
	    |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4522
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4523
	    putLineForClassName :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4524
		[:className |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4525
		    |newClassLine mappings|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4526
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4527
		    mappings := self classLine_mappings:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4528
		    newClassLine := self replaceMappings:mappings in:classLineTemplate.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4529
		    s nextPutLine:newClassLine
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4530
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4531
	    classesLoaded := classNames collect:[:eachClassName | Smalltalk classNamed:eachClassName]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4532
					thenSelect:[:eachClass | eachClass notNil and:[eachClass isLoaded]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4533
	    classNamesUnloaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4534
			select:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4535
			    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4536
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4537
			    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4538
			    cls isNil or:[ cls isLoaded not ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4539
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4540
	    classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4541
	    classNamesSorted do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4542
	    classNamesUnloaded do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4543
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4544
	    includeAdditionalClasses ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4545
		self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4546
		    do:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4547
			(attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4548
			    putLineForClassName value:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4549
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4550
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4551
		#( ('UNIX' unix)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4552
		   ('WIN32' win32)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4553
		   ('OSX' osx)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4554
		   ('VMS' vms)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4555
		   ('BEOS' beos) )
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4556
			pairsDo:[:ifdef :platformName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4557
			    |archClassNames archClassesLoaded|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4558
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4559
			    archClassNames := self compiled_classNamesForPlatform:platformName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4560
			    archClassNames notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4561
				s nextPutLine:'#ifdef ' , ifdef.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4562
				archClassNames do:[:clsName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4563
				    putLineForClassName value:clsName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4564
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4565
				s nextPutLine:'#endif /* ' , ifdef , ' */'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4566
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4567
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4568
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4569
	]
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4570
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4571
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4572
     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
  4573
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4574
     stx_libbasic3 generateClassLines_libInit_dot_cc
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4575
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4576
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4577
    "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
  4578
    "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
  4579
    "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
  4580
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4581
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4582
generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4583
    ^ 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
  4584
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4585
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4586
     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
  4587
     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
  4588
     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
  4589
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4590
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4591
    "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
  4592
    "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
  4593
    "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
  4594
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4595
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4596
generateClasses_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4597
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4598
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4599
    classNamesDict := self classNamesByCategory.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4600
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4601
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4602
	classNamesDict keysAndValuesDo:[:eachCategory :classNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4603
	    s nextPutLine:eachCategory,'_CLASSES= \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4604
	    classNames do:[:eachClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4605
		s tab; nextPutAll:eachClassName; nextPutLine:' \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4606
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4607
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4608
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4609
	s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4610
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4611
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4612
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4613
     stx_libbasic generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4614
     stx_libbasic3 generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4615
     stx_libview generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4616
     stx_libboss generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4617
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4618
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4619
    "Created: / 09-08-2006 / 11:24:39 / fm"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4620
    "Modified: / 20-10-2006 / 16:18:54 / cg"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4621
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4622
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4623
generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4624
    "for the init-file: generate a single class-init-line for the definition class itself"
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4625
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4626
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4627
	generateClassLines:(self classLine_libInit_dot_cc)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4628
	forClasses:(Array with:self name)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4629
	includeAdditionalClasses:false
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4630
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4631
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4632
     stx_libbasic generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4633
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4634
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4635
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4636
generateDependencies:whichArchitecture
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4637
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4638
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4639
	    |classNames classesPresent classesLoaded clsBaseName putDependencyForClassBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4640
	     putDependencyForClassBaseNameBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4641
	     archClassNames archClassesPresent archClassesLoaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4642
	     putSingleClassDependencyEntryBlock putDependencyForExtensionsBlock classSortBlock|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4643
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4644
	    classSortBlock := [ :a :b|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4645
		a package == b package ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4646
		    a name < b name
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4647
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4648
		    a package < b package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4649
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4650
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4651
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4652
	    putSingleClassDependencyEntryBlock := [:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4653
		    |sclsBaseName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4654
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4655
		    s nextPutAll:' $(INCLUDE_TOP)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4656
		    s nextPutAll:(self pathSeparator:whichArchitecture).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4657
		    sclsBaseName := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4658
		    s nextPutAll:(self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4659
				topRelativePathTo:sclsBaseName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4660
				inPackage:cls package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4661
				architecture:whichArchitecture).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4662
		    s nextPutAll:'.$(H)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4663
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4664
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4665
	    putDependencyForClassBaseNameBlock := [:clsBaseName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4666
		    s nextPutAll:('$(OUTDIR)',clsBaseName,'.$(O)').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4667
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4668
		    s nextPutAll:(clsBaseName,'.$(C)').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4669
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4670
		    s nextPutAll:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4671
		    s nextPutAll:'.$(H)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4672
		    s nextPutAll:': '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4673
		    s nextPutAll:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4674
		    s nextPutAll:'.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4675
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4676
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4677
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4678
	    putDependencyForClassBlock := [:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4679
		    |clsBaseName classes|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4680
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4681
		    clsBaseName := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4682
		    putDependencyForClassBaseNameBlock value:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4683
		    cls isLoaded ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4684
			classes := IdentitySet new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4685
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4686
			    sharedPools do:[:poolClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4687
				poolClass isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4688
				    Dialog warn:'At least one pool class is missing.\\Dependencies are incomplete.' withCRs
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4689
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4690
				    classes add:poolClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4691
				]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4692
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4693
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4694
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4695
			    allSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4696
				classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4697
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4698
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4699
			    allPrivateClassesDo:[:eachPrivateClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4700
				eachPrivateClass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4701
				    allSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4702
					|sclsBaseName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4703
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4704
					scls ~~ cls ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4705
					    scls isPrivate ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4706
						(classes includes:scls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4707
						    classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4708
						].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4709
					    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4710
					].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4711
				    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4712
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4713
			"/ Sort them to get stable order to avoid false conflicts
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4714
			classes := classes asSortedCollection:classSortBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4715
			classes do:[:each | putSingleClassDependencyEntryBlock value:each].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4716
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4717
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4718
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4719
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4720
	    putDependencyForExtensionsBlock := [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4721
		    | classes |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4722
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4723
		    s nextPutAll:'$(OUTDIR)extensions.$(O): extensions.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4724
		    classes := Set new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4725
		    self extensionMethodNames pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4726
			    |mthdCls cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4727
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4728
			    ((mthdCls := Smalltalk classNamed:className) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4729
			      and:[ mthdCls isLoaded ])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4730
				    ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4731
					cls := mthdCls theNonMetaclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4732
					(classes includes:cls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4733
					    cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4734
						withAllSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4735
						    (classes includes:scls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4736
							classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4737
						    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4738
						].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4739
					].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4740
				    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4741
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4742
		    "/ Sort them to get stable order to avoid false conflicts
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4743
		    classes := classes asSortedCollection:classSortBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4744
		    classes do:[:each | putSingleClassDependencyEntryBlock value:each].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4745
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4746
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4747
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4748
	    classNames := self compiled_classNames_common.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4749
	    classesPresent := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4750
		collect:[:className | Smalltalk classNamed:className]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4751
		thenSelect:[:cls | cls notNil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4752
	    classesLoaded := classesPresent select:[:cls | cls isLoaded].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4753
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4754
	    (Class classesSortedByLoadOrder:classesLoaded) do:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4755
	    classesPresent reject:[:cls | cls isLoaded] thenDo:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4756
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4757
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4758
		do:[:className :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4759
		    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4760
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4761
		    (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4762
			((cls := Smalltalk classNamed:className) notNil) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4763
			    putDependencyForClassBlock value:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4764
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4765
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4766
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4767
	    archClassNames := self compiled_classNamesForPlatform:whichArchitecture.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4768
	    archClassesPresent := archClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4769
		collect:[:className | Smalltalk classNamed:className]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4770
		thenSelect:[:cls | cls notNil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4771
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4772
	    archClassesLoaded := archClassesPresent select:[:cls | cls isLoaded].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4773
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4774
	    (Class classesSortedByLoadOrder:archClassesLoaded)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4775
		do:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4776
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4777
	    "some classes are not loaded - probably this is the wrong architecture.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4778
	     Sorry, but for these classes, we do not know the superclass chain"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4779
	    archClassesPresent
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4780
		select:[:cls | cls isLoaded not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4781
		thenDo:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4782
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4783
	    "for the following classes, we do not know the superclass chain
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4784
	     and neither the real class file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4785
	    archClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4786
		select:[:eachClassName | (Smalltalk classNamed:eachClassName) isNil]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4787
		thenDo:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4788
		    putDependencyForClassBaseNameBlock value:(self filenameForClass:eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4789
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4790
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4791
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4792
	    self hasExtensionMethods ifTrue:putDependencyForExtensionsBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4793
	]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4794
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4795
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4796
     stx_libbasic3 generateDependencies:#unix
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4797
     stx_libbasic3 generateDependencies:#win32
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4798
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4799
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4800
    "Created: / 14-09-2006 / 12:38:57 / cg"
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  4801
    "Modified: / 27-10-2011 / 16:35:59 / cg"
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  4802
    "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
  4803
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4804
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4805
generateDependencies_unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4806
    ^ self generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4807
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4808
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4809
     stx_libbasic3 generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4810
     stx_libbasic3 generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4811
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4812
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4813
    "Modified: / 14-09-2006 / 13:32:34 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4814
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4815
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4816
generateDependencies_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4817
    ^ self generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4818
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4819
    "Created: / 14-09-2006 / 12:39:18 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4820
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4821
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4822
generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4823
    "for the init-file: generate a single external definition for a single class for the definition class itself"
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4824
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4825
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4826
	generateClassLines:(self classExternalDeclarationLine_libInit_dot_cc)
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4827
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4828
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4829
     stx_libbasic generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4830
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4831
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4832
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4833
generateLocalIncludes_unix
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4834
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4835
	s nextPutAll:(self localIncludes_unix).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4836
	self searchForProjectsWhichProvideHeaderFiles asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4837
	    do:[:includeProject |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4838
		s nextPutAll:' -I$(INCLUDE_TOP)/',(self topRelativePathToPackage:includeProject withSeparator:'/')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4839
	    ]
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4840
    ]
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4841
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4842
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4843
     bosch_dapasx generateLocalIncludes_unix
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4844
     bosch_dapasx_datenbasis generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4845
     stx_libbasic generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4846
     stx_libview generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4847
     stx_libtool2 generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4848
     stx_libui generateLocalIncludes_unix
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  4849
     cg_demos_helloWorld localIncludes_unix
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4850
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4851
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4852
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4853
    "Modified: / 07-12-2006 / 17:47:06 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4854
    "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
  4855
!
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  4856
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4857
generateLocalIncludes_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4858
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4859
	s nextPutAll:(self localIncludes_win32).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4860
	self searchForProjectsWhichProvideHeaderFiles asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4861
	    do:[:includeProject |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4862
		s nextPutAll:' -I$(INCLUDE_TOP)\',(self topRelativePathToPackage:includeProject withSeparator:'\')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4863
	    ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4864
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4865
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4866
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4867
     bosch_dapasx_application generateLocalIncludes_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4868
     bosch_dapasx_datenbasis generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4869
     stx_libbasic generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4870
     stx_libview generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4871
     stx_libtool2 generateLocalIncludes_win32
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4872
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4873
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4874
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  4875
    "Modified: / 07-12-2006 / 17:47:10 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  4876
    "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
  4877
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4878
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4879
generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4880
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4881
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4882
    classNamesDict := self classNamesByCategory.
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  4883
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4884
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4885
	|putLineForClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4886
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4887
	putLineForClassName :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4888
	    [:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4889
		|mappings newObjectLine|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4890
		mappings := self objectLine_make_dot_spec_mappings: eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4891
		newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4892
		s nextPutLine:newObjectLine.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4893
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4894
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4895
	classNamesDict keysAndValuesDo:[:eachCategory :classNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4896
	    s nextPutLine:eachCategory,'_OBJS= \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4897
	    classNames do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4898
	    (eachCategory = 'COMMON' and:[self hasExtensionMethods]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4899
		s nextPutLine:'    $(OUTDIR)extensions.$(O) \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4900
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4901
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4902
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4903
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4904
	s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4905
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4906
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4907
    "
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4908
     stx_libbasic generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4909
     stx_libbasic3 generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4910
     stx_libview generateObjects_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4911
     stx_libboss generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4912
    "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4913
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4914
    "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
  4915
    "Modified: / 20-10-2006 / 16:18:54 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4916
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  4917
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4918
generateRequiredMakePrerequisites_bc_dot_mak
11380
ac50ce4321b5 Fix prerequisite makes (pushd)
Stefan Vogel <sv@exept.de>
parents: 11377
diff changeset
  4919
    |myProjectId|
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4920
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4921
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4922
	myProjectId := self package.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4923
	"Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4924
	 is required!!
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4925
	 Use 'pushd' instead of 'cd', since cd is executed by borland make directly.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4926
	 'popd' is not needed, since each line is executed in
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4927
		an own cmd.exe process.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4928
	 'popd' is not desireable, since it masks a possible
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4929
		error return from the 'bmake'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4930
	"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4931
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4932
	"cg: changed to not go and remake librun"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4933
	(self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:eachProjectId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4934
	    s tab; nextPutAll:'pushd ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4935
		   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4936
		   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4937
	].
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4938
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4939
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4940
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4941
     exept_expecco_application generateRequiredMakePrerequisites_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4942
     alspa_batch_application generateRequiredMakePrerequisites_bc_dot_mak
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4943
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4944
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4945
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4946
generateRequiredMakePrerequisites_make_dot_proto
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4947
    |libPath|
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4948
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4949
    ^ String streamContents:[:s |
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4950
        "cg: changed to not go and remake librun"
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4951
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:projectID |
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4952
            libPath := self pathToPackage:projectID withSeparator:'/'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4953
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) $(MAKE_ARGS) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4954
        ].
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4955
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4956
        s cr.
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4957
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4958
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4959
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4960
     exept_expecco_application generateRequiredMakePrerequisites_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4961
     alspa_batch_application generateRequiredMakePrerequisites_make_dot_proto
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4962
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4963
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  4964
    "Modified: / 03-03-2016 / 21:23:31 / cg"
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  4965
    "Modified: / 08-03-2019 / 12:12:43 / Claus Gittinger"
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4966
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  4967
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4968
generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4969
    |myProjectId preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4970
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4971
    myProjectId := self package.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4972
    "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4973
     is required!!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4974
     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
  4975
     'popd' is not needed, since each line is executed in
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4976
	    an own cmd.exe process.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4977
     'popd' is not desierable, since it masks a possible
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4978
	    error return from the 'bmake'.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4979
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4980
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4981
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4982
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4983
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4984
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4985
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4986
	preRequisites do:[:eachProjectId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4987
	    s tab; nextPutAll:'pushd ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4988
		   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4989
		   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4990
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4991
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4992
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4993
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4994
     exept_expecco_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4995
     alspa_batch_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4996
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4997
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4998
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  4999
generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5000
    |libPath preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5001
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5002
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5003
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5004
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5005
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5006
    ^ String streamContents:[:s |
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5007
        preRequisites do:[:projectID |
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5008
            libPath := self pathToPackage:projectID withSeparator:'/'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5009
            s tab; nextPutAll: 'cd ', libPath; nextPutLine:' && $(MAKE) $(MAKE_ARGS) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5010
        ].
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5011
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5012
        s cr.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5013
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5014
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5015
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5016
     exept_expecco_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5017
     alspa_batch_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5018
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5019
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5020
    "Modified: / 03-03-2016 / 21:23:45 / cg"
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5021
    "Modified: / 08-03-2019 / 12:12:52 / Claus Gittinger"
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5022
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5023
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5024
generateSubDirectories
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5025
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5026
	self subProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5027
	    do:[:eachProjectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5028
		s space; nextPutAll:(self pathToPackage:eachProjectID from:self package withSeparator:'/')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5029
	    ]
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5030
    ]
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5031
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5032
    "
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  5033
     exept_expecco generateSubDirectories
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5034
    "
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5035
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5036
    "Created: / 09-08-2006 / 11:26:59 / fm"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5037
    "Modified: / 14-09-2006 / 18:46:18 / cg"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5038
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5039
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5040
generate_definitionClassLine_libInit_dot_cc
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5041
    "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
  5042
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5043
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5044
	generateClassLines:(self classLine_libInit_dot_cc)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5045
	forClasses:(Array with:self name)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5046
	includeAdditionalClasses:false
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5047
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5048
    "
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5049
     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
  5050
    "
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5051
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5052
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5053
headerFileOutputArg
20590
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  5054
    "Every header file is left locally in its lib-dir"
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  5055
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  5056
    ^ '-headerDir=.'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5057
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5058
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5059
objectLine_make_dot_spec_mappings: aClassName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5060
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5061
	at: 'CLASSFILE' put:(self filenameForClass:aClassName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5062
	yourself
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5063
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5064
    "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
  5065
    "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
  5066
    "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
  5067
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5068
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5069
subProjectBmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5070
    "generate submake-calls for borland bcc"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5071
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5072
    ^ self subProjectMakeCallsUsing:'call bmake %1 %2'.
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5073
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5074
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5075
subProjectLCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5076
    "generate submake-calls for lcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5077
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5078
    ^ self subProjectMakeCallsUsing:'call lccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5079
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5080
    "Created: / 03-09-2012 / 19:49:08 / cg"
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5081
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5082
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5083
subProjectMakeCallsUsing:callString
20703
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  5084
    "for xxxmake.bat files"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5085
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5086
    ^ String streamContents:[:s |
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5087
        (self effectiveSubProjects:#win32) do:[:packageID |
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5088
            |pkgLabel skipLabel joinLabel|
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5089
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5090
            pkgLabel := (packageID copyReplaceAll:$: with:$_) copyReplaceAll:$/ with:$_.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5091
            skipLabel := 'skip_',pkgLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5092
            joinLabel := 'done_',pkgLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5093
            s nextPutLine:'@if not exist ',(self msdosPathToPackage:packageID from:(self package)),' goto ',skipLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5094
            s nextPutLine:'@echo "***********************************"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5095
            s nextPutLine:'@echo "Building ',(packageID copyReplaceAll:$: with:$/),'"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5096
            s nextPutLine:'@echo "***********************************"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5097
            s nextPutLine:'@pushd ', (self msdosPathToPackage:packageID from:(self package)).
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5098
            s nextPutAll:'@'; nextPutAll:callString; nextPutLine:' || exit /b "%errorlevel%"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5099
            s nextPutLine:'@popd'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5100
            s nextPutLine:'@goto ',joinLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5101
            s nextPutLine:':',skipLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5102
            s nextPutLine:'@echo "###################################"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5103
            s nextPutLine:'@echo "FOLDER MISSING: ',(packageID copyReplaceAll:$: with:$/),'"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5104
            s nextPutLine:'@echo "###################################"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5105
            (self nonMandatorySubProjects includes:packageID) ifTrue:[
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5106
                s nextPutLine:'@REM exit /b 1'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5107
                s nextPutLine:'@echo "subproject is not mandatory; continue."'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5108
            ] ifFalse:[    
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5109
                s nextPutLine:'exit /b 1'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5110
            ].    
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5111
            s nextPutLine:':',joinLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5112
            s cr.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5113
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5114
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5115
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5116
    "Created: / 14-09-2006 / 18:40:09 / cg"
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  5117
    "Modified: / 27-09-2011 / 19:36:12 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  5118
    "Modified: / 17-01-2017 / 16:32:45 / stefan"
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5119
    "Modified: / 07-03-2019 / 17:30:46 / Claus Gittinger"
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5120
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5121
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5122
subProjectMingwmakeCalls
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5123
    "generate submake-calls for mingw"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5124
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5125
    ^ self subProjectMakeCallsUsing:'call mingwmake %1 %2'.
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5126
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5127
    "Created: / 05-09-2012 / 19:45:53 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5128
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5129
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5130
subProjectTCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5131
    "generate submake-calls for tcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5132
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5133
    ^ self subProjectMakeCallsUsing:'call tccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5134
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5135
    "Created: / 03-09-2012 / 19:50:53 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5136
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5137
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5138
subProjectVCmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5139
    "generate submake-calls for visual-C"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5140
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5141
    ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5142
! !
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5143
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5144
!ProjectDefinition class methodsFor:'file templates'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5145
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5146
autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5147
    "for linux's autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5148
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5149
^
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5150
'# -*- shell-script -*-
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5151
[Meta]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5152
ShortName: %(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5153
SoftwareVersion: %(PRODUCT_VERSION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5154
DisplayName: %(DESCRIPTION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5155
RootName: %(PRODUCT_ROOT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5156
Summary: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5157
Maintainer: %(MAINTAINER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5158
Packager: %(PACKAGER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5159
PackageVersion: 1
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5160
CPUArchitectures: %(PRODUCT_CPU_VERSIONS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5161
AutopackageTarget: 1.0
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5162
Type: %(PRODUCT_TYPE)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5163
License: %(PRODUCT_LICENSE)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5164
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5165
[Description]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5166
%(PRODUCT_DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5167
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5168
[BuildPrepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5169
# If you''re using autotools, the default should be enough.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5170
# 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
  5171
# need to pass arguments to configure, just add them to prepareBuild:
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5172
# prepareBuild --enable-foo --disable-bar
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5173
#prepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5174
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5175
[BuildUnprepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5176
# 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
  5177
#unprepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5178
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5179
[Globals]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5180
# 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
  5181
export APKG_BUILD_SKIP_CONFIGURE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5182
export APKG_BUILD_SKIP_MAKE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5183
export MYPREFIX=/opt/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5184
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5185
[Prepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5186
#recommend ''@autopackage.org/autopackage-gtk'' 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5187
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5188
[Imports]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5189
import <<EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5190
$source_dir/%(APPLICATION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5191
%(ADDITIONAL_SOURCE_DIRS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5192
EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5193
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5194
for i in $source_dir/*.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5195
do
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5196
    echo $source_dir/$(readlink $i)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5197
done | import
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5198
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5199
[Install]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5200
if [ "$PREFIX" !!= "/usr" ]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5201
then
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5202
    export MYPREFIX=$PREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5203
fi
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5204
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5205
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
  5206
mkdir -p $MYPREFIX
23440
4ecbc6f8d8e9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23437
diff changeset
  5207
copyFiles %(PRODUCT_NAME) *.rc resources        $MYPREFIX/bin
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5208
%(ADDITIONAL_COPYFILES)
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5209
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5210
#installExe %(PRODUCT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5211
#installLib *.so
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5212
%(ADDITIONAL_INSTALL)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5213
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5214
[Uninstall]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5215
# 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
  5216
# "Install" to create files. All autopackage API functions
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5217
# that installs files are logged.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5218
uninstallFromLog
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5219
'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5220
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5221
    "Created: / 21-12-2010 / 09:06:21 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5222
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5223
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5224
bc_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5225
    "answer a template for the bc.mak makefile.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5226
     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
  5227
     $% characters have to be duplicated.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5228
     Only needed for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5229
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5230
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5231
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5232
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5233
bmake_dot_mak
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5234
    "the template code for the bmake.bat file
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5235
     Notice: duplicate %'s if they are needed as such in the generated file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5236
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5237
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5238
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5239
@REM make using Borland bcc32
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5240
@REM type bmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5241
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5242
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5243
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5244
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5245
make.exe -N -f bc.mak  %%DEFINES%% %%*
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5246
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5247
%(SKIP_IF_ARG_IS_APP_TARGET)
19594
2567f65a534c #BUGFIX by sr
sr
parents: 19592
diff changeset
  5248
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5249
%(SUBPROJECT_BMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5250
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5251
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5252
    "Created: / 17-08-2006 / 20:04:14 / cg"
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5253
    "Modified: / 04-09-2012 / 11:46:22 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5254
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5255
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5256
builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5257
    "For rake-base automatic builder"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5258
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5259
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5260
# generated from project definition
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5261
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5262
# load package dependencies
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5263
load ''package.deps.rake''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5264
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5265
# kludge: clear some invalid dependencies of libwidg
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5266
# (should be fixed in baseline)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5267
clear "stx:libwidg" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5268
clear "stx:libwidg2" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5269
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5270
project :''%(APPLICATION):baseline'' do
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5271
  # preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5272
  %(PREAMBLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5273
  # --------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5274
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5275
%(PACKAGES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5276
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5277
  application "%(APPLICATION_PACKAGE)"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5278
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5279
  # postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5280
  %(POSTABLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5281
  # ---------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5282
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5283
end
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5284
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5285
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5286
    "Created: / 24-02-2011 / 11:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5287
    "Modified: / 27-02-2011 / 12:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5288
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5289
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5290
builder_baseline_dot_rbspec_postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5291
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5292
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5293
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5294
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5295
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5296
builder_baseline_dot_rbspec_preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5297
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5298
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5299
    "Created: / 24-02-2011 / 11:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5300
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5301
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5302
classExternalDeclarationLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5303
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5304
^'extern void _%(CLASS)_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);'
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5305
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5306
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5307
classLine_libInit_dot_cc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5308
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5309
^'    _%(CLASS)_Init(pass,__pRT__,snd);'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5310
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5311
    "Created: / 08-08-2006 / 12:51:44 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5312
    "Modified: / 08-08-2006 / 15:46:05 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5313
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5314
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5315
generate_osx_info_dot_plist
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5316
    "template for the info.plist file, which is included in an OS X deployment"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5317
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5318
    |plist|
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5319
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5320
    (plist := self osx_info_dot_plist_dictionary) isNil ifTrue:[^ nil].
20586
fd48de558a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20585
diff changeset
  5321
    MacPlistXMLCoder isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5322
	Smalltalk loadPackage:'stx:goodies/xml/stx'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5323
	Smalltalk loadPackage:'stx:goodies/fileformats/plist'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5324
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5325
    ^ MacPlistXMLCoder encode:plist
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5326
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5327
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5328
     exept_expecco_application info_dot_plist
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5329
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5330
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5331
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5332
lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5333
    "the template code for the lccmake.bat file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5334
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5335
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5336
'@REM -------
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5337
@REM make using lcc compiler
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5338
@REM type lccmake, and wait...
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5339
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5340
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5341
make.exe -N -f bc.mak -DUSELCC=1 %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5342
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5343
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5344
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5345
%(SUBPROJECT_LCCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5346
'
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5347
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5348
    "Created: / 03-09-2012 / 19:49:23 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5349
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5350
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5351
make_dot_proto
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5352
    "the template code for the make.proto file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5353
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5354
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5355
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5356
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5357
make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5358
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5359
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5360
'# $','Header','$
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5361
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5362
# DO NOT EDIT
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5363
# 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
  5364
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5365
# Warning: once you modify this file, do not rerun
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5366
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5367
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5368
# This file contains specifications which are common to all platforms.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5369
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5370
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5371
# Do NOT CHANGE THESE DEFINITIONS
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5372
# (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
  5373
#  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
  5374
MODULE=%(MODULE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5375
MODULE_DIR=%(MODULE_DIRECTORY)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5376
PACKAGE=$(MODULE):$(MODULE_DIR)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5377
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5378
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5379
# Argument(s) to the stc compiler (stc --usage).
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  5380
#  -headerDir=. : create header files locally
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5381
#                (if removed, they will be created as common
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5382
#  -Pxxx       : defines the package
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5383
#  -Zxxx       : a prefix for variables within the classLib
20152
53ff3759ee7e #OTHER by mawalch
mawalch
parents: 20023
diff changeset
  5384
#  -Dxxx       : defines passed to CC for inline C-code
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5385
#  -Ixxx       : include path passed to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5386
#  +optspace   : optimized for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5387
#  +optspace2  : optimized more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5388
#  +optspace3  : optimized even more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5389
#  +optinline  : generate inline code for some ST constructs
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5390
#  +inlineNew  : additionally inline new
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5391
#  +inlineMath : additionally inline some floatPnt math stuff
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5392
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5393
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5394
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5395
# STCLOCALOPTIMIZATIONS=+optspace3
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5396
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5397
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5398
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5399
# Argument(s) to the stc compiler (stc --usage).
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5400
#  -warn            : no warnings
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5401
#  -warnNonStandard : no warnings about ST/X extensions
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5402
#  -warnEOLComments : no warnings about EOL comment extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5403
#  -warnPrivacy     : no warnings about privateClass extension
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  5404
#  -warnUnused      : no warnings about unused variables
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5405
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5406
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5407
# STCWARNINGS=-warn
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5408
# STCWARNINGS=-warnNonStandard
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5409
# STCWARNINGS=-warnEOLComments
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5410
STCWARNINGS=%(STCWARNINGOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5411
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5412
%(CLASSES)
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5413
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5414
%(OBJECTS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5415
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5416
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5417
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5418
    "Modified: / 09-08-2006 / 15:10:57 / fm"
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5419
    "Modified: / 26-07-2012 / 00:56:03 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5420
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5421
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5422
makefile
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5423
^
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5424
'#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5425
# DO NOT EDIT
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5426
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5427
# make uses this file (Makefile) only, if there is no
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5428
# file named "makefile" (lower-case m) in the same directory.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5429
# My only task is to generate the real makefile and call make again.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5430
# Thereafter, I am no longer used and needed.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5431
#
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5432
# MACOSX caveat:
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5433
#   as filenames are not case sensitive (in a default setup),
15385
2ca0c225509e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15384
diff changeset
  5434
#   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
  5435
#   "Makefile.init", and you have to execute "make -f Makefile.init" to
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5436
#   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
  5437
#   script.
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5438
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5439
.PHONY: run
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5440
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5441
run: makefile
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5442
	$(MAKE) -f makefile
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5443
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5444
#only needed for the definition of $(TOP)
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5445
include Make.proto
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5446
14665
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5447
makefile: mf
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5448
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5449
mf:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5450
	$(TOP)/rules/stmkmf
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5451
'
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5452
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5453
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5454
mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5455
    "the template code for the mingwmake.bat file"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5456
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5457
    ^
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5458
'@REM -------
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5459
@REM make using mingw gnu compiler
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5460
@REM type mingwmake, and wait...
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5461
@REM do not edit - automatically generated from ProjectDefinition
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5462
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5463
@SET DEFINES=
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  5464
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5465
@pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5466
@call find_mingw.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5467
@popd
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5468
make.exe -N -f bc.mak %DEFINES% %%USEMINGW_ARG%% %%*
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5469
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5470
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5471
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5472
%(SUBPROJECT_MINGWMAKE_CALLS)
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5473
'
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5474
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5475
    "Created: / 05-09-2012 / 19:44:51 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5476
    "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
  5477
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5478
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5479
objectLine_make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5480
21236
df609ea04274 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21102
diff changeset
  5481
    ^'    $(OUTDIR)%(CLASSFILE).$(O) \'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5482
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5483
    "Created: / 08-08-2006 / 20:16:46 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5484
    "Modified: / 23-08-2006 / 11:11:38 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5485
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5486
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5487
osx_info_dot_plist_dictionary
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5488
    "template for the info.plist file, which is included in an OS X deployment"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5489
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5490
    |plist pkg icnFilename docTypeDescriptions|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5491
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5492
    plist := Dictionary new.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5493
    plist at:'CFBundleInfoDictionaryVersion' put:'6.0'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5494
    pkg := self package copyReplaceAny:':/' with:$..
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5495
    (pkg endsWith:'.application') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5496
	pkg := pkg copyButLast:'.application' size.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5497
    ].
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5498
    plist at:'CFBundleIdentifier' put:pkg.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5499
    plist at:'CFBundleShortVersionString' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5500
    plist at:'CFBundleVersion' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5501
    plist at:'LSMinimumSystemVersion' put:'10.6'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5502
    "/ plist at:'CFBundleDevelopmentRegion' put:'English'.
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  5503
    plist at:'CFBundleExecutable' put:(self applicationName).
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5504
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5505
    self isLibraryDefinition ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5506
	plist at:'CFBundleName' put:(self package copyReplaceAny:':/' with:$.).
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5507
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5508
	plist at:'CFBundleName' put:(self applicationName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5509
	plist at:'CFBundlePackageType' put:'APPL'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5510
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5511
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5512
    (icnFilename := self applicationIconFileNameOSX) notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5513
	plist at:'CFBundleIconFile' put:icnFilename.
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5514
    ].
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5515
    (docTypeDescriptions := self applicationDocumentTypeDescriptions) notNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5516
	plist at:'CFBundleDocumentTypes' put:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5517
	    (docTypeDescriptions collect:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5518
		|d|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5519
		d := Dictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5520
		d at:'CFBundleTypeExtensions' put:{ each extension }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5521
		d at:'CFBundleTypeIconFile' put:{ each iconFileOSX }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5522
		d at:'CFBundleTypeMimeTypes' put:{ each mimeType }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5523
		d at:'CFBundleTypeName' put:(each documentTypeName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5524
		d at:'CFBundleTypeRole' put:'Editor'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5525
		d
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5526
	    ]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5527
    ].
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5528
    ^ plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5529
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5530
    "
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5531
     exept_expecco_application info_dot_plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5532
    "
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5533
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5534
    "Modified (format): / 24-02-2017 / 09:35:09 / cg"
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5535
!
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5536
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5537
packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5538
    "the template code for the <libName>.rc file.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5539
     Only used for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5540
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5541
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5542
'//
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5543
// DO NOT EDIT
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5544
// automagically generated from the projectDefinition: ',self name,'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5545
//
25151
ef1a928b257e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 24840
diff changeset
  5546
#include "winver.h"
ef1a928b257e #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 24840
diff changeset
  5547
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5548
VS_VERSION_INFO VERSIONINFO
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5549
  FILEVERSION     %(FILE_VERSION_COMMASEPARATED)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5550
  PRODUCTVERSION  %(PRODUCT_VERSION_COMMASEPARATED)
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5551
#if (__BORLANDC__)
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5552
  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5553
  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5554
  FILEOS          VOS_NT_WINDOWS32
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5555
  FILETYPE        %(FILETYPE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5556
  FILESUBTYPE     VS_USER_DEFINED
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5557
#endif
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5558
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5559
BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5560
  BLOCK "StringFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5561
  BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5562
    BLOCK "040904E4"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5563
    BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5564
      VALUE "CompanyName", "%(COMPANY_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5565
      VALUE "FileDescription", "%(FILE_DESCRIPTION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5566
      VALUE "FileVersion", "%(FILE_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5567
      VALUE "InternalName", "%(INTERNAL_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5568
%(LEGAL_COPYRIGHT_LINE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5569
      VALUE "ProductName", "%(PRODUCT_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5570
      VALUE "ProductVersion", "%(PRODUCT_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5571
      VALUE "ProductDate", "%(PRODUCT_DATE)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5572
    END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5573
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5574
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5575
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5576
  BLOCK "VarFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5577
  BEGIN                               //  Language   |    Translation
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5578
    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5579
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5580
END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5581
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5582
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5583
     stx_libbasic3 packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5584
     stx_libbasic3 generate_packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5585
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5586
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5587
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5588
    "Modified: / 09-08-2006 / 15:10:57 / fm"
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5589
    "Modified: / 07-10-2011 / 10:51:34 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5590
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5591
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5592
package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5593
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5594
# Package dependencies.
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5595
# Automatically generated by project definition.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5596
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5597
%(DEPENDENCIES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5598
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5599
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5600
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5601
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5602
    "Modified: / 17-05-2017 / 12:35:21 / mawalch"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5603
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5604
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5605
tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5606
    "the template code for the tccmake.bat file"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5607
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5608
    ^
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5609
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5610
@REM make using tcc compiler (Tiny-C)
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5611
@REM type tccmake, and wait...
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5612
@REM do not edit - automatically generated from ProjectDefinition
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5613
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5614
make.exe -N -f bc.mak -DUSETCC=1 %%*
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5615
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5616
%(SKIP_IF_ARG_IS_APP_TARGET)
19596
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5617
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5618
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5619
%(SUBPROJECT_TCCMAKE_CALLS)
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5620
'
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5621
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5622
    "Created: / 03-09-2012 / 19:50:41 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5623
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5624
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5625
vcmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5626
    "the template code for the vcmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5627
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5628
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5629
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5630
@REM make using Microsoft Visual C compiler
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5631
@REM type vcmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5632
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5633
@REM -------
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5634
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5635
@if not defined VSINSTALLDIR (
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5636
    pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5637
    call vcsetup.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5638
    popd
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5639
)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5640
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5641
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5642
make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5643
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5644
%(SKIP_IF_ARG_IS_APP_TARGET)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5645
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5646
%(SUBPROJECT_VCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5647
'
12966
396518f8f526 usevc/usebc handling
Claus Gittinger <cg@exept.de>
parents: 12964
diff changeset
  5648
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5649
    "Modified: / 04-09-2012 / 11:45:49 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5650
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5651
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5652
!ProjectDefinition class methodsFor:'loading'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5653
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5654
checkForLoad
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5655
    "raise an error, if the package is not suitable for loading"
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5656
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5657
    |m|
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5658
    
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5659
    self supportedOnPlatform ifFalse:[
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  5660
        PackageNotCompatibleError 
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  5661
            raiseRequestWith:self package
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  5662
            errorString:(self reasonForNotSupportedOnPlatform)
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5663
    ].
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5664
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5665
    "/ check for an uncompiled method in the dictionary
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5666
    "/ happens if an incompatible library is loaded.
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5667
    (m := self class compiledMethodAt:#mandatoryPreRequisites) notNil ifTrue:[
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5668
        m isExecutable ifFalse:[
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5669
            PackageNotCompatibleError 
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5670
                raiseRequestWith:self package
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5671
                errorString:'package is incompatible (needs recompilation)'
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5672
        ].
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5673
    ].
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5674
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  5675
    "Modified (comment): / 24-02-2017 / 10:06:44 / cg"
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  5676
    "Modified: / 19-02-2019 / 16:24:25 / Claus Gittinger"
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5677
!
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  5678
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5679
ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5680
    "ensure that all classes and extensions are loaded properly.
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5681
     This is normally no problem for compiled classLibs - however, if a package
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5682
     has only be installedAsAutoloaded, some classes might want to ensure that
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5683
     when being loaded themself."
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5684
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5685
    self supportedOnPlatform ifFalse:[^ self].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5686
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5687
    self hasAllExtensionsLoaded ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5688
	self breakPoint:#cg.
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5689
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5690
    self hasAllClassesFullyLoaded ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5691
	self hasAllClassesLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5692
	    self breakPoint:#cg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5693
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5694
	self installAutoloadedClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5695
	self classes do:[:cls | cls autoload ].
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5696
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5697
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5698
    "
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5699
     stx_libbasic ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5700
    "
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5701
    "Verbose := true
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5702
     stx_libjavascript hasAllExtensionsLoaded
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  5703
    "
12735
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5704
    "Verbose := true
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5705
     stx_goodies_soap_xe hasAllExtensionsLoaded
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  5706
    "
13689
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  5707
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  5708
    "Modified: / 12-09-2011 / 16:57:53 / cg"
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5709
!
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  5710
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5711
load
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5712
    "load the project
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5713
     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
  5714
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5715
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5716
    ^ self loadAsAutoloaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5717
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5718
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5719
loadAsAutoloaded:asAutoloaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5720
    "load the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5721
     If asAutoloaded == true, install all new classes as autoloaded.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5722
     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
  5723
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5724
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5725
    |newStuffHasBeenLoaded meOrMySecondIncarnation|
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5726
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5727
    self supportedOnPlatform ifFalse:[^ false].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  5728
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5729
    self projectIsLoaded ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5730
	asAutoloaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5731
	    "/ to be considered !!
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5732
"/            self isFullyLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5733
"/                self hasAllExtensionsLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5734
"/                    self loadExtensions.
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5735
"/                ].
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5736
"/                self loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5737
"/            ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5738
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5739
	^ false
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  5740
    ].
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5741
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5742
    "/ the following prevents us from crshing if a project definition's prerequisites
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5743
    "/ are wrong and circular/recursive
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5744
12749
160f7b56e426 oops: leftover halts.
Claus Gittinger <cg@exept.de>
parents: 12748
diff changeset
  5745
    thisContext isRecursive ifTrue:[self breakPoint:#cg. ^ false].    "/ avoid endless loops
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5746
    (PackagesBeingLoaded includes:self package) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5747
	"/ seems to be a recursive call
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5748
	^ false
14851
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  5749
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5750
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  5751
    PackagesBeingLoaded add:self package.
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  5752
    PackageLoadInProgressQuery
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5753
	answerNotifyLoading:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5754
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5755
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5756
	    [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5757
		newStuffHasBeenLoaded := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5758
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5759
		Smalltalk silentLoading ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5760
		    "/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5761
		    Logger info:('loading %1%2...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5762
					bindWith:(asAutoloaded ifTrue:['as autoloaded '] ifFalse:[''])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5763
					with:self name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5764
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5765
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5766
		self rememberOverwrittenExtensionMethods.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5767
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5768
		self activityNotification:'Executing pre-load action'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5769
		self executeHooks: #preLoad.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5770
		self preLoadAction.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5771
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5772
		meOrMySecondIncarnation := self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5773
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5774
		Class withoutUpdatingChangesDo:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5775
		    self activityNotification:'Loading prerequisities'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5776
		    self loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5777
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5778
		    self checkPrerequisitesForLoading.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5779
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5780
		    asAutoloaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5781
			"ignore binary class library load failure - try is the hard way (loading classes)"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5782
			PackageLoadError ignoreIn:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5783
			    self loadClassLibrary.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5784
			    "/ could have overloaded my first incarnation
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5785
			    meOrMySecondIncarnation := (Smalltalk at:(self name)) ? self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5786
			    meOrMySecondIncarnation ~~ self ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5787
				meOrMySecondIncarnation fetchSlotsFrom:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5788
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5789
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5790
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5791
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5792
		    self hasAllExtensionsLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5793
			self activityNotification:'Loading extensions'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5794
			"/ evaluating or here - want extensions to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5795
			newStuffHasBeenLoaded := newStuffHasBeenLoaded | meOrMySecondIncarnation loadExtensions.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5796
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5797
		    (self hasAllClassesLoaded:asAutoloaded not) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5798
			self activityNotification:'Loading classes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5799
			"/ evaluating or here - want autoloaded classes to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5800
			newStuffHasBeenLoaded := newStuffHasBeenLoaded | (meOrMySecondIncarnation loadAllClassesAsAutoloaded:asAutoloaded).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5801
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5802
		    "/ no, don't load subProjects here - will lead to a recursion, which leads
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5803
		    "/ to some classes being loaded from source (soap)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5804
		    "/     self activityNotification:'Loading sub projects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5805
		    "/     meOrMySecondIncarnation loadSubProjectsAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5806
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5807
		self activityNotification:('Executing post-load action for %1' bindWith:self package).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5808
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5809
		"/ mhmh - already done for dll-loaded packages
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5810
		"/ meOrMySecondIncarnation initializeAllClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5811
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5812
		meOrMySecondIncarnation projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5813
		meOrMySecondIncarnation ~~ self ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5814
		    self projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5815
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5816
	    ] ensure:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5817
		PackagesBeingLoaded remove:self package ifAbsent:[].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5818
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5819
	    "/ load the other prerequisites
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5820
	    self loadPreRequisitesAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5821
	].
13194
8e451f8ff654 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13178
diff changeset
  5822
    self activityNotification:('Done (%1).' bindWith:self package).
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5823
    ^ newStuffHasBeenLoaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5824
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5825
    "Created: / 17-08-2006 / 01:01:41 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5826
    "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
  5827
    "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
  5828
    "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
  5829
    "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
  5830
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5831
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5832
unloadPackage
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5833
    "unload the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5834
     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
  5835
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5836
    self projectIsLoaded ifFalse:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5837
    thisContext isRecursive ifTrue:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5838
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  5839
    Smalltalk silentLoading ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5840
	"/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5841
	Logger info:'unloading %1' with:self name.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5842
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5843
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5844
    self activityNotification:'Executing pre-unload action'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5845
    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
  5846
    self executeHooks: #preUnload.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5847
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5848
    self activityNotification:'Restoring original methods'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5849
    self restoreOverwrittenExtensionMethods.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5850
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5851
    Class withoutUpdatingChangesDo:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5852
	self activityNotification:'Unloading subprojects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5853
	self unloadSubProjects.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5854
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5855
	self activityNotification:'Unloading classes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5856
	self unloadClassLibrary.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5857
	self unloadAllClasses.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5858
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5859
    self projectIsLoaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5860
    ^ 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
  5861
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  5862
    "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
  5863
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5864
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  5865
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  5866
!ProjectDefinition class methodsFor:'private'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  5867
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5868
abbrevs
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5869
    "return a dictionary containing my abbreviations;
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5870
     this dictionary is read from my project-directory's abbrev.stc file,
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5871
     and cached for future use"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5872
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5873
    |abbrevs|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5874
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  5875
    AccessLock critical:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5876
	|mustRead file myPackageDirectory|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5877
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5878
	AbbrevDictionary isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5879
	    AbbrevDictionary := WeakIdentityDictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5880
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5881
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5882
	mustRead := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5883
	abbrevs := AbbrevDictionary at:self ifAbsent:[ mustRead := true. Dictionary new ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5884
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5885
	mustRead ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5886
	    myPackageDirectory := self packageDirectory.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5887
	    myPackageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5888
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5889
		file := myPackageDirectory / 'abbrev.stc'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5890
		file exists ifTrue: [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5891
		    file readingFileDo:[:stream |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5892
			Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5893
			    withAbbreviationsFromStream:stream
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5894
			    do:[:nm :fn :pkg :cat :sz|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5895
				abbrevs at: nm put: (AbbrevEntry new className:nm fileName:fn category:cat numClassInstVars:sz)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5896
			    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5897
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5898
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5899
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5900
	].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5901
    ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  5902
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5903
    ^abbrevs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5904
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5905
    "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
  5906
    "Modified: / 20-01-2012 / 15:42:47 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5907
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5908
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5909
additionalClassAttributesFor: aClass
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5910
    "Answers additional set of class attributes for given class
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5911
     Individual project definitions may override this method, but
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5912
     overriding method should always merge its attributes with result
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5913
     of 'super additionalClassAttributesFor: aClass'.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5914
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5915
     Here, we add #autoload attributes to all test cases and
21102
eef23325dbb5 #OTHER by mawalch
mawalch
parents: 20986
diff changeset
  5916
     test resources, as they are not necessary for the package
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5917
     and should not be compiled (because of unwanted dependency
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5918
     on stx:goodies/sunit package)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5919
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5920
     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
  5921
     test-package - by conventions such package should by named
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5922
     #'module:package/subpackage/tests'
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5923
    "
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5924
    ((self package endsWith: '/tests') or:[(self package endsWith: '/test')]) ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5925
	(TestCase notNil and:[aClass inheritsFrom: TestCase]) ifTrue:[^#(autoload)].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5926
	(TestResource notNil and:[aClass inheritsFrom: TestResource]) ifTrue:[^#(autoload)].
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5927
    ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5928
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5929
    "No additional attributes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5930
    ^#()
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5931
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5932
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5933
	stx_libbasic additionalClassAttributesFor: Object
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5934
	stx_libtool additionalClassAttributesFor: Tools::NavigationHistoryTests
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5935
	stx_goodies_sunit additionalClassAttributesFor: TestCase
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5936
	stx_goodies_petitparser_tests additionalClassAttributesFor: PPAbstractParseTest
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5937
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5938
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5939
	stx_libtool classNamesAndAttributes_code_ignoreOldEntries:true ignoreOldDefinition: true
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5940
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5941
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5942
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5943
    "Created: / 26-10-2009 / 12:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  5944
    "Modified (comment): / 01-11-2014 / 00:27:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5945
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5946
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5947
checkIfClassesArePresent
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5948
    "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
  5949
     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
  5950
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5951
    |check nonExistentClasses|
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5952
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5953
    nonExistentClasses := Set new.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5954
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5955
    check :=
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5956
            [:eachClassName |
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5957
                |cls fn wasLoaded failedToLoad numClassInstvars|
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5958
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5959
                cls := Smalltalk classNamed:eachClassName.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5960
                cls isNil ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5961
                    Transcript showCR:eachClassName.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5962
                    nonExistentClasses add:eachClassName.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5963
                ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5964
            ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5965
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5966
    self allClassNames do:check.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5967
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5968
        (attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5969
            check value:nm
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5970
        ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5971
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5972
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  5973
    nonExistentClasses notEmpty ifTrue:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5974
        Transcript showCR:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.' with:nonExistentClasses.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5975
        UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5976
            (Dialog confirm:(Dialog classResources
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5977
                                stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5978
                                with:nonExistentClasses anElement allBold)) ifFalse:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5979
                AbortOperationRequest raise.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5980
            ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5981
        ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  5982
        ^ false.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5983
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5984
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5985
    ^ true
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5986
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  5987
    "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
  5988
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5989
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5990
classNamesAndAttributesAsSpecArray
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5991
    "given a classNamesAndAttributes array, make this a spec array (array of arrays).
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5992
     This decompresses class-name entries into a one-element array for easier processing"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5993
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  5994
    ^ self classNamesAndAttributes
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5995
	collect:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5996
	    entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5997
		entry first isSymbol ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5998
		    entry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5999
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6000
		    (Array with:entry first asSymbol) , (entry copyFrom:2)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6001
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6002
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6003
		Array with:entry asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6004
	    ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6005
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6006
    "Created: / 19-02-2007 / 16:11:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6007
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6008
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6009
classNamesAndAttributesDo: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6010
    self namesAndAttributesIn:(self classNamesAndAttributes) do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6011
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6012
    "Modified: / 22-08-2006 / 18:20:21 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6013
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6014
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6015
classNamesAndAttributesFromSpecArray:aSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6016
    "given a spec array (array of arrays), make this a classNamesAndAttributes array
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6017
     as stored literally in the method.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6018
     This compresses single element array-elements into plain names
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6019
     (to save code in the compiled binaries) and especially sorts them by load/compile order"
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6020
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6021
    |newSpec loadedClasses loadedClassNames itemsForUnloadedClasses
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6022
     entriesByName|
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6023
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6024
    entriesByName := Dictionary new.
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6025
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6026
    newSpec :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6027
	aSpecArray
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6028
	    collect:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6029
		|nm newEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6030
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6031
		(entry isArray and:[entry size == 1]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6032
		    nm := newEntry := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6033
		    entriesByName at:nm put:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6034
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6035
		    newEntry := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6036
		    (entry isArray and:[entry size > 1]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6037
			nm := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6038
			entriesByName at:nm put:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6039
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6040
			nm := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6041
			entriesByName at:nm put:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6042
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6043
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6044
		newEntry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6045
	    ].
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6046
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6047
    "/ extract loaded and unloaded classes.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6048
    loadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6049
    itemsForUnloadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6050
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6051
    newSpec do:[:entry |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6052
	|clsName clsOrNil|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6053
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6054
	(entry isArray and:[entry includes:#autoload]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6055
	    itemsForUnloadedClasses add:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6056
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6057
	    clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6058
	    clsOrNil := Smalltalk classNamed:clsName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6059
	    (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6060
		loadedClasses add:clsOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6061
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6062
		itemsForUnloadedClasses add:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6063
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6064
	]
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6065
    ].
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6066
    "/ and sort by load order
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6067
    loadedClassNames := (Class classesSortedByLoadOrder:loadedClasses) collect:[:cls | cls name].
16619
7a48afba2f52 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16602
diff changeset
  6068
    newSpec := loadedClassNames collect:[:nm | entriesByName at:nm ifAbsent:[ { nm . #autoload }]].
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6069
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6070
    "/ reconstruct contents array, unloaded classes last.
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6071
    ^ newSpec asArray , itemsForUnloadedClasses asArray.
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6072
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6073
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6074
compile:someCode categorized:category
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6075
    ^ self compile:someCode categorized:category using:nil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6076
!
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6077
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6078
compile:someCode categorized:category using:compilerOrNil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6079
    ^ Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6080
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6081
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6082
	    (compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6083
		compile:someCode
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6084
		forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6085
		inCategory:category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6086
	]
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6087
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6088
    "Created: / 23-08-2006 / 14:36:53 / cg"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6089
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6090
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6091
compiled_classes
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6092
    ^ self compiled_classNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6093
	collect:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6094
	    [:eachName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6095
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6096
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6097
		cls := (Smalltalk at:eachName asSymbol).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6098
		(cls isNil or:[cls isBehavior not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6099
		    Transcript showCR:('ProjectDefinition: missing/invalid class: ', eachName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6100
		    cls := nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6101
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6102
		cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6103
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6104
	thenSelect:[:cls | cls notNil]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6105
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6106
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6107
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6108
    "Modified: / 07-12-2006 / 17:48:11 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6109
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6110
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6111
compiled_classesDo:aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6112
    self compiled_classes do:aBlock.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6113
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6114
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6115
    "Modified: / 09-08-2006 / 18:02:28 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6116
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6117
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  6118
compiled_classesForPlatform:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6119
    ^ (self compiled_classNamesForPlatform:arch)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6120
	collect:[:eachName | (Smalltalk classNamed:eachName)]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6121
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6122
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6123
     stx_libbasic compiled_classesForArchitecture:#win32
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6124
     stx_libbasic compiled_classesForArchitecture:#macos
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6125
     stx_libbasic compiled_classesForArchitecture:#unix
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6126
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6127
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6128
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6129
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6130
    "Modified: / 07-12-2006 / 17:43:17 / cg"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6131
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6132
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6133
compiled_classes_common
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6134
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6135
	compiled_classNames_common
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6136
	    collect:[:eachName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6137
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6138
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6139
		cls := Smalltalk classNamed:eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6140
		cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6141
		    Transcript showCR:('Warning: Missing/invalid class: %1 - the class is skipped in the list of compiled classes.').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6142
		    UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6143
			self warn:('Missing/invalid class: %1\\%2'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6144
				    bindWith:eachName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6145
				    with:('Warning: The class is skipped in the list of compiled classes.' allBold)) withCRs.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6146
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6147
		    cls := nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6148
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6149
		cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6150
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6151
	    thenSelect:[:cls| cls notNil "isBehavior"]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6152
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6153
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6154
    "Modified: / 09-08-2006 / 18:02:28 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  6155
    "Modified: / 28-01-2014 / 21:45:08 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6156
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6157
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6158
cvsRevision
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6159
    |rev|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6160
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6161
    rev := self revision.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6162
    rev isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6163
	"not yet pubplished"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6164
	^ #( '0' '1' )
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6165
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6166
    ^ rev asCollectionOfSubstringsSeparatedBy:$. .
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6167
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6168
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6169
     self cvsRevision
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6170
     stx_libbasic3 cvsRevision
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6171
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6172
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6173
    "Created: / 17-08-2006 / 20:19:03 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6174
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6175
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6176
defaultClassAttributesFor: aClass
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6177
    "Answers default set of class attributes for given class.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6178
     This is internal method only, to per-project customization
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6179
     please override either #additionalClassAttributes or
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6180
     #additional classAttributesFor:"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6181
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6182
    | attrs |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6183
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6184
    "JV @ 2010-06-19
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6185
     Add a programming language attribute for non-smalltalk classes.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6186
     Used by multi-lang enabled loading mechanism"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6187
    attrs := aClass programmingLanguage isSmalltalk
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6188
		ifTrue:[#()]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6189
		ifFalse:[Array with: (Array with: #lang with: aClass programmingLanguage name asSymbol)].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6190
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6191
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6192
    "JV @ 2009-10-26
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6193
     Give a project definition to specify additional attributes for given class."
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6194
    attrs := attrs , (self additionalClassAttributesFor: aClass).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6195
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6196
    ^attrs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6197
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6198
    "Created: / 19-06-2010 / 10:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6199
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6200
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6201
inconsistency:message
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6202
    Dialog warn:message
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6203
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6204
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6205
    self searchForNeverCompiledSuperclasses
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6206
    DapasX_Datenbasis searchForNeverCompiledSuperclasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6207
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6208
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6209
    "Created: / 09-08-2006 / 16:32:31 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6210
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6211
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6212
makeOSIncludesWith:fileSeparator from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6213
    ^ aString copy replaceAny:'/\' with:fileSeparator
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6214
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6215
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6216
     self makeOSIncludesWith:$/ from:'-I$(TOP)/foo/bar'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6217
     self makeOSIncludesWith:$\ from:'-I$(TOP)/foo/bar'
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6218
    "
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6219
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6220
    "Created: / 06-09-2006 / 18:17:03 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6221
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6222
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6223
makeUnixIncludes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6224
    ^ self makeOSIncludesWith:$/ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6225
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6226
    "Created: / 06-09-2006 / 18:16:19 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6227
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6228
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6229
makeWin32Includes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6230
    ^ self makeOSIncludesWith:$\ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6231
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6232
    "Created: / 06-09-2006 / 18:16:13 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6233
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6234
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6235
mergeClassAttributes: attr1 with: attr2
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6236
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6237
    ^attr1 , (attr2 reject:[:each|attr1 includes: each])
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6238
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6239
    "Created: / 19-06-2010 / 10:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6240
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6241
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6242
mergeDefaultClassAttributesFor: aClass with: attributes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6243
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6244
    ^self mergeClassAttributes: attributes with: (self defaultClassAttributesFor: aClass)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6245
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6246
    "Created: / 19-06-2010 / 10:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6247
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6248
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6249
namesAndAttributesIn:aCollection do: aBlock
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6250
    aCollection isNil ifTrue:[^ self].
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6251
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6252
    aCollection do:[:entry |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6253
	|className attributes|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6254
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6255
	entry isArray ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6256
	    className := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6257
	    attributes := #().
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6258
	] ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6259
	    className := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6260
	    attributes := entry copyFrom:2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6261
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6262
	aBlock value: className value: attributes
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6263
     ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6264
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6265
    "Created: / 22-08-2006 / 18:20:09 / cg"
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6266
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6267
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6268
searchForClasses
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6269
    "answer all non-private classes that belong to this project.
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6270
     They are sorted in load order"
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6271
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6272
    ^ Class classesSortedByLoadOrder:(self searchForClassesWithProject: self package)
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6273
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6274
    "
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6275
     stx_libbasic3 searchForClasses
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6276
     stx_goodies_webServer_htmlTree searchForClasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6277
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6278
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6279
    "Modified: / 07-08-2006 / 21:56:25 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6280
    "Created: / 17-08-2006 / 21:18:30 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6281
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6282
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6283
searchForClassesWithProject: aProjectID
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6284
    "answer all public and private classes belonging to aProjectID"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6285
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6286
    ^ Smalltalk allClasses
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6287
	select:[:cls | cls package = aProjectID].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6288
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6289
"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6290
    self searchForClassesWithProject: #'exept:ctypes'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6291
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6292
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6293
    "Created: / 07-08-2006 / 20:42:39 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6294
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6295
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6296
searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6297
    ^ self searchForExtensionsWithProject:self package
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6298
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6299
"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6300
    self searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6301
    DapasXProject searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6302
    DapasX_Datenbasis searchForExtensions
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6303
    stx_libtool searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6304
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6305
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6306
    "Modified: / 09-08-2006 / 13:01:26 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6307
    "Created: / 17-08-2006 / 21:17:46 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6308
    "Modified: / 23-10-2006 / 11:03:07 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6309
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6310
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6311
searchForExtensionsWithProject:aProjectID
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6312
    "search for any class which has extensions from aProjectID.
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6313
     Return the extension-methods sorted by classname-selector"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6314
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6315
    |methods|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6316
11152
92ef5422f17a code reuse
Claus Gittinger <cg@exept.de>
parents: 11149
diff changeset
  6317
    methods := Smalltalk allExtensionsForPackage:aProjectID.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6318
    methods
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6319
	sort:[:m1 :m2 |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6320
	    |c1 c2|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6321
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6322
	    c1 := m1 mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6323
	    c2 := m2 mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6324
	    c1 == c2 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6325
		m1 selector < m2 selector
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6326
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6327
		(c2 isMeta and:[c1 isMeta not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6328
		    true
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6329
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6330
		    (c1 isMeta and:[c2 isMeta not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6331
			false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6332
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6333
			c1 name < c2 name
9908
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6334
"/                        (c2 isSubclassOf:c1) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6335
"/                            true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6336
"/                        ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6337
"/                            (c1 isSubclassOf:c2) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6338
"/                                false
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6339
"/                            ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6340
"/                                "/ leave as is
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6341
"/                                true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6342
"/                            ].
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6343
"/                        ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6344
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6345
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6346
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6347
	].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6348
    ^ methods
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6349
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6350
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6351
     self searchForExtensionsWithProject:#'bosch:dapasx'
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6352
     self searchForExtensionsWithProject:#'cg:oyster'
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6353
     self searchForExtensionsWithProject:#'stx:libboss'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6354
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6355
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6356
    "Created: / 17-08-2006 / 21:19:04 / cg"
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6357
    "Modified: / 12-10-2006 / 20:45:39 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6358
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6359
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6360
searchForProjectsWhichProvideHeaderFiles
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6361
    |addPackage myPackageID requiredPackages|
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6362
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6363
    myPackageID := self package.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6364
    requiredPackages := Set new.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6365
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6366
    addPackage :=
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6367
        [:package |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6368
            (package ~= myPackageID) ifTrue:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6369
                true "(package startsWith:'stx:') not" ifTrue:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6370
                    package ~= PackageId noProjectID ifTrue:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6371
                        requiredPackages add:package.
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6372
                    ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6373
                ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6374
            ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6375
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6376
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6377
    "/ need them also...
14886
7498476f1ae6 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14885
diff changeset
  6378
    self mandatoryPreRequisites do:[:eachPreRequisitePackage |
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6379
        addPackage value:eachPreRequisitePackage
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6380
    ].
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6381
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6382
    "/ cg: also need include lines for all referenced packages,
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6383
    "/ because otherwise, a reference to a symbol in a namespace
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6384
    "/ is not resolved correctly by stc (which would not know, if the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6385
    "/ symbol is in Smalltalk or the NameSpace.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6386
    "/ This happens eg. when referring to a class Foo in namespace N
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6387
    "/ 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
  6388
    "/ It is then only in the referencedPreRequisites's, not the mandatory prereqs.
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6389
    "/ Actually, the question is, if then the package should not be listed in the
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6390
    "/ mandatoryPrereqs right away. Discuss this with sv.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6391
    self referencedPreRequisites do:[:eachPreRequisitePackage |
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6392
        addPackage value:eachPreRequisitePackage
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6393
    ].
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6394
10788
f2ff69add7e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10785
diff changeset
  6395
    self compiled_classesDo:[:cls |
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6396
        cls allSuperclassesDo:[:eachSuperClass |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6397
            addPackage value:(eachSuperClass package)
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6398
        ].
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6399
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6400
        cls allPrivateClassesDo:[:eachPrivateClass |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6401
            eachPrivateClass allSuperclassesDo:[:eachSuperClass |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6402
                eachSuperClass isPrivate ifFalse:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6403
                    addPackage value:(eachSuperClass package)
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6404
                ].
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6405
            ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6406
        ].
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6407
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6408
        cls sharedPoolNames do:[:eachPoolName |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6409
            |eachPoolClass|
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6410
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6411
            eachPoolClass := Smalltalk classNamed:eachPoolName.
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6412
            eachPoolClass isNil ifTrue:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6413
                Transcript showCR:('Warning: missing pool: %1 (required by %2)' bindWith:eachPoolName with:cls name)
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6414
            ] ifFalse:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6415
                eachPoolClass withAllSuperclassesDo:[:eachPoolSuperClass |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6416
                    addPackage value:(eachPoolSuperClass package)
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6417
                ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6418
            ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6419
        ].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6420
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6421
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6422
    self extensionMethodNames pairWiseDo:[:className :selector |
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6423
        |cls|
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6424
        ((cls := Smalltalk classNamed:className) notNil and:[cls isLoaded]) ifTrue:[
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6425
            cls withAllSuperclassesDo:[:eachSuperClass |
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6426
                addPackage value:(eachSuperClass package)
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6427
            ]
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6428
        ]
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6429
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6430
    ^ requiredPackages
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6431
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6432
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6433
     stx_libtool searchForProjectsWhichProvideHeaderFiles
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  6434
     cg_demos_helloWorld searchForProjectsWhichProvideHeaderFiles
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6435
     cg_tools_emulators_freecell searchForProjectsWhichProvideHeaderFiles
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6436
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6437
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6438
    "Created: / 07-12-2006 / 17:46:38 / cg"
13216
ef64e67606c5 changed:
Claus Gittinger <cg@exept.de>
parents: 13194
diff changeset
  6439
    "Modified: / 18-01-2011 / 17:58:33 / cg"
24342
e1077b14f110 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23866
diff changeset
  6440
    "Modified (comment): / 23-06-2019 / 10:36:23 / Claus Gittinger"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6441
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6442
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6443
searchForSiblingProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6444
    "answer all the packages (package names) having the my parent package"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6445
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6446
    |myPackage myParentPackage|
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6447
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6448
    myPackage := self package asPackageId.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6449
    myParentPackage := myPackage parentPackage.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6450
    myParentPackage isNil ifTrue:[^ #() ].
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6451
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6452
    ^ Smalltalk allPackageIDs
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6453
	select:[:projectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6454
	    |thisPackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6455
	    thisPackage := projectID asPackageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6456
	    (thisPackage parentPackage = myParentPackage)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6457
	    and:[ thisPackage ~= myPackage ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6458
	]
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6459
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6460
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6461
     self searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6462
     bosch_dapasx_Application searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6463
     stx_goodies_refactoryBrowser_changes searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6464
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6465
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6466
    "Modified: / 07-08-2006 / 21:56:25 / fm"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6467
    "Created: / 23-08-2006 / 15:06:12 / cg"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6468
!
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6469
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6470
searchForSubProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6471
    "answer all packages (package names), that are my subProjects"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6472
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6473
    |myPackage|
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6474
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6475
    myPackage := self package.
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6476
    ^ Smalltalk allPackageIDs
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6477
	select:[:projectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6478
	    projectID ~= PackageId noProjectID
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6479
	    and:[ (projectID asPackageId parentPackage) = myPackage ]].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6480
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6481
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6482
     self searchForSubProjects
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6483
     bosch_dapasx_Application searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6484
     stx_goodies_refactoryBrowser_changes searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6485
    "
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6486
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6487
    "Created: / 07-08-2006 / 20:42:39 / fm"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6488
    "Modified: / 07-08-2006 / 21:56:25 / fm"
10215
2d5aaeab5718 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10212
diff changeset
  6489
    "Modified: / 05-12-2006 / 18:04:27 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6490
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6491
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6492
setupForType:typeOrNil
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6493
    typeOrNil = GUIApplicationType ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6494
	self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6495
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6496
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6497
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6498
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6499
    ^ true
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6500
'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6501
	     categorized:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6502
	self setSuperclass: ApplicationDefinition.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6503
	^ self
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6504
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6505
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6506
    typeOrNil = NonGUIApplicationType ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6507
	self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6508
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6509
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6510
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6511
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6512
    ^ false
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6513
'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6514
	     categorized:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6515
	self setSuperclass: ApplicationDefinition.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6516
	^ self
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6517
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6518
12349
6493b6124da3 changed:
fm
parents: 12339
diff changeset
  6519
    self theMetaclass removeSelector: #isGUIApplication.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  6520
    self setSuperclass: LibraryDefinition.
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6521
    ^ self.
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6522
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6523
    "Created: / 23-08-2006 / 14:26:10 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6524
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6525
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6526
shouldExcludeTest: test
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6527
    ^ self excludedFromTestSuite contains:[:spec|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6528
	    (spec isSymbol and:[test class name == spec])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6529
	    or:[spec isArray and:[test class name == spec first and:[test selector == spec second]]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6530
	].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6531
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6532
    "Created: / 03-06-2011 / 17:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18323
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6533
!
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6534
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6535
verbose:aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6536
    "enable/disable diagnostic output, which gives more detail on why package loading fails"
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6537
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6538
    Verbose := aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6539
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6540
    "
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6541
     self verbose:true
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6542
     self verbose:false
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6543
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6544
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6545
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6546
!ProjectDefinition class methodsFor:'private-extension handling'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6547
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6548
extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6549
    ^ extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6550
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6551
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6552
fetchSlotsFrom:myFirstIncarnation
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6553
    "this is invoked in a just loaded instance of myself,
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6554
     to fetch the safe and extensionInfo from my first incarnation"
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6555
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6556
    safeForOverwrittenMethods := myFirstIncarnation safeForOverwrittenMethods.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6557
    extensionOverwriteInfo := myFirstIncarnation extensionOverwriteInfo.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6558
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6559
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6560
hasSavedOverwrittenMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6561
    "true, if any of my methods was overwritten by another loaded package.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6562
     These methods are now in my safe"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6563
12208
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6564
    ^ safeForOverwrittenMethods notEmptyOrNil
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6565
!
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6566
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6567
methodOverwrittenBy:anExtensionMethod
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6568
    "return the (hidden) original method, which was located in another package
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6569
     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
  6570
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6571
    |mclass selector oldPackage|
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6572
12218
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6573
    extensionOverwriteInfo isNil ifTrue:[^ nil].
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6574
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6575
    mclass := anExtensionMethod mclass.
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6576
    selector := anExtensionMethod selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6577
    oldPackage := extensionOverwriteInfo at:(mclass name,'>>',selector) ifAbsent:nil.
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6578
    oldPackage isNil ifTrue:[^ nil].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6579
    ^ oldPackage asPackageId projectDefinitionClass
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6580
	savedOverwrittenMethodForClass:mclass selector:selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6581
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6582
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6583
rememberOverwrittenExtensionMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6584
    "before loading, tell other packages to keep a safe reference to any method
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6585
     which gets overloaded by me, and also remember here, whom I have overloaded.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6586
     This allows for two things:
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6587
        a) correct fileout of the other base-package (for example, when checking in any of its class)
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6588
        b) correct unloading of myself"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6589
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6590
    self extensionMethodNames pairWiseDo:[:className :selector |
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6591
        |class oldMethod oldPackage defClass|
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6592
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6593
        class := Smalltalk classNamed:className.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6594
        class notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6595
            oldMethod := class compiledMethodAt:selector.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6596
        ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6597
        oldMethod notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6598
            oldPackage := oldMethod package.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6599
            oldPackage ~= PackageId noProjectID ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6600
                defClass := oldPackage asPackageId projectDefinitionClass.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6601
                defClass notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6602
                    defClass rememberOverwrittenMethod:oldMethod inClass:class.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6603
                    extensionOverwriteInfo isNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6604
                        extensionOverwriteInfo := Dictionary new.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6605
                    ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6606
                    extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6607
                ]
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6608
            ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6609
        ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6610
    ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6611
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6612
    "Modified (comment): / 07-03-2019 / 18:02:46 / Stefan Vogel"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6613
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6614
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6615
rememberOverwrittenMethod:oldMethod inClass:aClass
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6616
    "invoked from another projectDefinition, when that package is about to be loaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6617
     and about to overwrite one of my methods.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6618
     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
  6619
     to correctly reestablish my methods when the other package is unloaded later."
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6620
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6621
    |thisIsOneOfMyMethods selector|
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6622
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6623
    selector := oldMethod selector.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6624
12293
983b9555f6e8 changed: #rememberOverwrittenMethod:inClass:
Claus Gittinger <cg@exept.de>
parents: 12286
diff changeset
  6625
    thisIsOneOfMyMethods := (self classNames includes:aClass theNonMetaclass name)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6626
			    or:[ aClass isPrivate and:[ self classNames includes: aClass topOwningClass theNonMetaclass name ]].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6627
    thisIsOneOfMyMethods ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6628
	self extensionMethodNames pairWiseDo:[:extClassName :extSelector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6629
	    extClassName = aClass name ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6630
		selector = extSelector ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6631
		    thisIsOneOfMyMethods := true
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6632
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6633
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6634
	]
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6635
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6636
    thisIsOneOfMyMethods ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6637
	"/ self error:'oops - this is not one of my methods' mayProceed:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6638
	Transcript showCR:self name,' [warning]:not one of my methods in rememberOverwritten'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6639
	^ self
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6640
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6641
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6642
    safeForOverwrittenMethods isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6643
	safeForOverwrittenMethods := Dictionary new.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6644
    ].
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6645
    safeForOverwrittenMethods at:(aClass name,'>>',selector) put:oldMethod.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6646
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6647
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6648
restoreOverwrittenExtensionMethods
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6649
    <resource: #todo>
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6650
    "after unloading, tell other packages to restore any saved reference to any method
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6651
     which got overloaded by me.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6652
     Unfinished!!"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6653
16786
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  6654
    extensionOverwriteInfo notEmptyOrNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6655
	self extensionMethodNames pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6656
	    |class oldMethod oldPackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6657
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6658
	    oldPackage := extensionOverwriteInfo at:(className,'>>',selector).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6659
	    oldPackage notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6660
		class := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6661
		class notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6662
		    oldMethod := oldPackage savedOverwrittenMethodForClass:class selector:selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6663
		    oldMethod notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6664
			self breakPoint:#cg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6665
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6666
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6667
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6668
	].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6669
    ].
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6670
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  6671
    "Modified (comment): / 18-05-2017 / 14:49:39 / mawalch"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6672
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  6673
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6674
safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6675
    ^ safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6676
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6677
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6678
savedOverwrittenMethodForClass:aClass selector:aSelector
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6679
    "return one of my saved original methods"
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6680
13692
2dffef08a4ac changed: #savedOverwrittenMethodForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 13689
diff changeset
  6681
    safeForOverwrittenMethods isNil ifTrue:[^ nil].
12274
a8ef1edeca71 changed:
Claus Gittinger <cg@exept.de>
parents: 12271
diff changeset
  6682
    ^ safeForOverwrittenMethods at:(aClass name,'>>',aSelector) ifAbsent:nil
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6683
!
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6684
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6685
savedOverwrittenMethods
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6686
    "return my saved original methods"
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6687
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  6688
    ^ safeForOverwrittenMethods ? #()
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6689
! !
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6690
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6691
!ProjectDefinition class methodsFor:'private-loading'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6692
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6693
checkPrerequisitesForLoading
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6694
    "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
  6695
     Raise an error if not"
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  6696
12264
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6697
    |classesAlreadyWarned|
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6698
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6699
    classesAlreadyWarned := Set new.
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  6700
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6701
    self extensionMethodNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6702
	pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6703
	    |class errMsg|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6704
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6705
	    class := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6706
	    class isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6707
		(classesAlreadyWarned includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6708
		    (self classNames includes:className) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6709
			errMsg := 'extension for a class in myself: ',className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6710
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6711
			errMsg := 'missing class for extension: ',className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6712
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6713
		    Logger error:errMsg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6714
		    self proceedableError:errMsg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6715
		    classesAlreadyWarned add:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6716
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6717
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6718
	]
12263
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  6719
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  6720
    "/ todo: more needed here...
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6721
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6722
    "
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6723
     stx_libjavascript checkPrerequisitesForLoading
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6724
    "
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6725
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6726
    "Modified: / 24-05-2018 / 21:04:56 / Claus Gittinger"
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6727
!
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  6728
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  6729
executeHooks: hookSymbol
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6730
    "Execute all hooks annotated by the given hook-symbol.
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  6731
     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
  6732
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6733
    | cls |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6734
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6735
    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
  6736
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6737
    [ cls notNil ] whileTrue:[
24751
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6738
        cls class selectorsAndMethodsDo:[:selector :method|
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6739
            (method annotationAt: hookSymbol) notNil ifTrue:[
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6740
                method argumentCount == 0 ifTrue:[
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6741
                    self perform: selector
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6742
                ] ifFalse:[
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6743
                    self proceedableError:'Hook for %1 may not have arguments'.
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6744
                ]
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6745
            ]
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6746
        ].
5d99d0f97a32 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24680
diff changeset
  6747
        cls := cls superclass.
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6748
    ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6749
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6750
    "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
  6751
    "Modified: / 27-11-2012 / 16:15:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  6752
    "Modified: / 24-05-2018 / 21:05:03 / Claus Gittinger"
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6753
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6754
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6755
loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6756
    self allClasses do:[:cls | cls autoload]
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6757
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6758
    "Created: / 21-08-2011 / 17:24:13 / cg"
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6759
!
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6760
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6761
loadAllClassesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6762
    "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
  6763
     install as autoloaded classes marked to be autoloaded.
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6764
     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
  6765
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6766
     Answer true, if classes have been loaded"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6767
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6768
    ^self loadAllClassesAsAutoloaded:asAutoloaded languages: ProgrammingLanguage all
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6769
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6770
    "Created: / 17-08-2006 / 01:01:14 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6771
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6772
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6773
    "Modified: / 19-06-2010 / 11:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6774
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6775
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6776
loadAllClassesAsAutoloaded:asAutoloaded languages: langs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6777
    "load (fileIn) classes in given languages that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6778
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6779
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6780
     langs should be collection of ProgrammingLanguage available in the system.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6781
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6782
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6783
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6784
    |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
  6785
     classesWhichFailedToLoad|
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6786
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6787
    platformName := OperatingSystem platformName.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6788
    classNamesToLoad := OrderedCollection new.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6789
    classNamesToAutoload := OrderedCollection new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6790
    classNamesToLangs := Dictionary new.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6791
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
  6792
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6793
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6794
	|eachClassnameSym isAutoload clsLangAttr clsLang cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6795
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6796
	eachClassnameSym := eachClassname asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6797
	isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6798
	clsLangAttr := eachAttributes detect:[:a| a isArray and: [a size == 2 and:[a first == #lang]]] ifNone:[nil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6799
	clsLang := clsLangAttr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6800
		    ifNil:[SmalltalkLanguage instance]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6801
		    ifNotNil:[ProgrammingLanguage named: clsLangAttr second ifNone:[nil]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6802
	classNamesToLangs at: eachClassname put: clsLang.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6803
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6804
	"no need to (re-)load an existing class, but install if should be loaded"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6805
	cls := Smalltalk loadedClassNamed:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6806
	((cls isNil or:[cls isLoaded not and:[isAutoload not]]) and:[clsLang notNil and:[langs includes: clsLang]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6807
	    (eachAttributes isEmpty
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6808
	     or:[(eachAttributes size == 1 and:[isAutoload])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6809
	     or:[(eachAttributes includes:platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6810
	     or:[eachAttributes contains:[:a| a isArray]]]]) "/FIXME: Hack."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6811
		ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6812
		    hasClassesToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6813
		    isAutoload ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6814
			classNamesToAutoload add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6815
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6816
			classNamesToLoad add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6817
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6818
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6819
	].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6820
    ].
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6821
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6822
    hasClassesToLoad ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6823
	loadedClasses := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6824
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6825
	self packageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6826
	    classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6827
		"required classes are missing.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6828
		 Autoloaded classes are considered as optional..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6829
		self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6830
		    error:(self name,'[error] cannot install because packageDirectory is unknown for missing classes: ', classNamesToLoad printString)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6831
		    mayProceed:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6832
		^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6833
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6834
	    (self name,'[info] cannot install autoloaded classes because packageDirectory is unknown') infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6835
	    ^ true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6836
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6837
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6838
	"we need the abbreviations, since sometimes there is no 1-to-1 mapping
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6839
	 of class name to file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6840
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6841
	Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6842
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6843
	"install autoloaded classes first,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6844
	 some others may depend on them"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6845
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6846
	classNamesToAutoload withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6847
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6848
		raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6849
		errorString: 'Autoloading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6850
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6851
	    self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName) .
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6852
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6853
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6854
	classesWhichFailedToLoad := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6855
	classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6856
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6857
		Transcript showCR:('  %1: filing in missing classes (%2) individually...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6858
				    bindWith:self name with:classNamesToLoad size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6859
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6860
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6861
	classNamesToLoad withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6862
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6863
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6864
		raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6865
		errorString: 'Loading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6866
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6867
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6868
		"maybe, fileIn failed, because the load order is wrong.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6869
		 Work around this by installing the class as autoloaded and
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6870
		 loading it"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6871
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6872
		classesWhichFailedToLoad add:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6873
		self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6874
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6875
		Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6876
		    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6877
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6878
		cls := self loadClass: eachClassName asAutoloaded: false language: (classNamesToLangs at: eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6879
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6880
		    loadedClasses add:cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6881
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6882
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6883
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6884
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6885
	classesWhichFailedToLoad do:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6886
	    (Smalltalk at:eachClassName) autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6887
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6888
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6889
	loadedClasses do:[:eachLoadedClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6890
	    "do not initialize, if initialize method is inherited"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6891
	    (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6892
		eachLoadedClass initialize
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6893
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6894
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6895
	^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6896
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6897
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6898
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6899
    "Modified: / 26-10-2006 / 12:30:01 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  6900
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6901
    "Created: / 19-06-2010 / 11:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6902
    "Modified: / 19-06-2010 / 15:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6903
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6904
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6905
loadClass: className asAutoloaded: asAutoloaded language: lang
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6906
    | packageDir classFile entry category numClassInstVars cls|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6907
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6908
    "Handle smalltalk classes specially to provide backward compatibility"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6909
    lang isSmalltalk ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6910
	entry := self abbrevs at: className ifAbsent:[nil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6911
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6912
	asAutoloaded ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6913
	    category := entry isNil ifTrue:[#autoloaded] ifFalse:[entry category].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6914
	    numClassInstVars := entry isNil ifTrue:[0] ifFalse:[entry numClassInstVars].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6915
	    cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6916
		installAutoloadedClassNamed: className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6917
		category: category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6918
		package: self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6919
		revision: nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6920
		numClassInstVars:numClassInstVars.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6921
	    entry notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6922
		cls setClassFilename:(entry fileName,'.st').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6923
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6924
	    ^ cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6925
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6926
	^ Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6927
	    fileInClass:className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6928
	    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6929
	    initialize:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6930
	    lazy:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6931
	    silent:true
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6932
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6933
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6934
    "For non-smalltalk language do"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6935
    asAutoloaded ifTrue:[^self error:'Only Smalltalk classes may be autoloaded (yet)'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6936
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6937
    packageDir := self packageDirectory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6938
    classFile := packageDir / ((Smalltalk fileNameForClass: className) , '.' , lang sourceFileSuffix).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6939
    classFile exists ifFalse:[^nil].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6940
    lang fileIn: classFile.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6941
    ^nil "FIXME: should return the class"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6942
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6943
    "Created: / 19-06-2010 / 09:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6944
    "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
  6945
    "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
  6946
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6947
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6948
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
  6949
    "try to load a binary class library
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  6950
     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
  6951
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6952
    |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
  6953
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6954
    self supportedOnPlatform ifFalse:[^ false].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6955
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6956
    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
  6957
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  6958
    (Smalltalk isClassLibraryLoaded:libraryName) ifTrue:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6959
        "already loaded"
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6960
        ^ true
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6961
    ].
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  6962
    Verbose ifTrue:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6963
        Transcript showCR:'  %1: loading classLibrary...' with:self name.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6964
    ].
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6965
    self activityNotification:'Loading classLibrary'.
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  6966
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  6967
    ^ 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
  6968
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6969
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6970
loadExtensions
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6971
    "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
  6972
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6973
    self supportedOnPlatform ifFalse:[^ false].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6974
    self hasAllExtensionsLoaded ifFalse:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6975
        self breakPoint:#cg.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6976
        Verbose ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6977
            Transcript showCR:'  %1: filing in extensions...' with:self name.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6978
        ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6979
        Smalltalk loadExtensionsForPackage:self package.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  6980
        ^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6981
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  6982
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6983
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6984
    "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
  6985
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  6986
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6987
loadExtensionsForLanguage: lang
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6988
    "load extension methods for given programming language"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6989
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6990
    | filename file |
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6991
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6992
    self supportedOnPlatform ifFalse:[^ self].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  6993
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6994
    filename := 'extensions.' , lang sourceFileSuffix.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6995
    file := self packageDirectory / filename.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6996
    file exists ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6997
	lang fileIn: file.
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6998
    ]
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6999
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7000
    "Created: / 17-08-2006 / 00:21:39 / cg"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7001
    "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
  7002
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7003
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7004
loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7005
    "load those packages which are required for loading.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7006
     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
  7007
     package is."
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7008
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7009
    |prereq|
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7010
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7011
    self supportedOnPlatform ifFalse:[^ self].
22186
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  7012
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  7013
    prereq := self effectiveMandatoryPreRequisites.
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7014
    prereq notEmpty ifTrue:[
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7015
        Verbose ifTrue:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7016
            Transcript showCR:'  %1 loading mandatory prerequisites...' with:self name.
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7017
        ].
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7018
        self loadPackages:prereq asAutoloaded:asAutoloaded
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7019
    ].
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7020
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7021
    "Modified (format): / 07-02-2019 / 14:23:00 / Claus Gittinger"
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7022
!
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7023
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7024
loadPackages:aListOfPackages asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7025
    "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
  7026
     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
  7027
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  7028
    Class withoutUpdatingChangesDo:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7029
	aListOfPackages do:[:eachPackageID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7030
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7031
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7032
	    cls := self definitionClassForPackage:eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7033
	    (cls isNil or:[cls isLoaded not or:[cls projectIsLoaded not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7034
		Smalltalk loadPackage:eachPackageID asAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7035
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7036
	].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7037
    ].
13166
aa93e348e5d3 changed: #loadPackages:asAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13154
diff changeset
  7038
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  7039
    "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
  7040
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7041
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7042
loadPreRequisitesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7043
    "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
  7044
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7045
    |prereq|
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7046
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7047
    prereq := self effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7048
    prereq notEmpty ifTrue:[
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7049
        Verbose ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7050
            Transcript showCR:'  %1 loading prerequisites...' with:self name.
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7051
        ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7052
        self loadPackages:prereq asAutoloaded:asAutoloaded
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7053
    ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7054
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7055
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7056
loadSubProjects
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7057
    "load other packages (at least the projectDefinitions and their extensions)"
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7058
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7059
    self loadSubProjectsAsAutoloaded:false.
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7060
    self effectiveSubProjects do:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7061
	|subDef|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7062
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7063
	subDef := self definitionClassForPackage:p.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7064
	subDef notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7065
	    subDef loadSubProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7066
	].
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7067
    ].
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7068
!
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7069
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7070
loadSubProjectsAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7071
    "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
  7072
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7073
    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
  7074
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7075
    "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
  7076
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7077
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7078
old_loadAllClassesAsAutoloaded:asAutoloaded
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7079
    "load (fileIn) classes that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7080
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7081
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7082
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7083
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7084
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7085
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7086
     classesWhichFailedToLoad|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7087
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7088
    platformName := OperatingSystem platformName.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7089
    classNamesToLoad := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7090
    classNamesToAutoload := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7091
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7092
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7093
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7094
	|eachClassnameSym isAutoload cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7095
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7096
	eachClassnameSym := eachClassname asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7097
	isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7098
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7099
	"no need to (re-)load an existing class, but install if should be loaded"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7100
	cls := Smalltalk loadedClassNamed:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7101
	(cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7102
	    (eachAttributes isEmpty
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7103
	     or:[(eachAttributes size == 1 and:[isAutoload])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7104
	     or:[eachAttributes includes:platformName]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7105
		hasClassesToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7106
		isAutoload ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7107
		    classNamesToAutoload add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7108
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7109
		    classNamesToLoad add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7110
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7111
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7112
	].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7113
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7114
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7115
    hasClassesToLoad ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7116
	loadedClasses := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7117
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7118
	self packageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7119
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7120
		error:(self name,'[error] cannot install because packageDirectory is unknown')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7121
		mayProceed:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7122
	    ^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7123
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7125
	"we need the abbreviations, since sometimes there is no 1-to-1 mapping
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7126
	 of class name to file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7127
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7128
	Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7129
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7130
	"install autoloaded classes first,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7131
	 some others may depend on them"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7132
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7133
	classNamesToAutoload withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7134
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7135
		raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7136
		errorString: 'Autoloading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7137
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7138
	    Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7139
		installAutoloadedClassNamed:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7140
		category:#autoloaded    "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7141
		package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7142
		revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7143
		numClassInstVars:0.     "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7144
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7145
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7146
	classesWhichFailedToLoad := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7147
	classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7148
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7149
		Transcript showCR:('  %1: filing in missing classes (%2) individually...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7150
				    bindWith:self name with:classNamesToLoad size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7151
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7152
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7153
	classNamesToLoad withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7154
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7155
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7156
		raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7157
		errorString: 'Loading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7158
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7159
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7160
		"maybe, fileIn failed, because the load order is wrong.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7161
		 Work around this by installing the class as autoloaded and
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7162
		 loading it"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7163
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7164
		classesWhichFailedToLoad add:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7165
		Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7166
		    installAutoloadedClassNamed:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7167
		    category:#autoloaded    "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7168
		    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7169
		    revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7170
		    numClassInstVars:0.     "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7171
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7172
		Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7173
		    Transcript showCR:('  %1: filing in %2...' bindWith:self name with:eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7174
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7175
		cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7176
			    fileInClass:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7177
			    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7178
			    initialize:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7179
			    lazy:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7180
			    silent:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7181
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7182
		    loadedClasses add:cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7183
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7184
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7185
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7186
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7187
	classesWhichFailedToLoad do:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7188
	    (Smalltalk at:eachClassName) autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7189
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7190
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7191
	loadedClasses do:[:eachLoadedClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7192
	    "do not initialize, if initialize method is inherited"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7193
	    (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7194
		eachLoadedClass initialize
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7195
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7196
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7197
	^ true.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7198
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7199
    ^ false.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7200
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7201
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7202
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7203
    "Created: / 19-06-2010 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7204
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7205
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7206
unloadAllClasses
20605
0976069c6263 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20604
diff changeset
  7207
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7208
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7209
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7210
unloadClassLibrary
20604
b648faace1ab #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20601
diff changeset
  7211
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7212
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7213
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7214
unloadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7215
    "unload other packages"
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7216
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7217
    self effectiveSubProjects do:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7218
	|subDef|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7219
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7220
	subDef := self definitionClassForPackage:p.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7221
	subDef notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7222
	    subDef unloadSubProjects.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7223
	    subDef unloadPackage.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7224
	].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7225
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7226
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7227
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7228
update:anAspectSymbol with:argument from:changedObject
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7229
    "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
  7230
     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
  7231
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7232
    (changedObject == self class and:[anAspectSymbol == #methodDictionary]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7233
	self projectIsLoaded:false.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7234
    ]
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7235
! !
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7236
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7237
!ProjectDefinition class methodsFor:'private-prerequisites'!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7238
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7239
addReferencesToClassesFromGlobalsIn:aSetOfClasses to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7240
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7241
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7242
    aSetOfClasses
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7243
	do:[:aClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7244
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7245
		addReferencesToClassesFromGlobalsInMethods:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7246
		    (aClass theNonMetaclass methodDictionary values
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7247
			reject:[:m | m isExtension])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7248
		to:usedClassReasons.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7249
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7250
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7251
		addReferencesToClassesFromGlobalsInMethods:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7252
		    (aClass theMetaclass methodDictionary values
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7253
			reject:[:m | m isExtension])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7254
		to:usedClassReasons.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7255
	].
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7256
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7257
    "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
  7258
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7259
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7260
addReferencesToClassesFromGlobalsInMethods:someMethods to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7261
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7262
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7263
    someMethods do:[:method |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7264
	|resources|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7265
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7266
	resources := method resources.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7267
	(resources isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7268
	or:[ ((resources includesKey:#'ignoreInPrerequisites') not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7269
	      and:[(resources includesKey:#'example') not])])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7270
	ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7271
	    method usedGlobals
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7272
		do:[:global |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7273
		    |globalsName usedClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7274
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7275
		    globalsName := global asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7276
		    usedClass := Smalltalk at:globalsName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7277
		    (usedClass notNil and:[usedClass isClass and:[usedClass isNameSpace not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7278
			usedClass name == globalsName ifTrue:[ "/ skip aliases
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7279
			    (usedClassReasons at:usedClass ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7280
				add:(usedClass name, ' - referenced by ', method mclass name,'>>',method selector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7281
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7282
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7283
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7284
	    ]
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7285
    ]
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7286
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7287
    "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
  7288
    "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
  7289
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7290
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7291
addReferencesToExtensionMethodsIn:someClasses to:usedMethodReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7292
    "helper for searchForPreRequisites: search for sends of a selector which
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7293
     is defined in an extension method (in the set of passed-in methods).
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7294
     If found, add the extension method and a reason string to usedReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7295
     This should find especially sends to extension methods from libcompat."
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7296
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7297
    |allRealExtensions|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7298
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7299
    "/ only care for methods which are not already implemented in an extension methods's superclass
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7300
    allRealExtensions := Smalltalk allExtensions
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7301
			    select:[:mthd |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7302
				|superClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7303
				superClass := mthd mclass superclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7304
				(superClass isNil or:[superClass whichClassIncludesSelector:mthd selector]) isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7305
			    ].
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7306
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7307
    someClasses do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7308
	eachClass instAndClassMethodsDo:[:method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7309
	    |resources extensionsSent|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7310
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7311
	    resources := method resources.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7312
	    (resources isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7313
	    or:[ ((resources includesKey:#'ignoreInPrerequisites') not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7314
		  and:[(resources includesKey:#'example') not])])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7315
	    ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7316
		extensionsSent := allRealExtensions select:[:ext | method messagesSent includes:ext selector].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7317
		extensionsSent do:[:eachExtensionMethod |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7318
		    (usedMethodReasons at:eachExtensionMethod ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7319
			add:(eachExtensionMethod selector, ' - sent by ', method mclass name,'>>',method selector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7320
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7321
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7322
	]
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7323
    ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7324
!
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7325
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7326
allMandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7327
    "answer all (recursive) mandatory prerequisite project ids of myself - in random order."
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7328
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7329
    ^ self allPreRequisites:#effectiveMandatoryPreRequisites.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7330
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7331
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7332
     stx_libbasic allMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7333
     stx_libbasic2 allMandatoryPreRequisites
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7334
     stx_libview2 allMandatoryPreRequisites
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7335
     stx_libcomp allMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7336
    "
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7337
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7338
    "Created: / 06-06-2016 / 12:19:39 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7339
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7340
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7341
allMandatoryPreRequisitesSorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7342
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7343
	^ self allPreRequisitesSorted:#effectiveMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7344
    ] on:Error do:[:ex |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7345
	(self confirm:(self name,' [warning]: cycle in prerequisites:' ,, Character cr, '    ', (ex parameter printStringWithSeparator:' -> ') ,, Character cr,  'Proceed with incomplete (mandatory) prerequites?'))
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7346
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7347
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7348
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7349
	^ self allPreRequisitesSorted:#mandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7350
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7351
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7352
    "Created: / 06-06-2016 / 12:20:40 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7353
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7354
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7355
allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7356
    "answer all (recursive) prerequisite project ids of myself - in random order."
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7357
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7358
    ^ self allPreRequisites:#effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7359
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7360
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7361
     stx_libbasic allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7362
     stx_libbasic2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7363
     stx_libview2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7364
     ubs_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7365
     ubs_application allPreRequisitesSorted
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7366
     exept_expecco_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7367
     exept_expeccoNET_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7368
     alspa_batch_application allPreRequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7369
    "Modified: / 13-04-2011 / 15:30:45 / sr"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7370
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7371
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7372
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7373
allPreRequisites:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7374
    "answer all (recursive) prerequisite project ids of myself - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7375
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7376
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7377
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7378
    result := self
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7379
        allPreRequisites:aSelector withParentDo:[:parent :prereq |
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7380
            prereq = self package ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7381
                Transcript showCR:'oops: %1 depends on itself' with:prereq
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7382
            ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7383
        ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7384
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7385
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7386
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7387
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7388
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7389
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7390
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7391
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7392
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7393
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7394
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7395
     alspa_batch_application allPreRequisites"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7396
    "Modified: / 13-04-2011 / 15:30:45 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7397
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7398
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7399
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7400
allPreRequisites:aSelector withParentDo:aBlock
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7401
    "answer all (recursive) prerequisite project ids of myself - in random order.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7402
     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
  7403
     then what ????"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7404
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7405
    |setOfAllPreRequisites toAdd|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7406
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7407
    setOfAllPreRequisites := Set new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7408
    toAdd := Set withAll:(self perform:aSelector).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7409
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7410
    "is a subproject really a prerequisite??
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7411
     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
  7412
     so the following line has been deleted.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7413
     Unfortunately the meaning of 'subproject' has never been well defined. SV."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7414
"/    toAdd addAll:self effectiveSubProjects.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7415
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7416
    [toAdd notEmpty] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7417
	|aPreRequisiteProjectID def|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7418
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7419
	aPreRequisiteProjectID := toAdd removeFirst.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7420
	(setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7421
	    setOfAllPreRequisites add:aPreRequisiteProjectID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7422
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7423
	    def := self definitionClassForPackage:aPreRequisiteProjectID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7424
	    def isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7425
		Transcript showCR:'ProjectDefinition ', aPreRequisiteProjectID, ' is missing - cannot find its preRequisites.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7426
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7427
		(def perform:aSelector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7428
		    select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7429
		    thenDo:[:eachSubPreRequisite |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7430
				Verbose == true ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7431
				    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' requires ', eachSubPreRequisite).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7432
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7433
				aBlock value:def value:eachSubPreRequisite.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7434
				toAdd add:eachSubPreRequisite
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7435
			   ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7436
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7437
		"but subprojects of our prerequisites are also prerequisites"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7438
"/ SV: - I don't think so. Either we need them, because they have classes being superclasses
19587
fe022912131e #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 19557
diff changeset
  7439
"/ or referenced. Or we include the explicitly. In both cases we do not need this code.
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7440
"/ 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
  7441
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7442
"/                def effectiveSubProjects
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7443
"/                    select:[:eachSubSubRequisite | eachSubSubRequisite ~= self package and:[ (setOfAllPreRequisites includes:eachSubSubRequisite) not ]]
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7444
"/                    thenDo:[:eachSubSubRequisite |
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7445
"/                                Verbose == true ifTrue:[
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7446
"/                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' hasSub ', eachSubSubRequisite).
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7447
"/                                ].
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7448
"/                                aBlock value:def value:eachSubSubRequisite.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7449
"/                                toAdd add:eachSubSubRequisite
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7450
"/                           ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7451
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7452
	]
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7453
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7454
    ^ setOfAllPreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7455
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7456
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7457
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7458
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7459
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7460
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7461
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7462
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7463
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7464
     alspa_batch_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7465
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7466
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7467
    "Created: / 13-04-2011 / 15:23:21 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7468
    "Modified: / 20-07-2012 / 18:29:31 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7469
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7470
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7471
allPreRequisitesSorted
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7472
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7473
	^ self allPreRequisitesSorted:#effectivePreRequisites
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7474
    ] on:Error do:[:ex |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7475
	(self confirm:(self name,' [warning]: cycle in prerequisites:' ,, Character cr, '    ', (ex parameter printStringWithSeparator:' -> ') ,, Character cr,  'Proceed with incomplete (only mandatory) prerequites?'))
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7476
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7477
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7478
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7479
	^ self allPreRequisitesSorted:#mandatoryPreRequisites
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7480
    ].
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7481
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7482
    "Modified: / 21-02-2017 / 17:53:35 / cg"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7483
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7484
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7485
allPreRequisitesSorted:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7486
    "answer all the prerequisites of this projects sorted in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7487
     the order they are needed.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7488
     Use this to e.g. compile packages in the dependency order"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7489
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7490
    |allPreRequisites orderedTuples sortedPackages|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7491
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7492
    orderedTuples := OrderedCollection new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7493
    allPreRequisites := self allPreRequisites:aSelector.
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7494
    allPreRequisites := allPreRequisites collect:[ :e | e asString ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7495
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7496
    "/JV@2013-03-13: Added asSortedCollection to make the order of packages
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7497
    "/as stable as possible. Makes merging of makefiles a lot easier.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7498
    allPreRequisites asSortedCollection do:[:eachPackageID |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7499
	|def preRequisites|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7500
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7501
	self assert:(eachPackageID ~= self package).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7502
	orderedTuples add:(Array with:eachPackageID with:self package).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7503
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7504
	def := self definitionClassForPackage:eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7505
	def isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7506
	    Transcript showCR:'Warning: no definition class for package: ', eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7507
	    ((self searchForPreRequisites: eachPackageID)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7508
		fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7509
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7510
	    preRequisites := def perform:aSelector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7511
	    preRequisites := preRequisites copyWithoutAll:def excludedFromPreRequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7512
	    preRequisites do:[:eachPrerequisitePackageID|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7513
		self assert:(eachPrerequisitePackageID ~= eachPackageID).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7514
		orderedTuples add:(Array with:eachPrerequisitePackageID with:eachPackageID).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7515
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7516
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7517
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7518
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  7519
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7520
	self halt:'something seems to depend upon itself'
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7521
    ].
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7522
    sortedPackages := orderedTuples topologicalSortStable: true.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7523
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7524
    "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
  7525
     but they are not added, if not present in the first place"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7526
    ^ sortedPackages select:[:eachProject| allPreRequisites includes:eachProject]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7527
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7528
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7529
     stx_libbasic allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7530
     stx_libbasic2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7531
     stx_libwidg2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7532
     exept_expecco allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7533
     alspa_batch_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7534
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7535
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7536
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7537
    "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
  7538
    "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
  7539
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7540
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7541
allPreRequisitesWithMandatorySorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7542
    "a list of all prerequisites (mandatory and non-mandatory,
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7543
     with the mandatory ones coming first and being sorted by dependency"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7544
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7545
    |pre mandatory|
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7546
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7547
    mandatory := self allMandatoryPreRequisitesSorted.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7548
    pre := OrderedSet withAll:mandatory.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7549
    self allPreRequisites do:[:each |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7550
	(mandatory includes:each) ifFalse:[ pre add: each ]
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7551
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7552
    ^ pre
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7553
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7554
    "Created: / 06-06-2016 / 14:30:25 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7555
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7556
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7557
allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7558
    "answer all (recursive) projects to which I refer - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7559
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7560
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7561
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7562
    result := self
24416
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7563
        allPreRequisites:#referencedPreRequisites withParentDo:[:parent :prereq |
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7564
            prereq = self package ifTrue:[
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7565
                Transcript showCR:'oops: %1 depends on itself' with:prereq
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7566
            ].
d9502594f66f #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 24342
diff changeset
  7567
        ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7568
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7569
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7570
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7571
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7572
     stx_libbasic allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7573
     stx_libbasic2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7574
     stx_libview2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7575
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7576
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7577
     exept_expecco_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7578
     exept_expeccoNET_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7579
     alspa_batch_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7580
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7581
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7582
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7583
effectiveMandatoryPreRequisites
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7584
    "get the preRequisites, that are not excluded, which are needed for loading
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7585
     and compiling (i.e. which must be present BEFORE)"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7586
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7587
    self mandatoryPreRequisites notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7588
	"this is a new subclass - avoid overhead"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7589
	^ OrderedSet new
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7590
	    addAll:self mandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7591
	    "/ addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7592
	    removeAllFoundIn:self excludedFromMandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7593
	    removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7594
	    yourself.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7595
    ].
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7596
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7597
    "I am an old subclass, where #preRequisites returns a plain array"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7598
    ^ Set new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7599
	addAll:self preRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7600
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7601
	removeAllFoundIn:self excludedFromMandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7602
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7603
	remove:self package ifAbsent:[];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7604
	yourself.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7605
!
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7606
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7607
effectivePreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7608
    "get the preRequisites, that are not excluded.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7609
     This method appears to be obsolete, because its functionality
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7610
     is now included in #preRequisites.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  7611
     But is to be kept for backward compatibilty with old existing subclasses."
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7612
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7613
    self mandatoryPreRequisites notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7614
	"this is a new subclass - avoid overhead"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7615
	^ self preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7616
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7617
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7618
    "I am an old subclass, where #preRequisites returns a plain array"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7619
    ^ Set new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7620
	addAll:self preRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7621
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7622
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7623
	remove:self package ifAbsent:[];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7624
	yourself.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7625
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7626
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7627
searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7628
    "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
  7629
     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
  7630
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
  7631
    ^ self searchForPreRequisites:self package
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7632
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7633
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7634
     self searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7635
     stx_libbasic3 searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7636
     bosch_dapasx_Application searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7637
     bosch_dapasx_pav_browser searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7638
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7639
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7640
    "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
  7641
    "Modified: / 07-08-2006 / 21:56:25 / fm"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7642
    "Modified: / 06-09-2011 / 08:30:43 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7643
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7644
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7645
searchForPreRequisites: packageId
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7646
    "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
  7647
     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
  7648
     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
  7649
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7650
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7651
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7652
    ^ self searchForPreRequisites: packageId withSubProjects:false
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7653
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7654
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7655
     self searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7656
     self searchForPreRequisites:#'stx:libwidg3'
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7657
     self searchForPreRequisites:#'stx:libtool'
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7658
     bosch_dapasx_Application searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7659
     bosch_dapasx_pav_browser searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7660
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7661
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7662
    "Modified: / 07-08-2006 / 21:56:25 / fm"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7663
    "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
  7664
    "Modified: / 06-09-2011 / 08:30:20 / cg"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7665
!
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7666
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7667
searchForPreRequisites:packageId withSubProjects:withSubProjectsBoolean
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7668
    "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
  7669
     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
  7670
     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
  7671
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  7672
     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
  7673
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7674
    |requiredClasses mandatoryClassesForLoadingWithReasons referencedClassesWithReasons
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7675
     ignoredPackages packageExtractionBlock mandatoryPackageReasons referencedPackageReasons referencedMethodsWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7676
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7677
    mandatoryClassesForLoadingWithReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7678
    referencedClassesWithReasons := Dictionary new.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7679
    referencedMethodsWithReasons := Dictionary new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7680
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7681
    "my classes are required"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7682
    requiredClasses := self searchForClassesWithProject: packageId.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7683
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7684
    withSubProjectsBoolean ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7685
	"my subproject's classes are required"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7686
	self effectiveSubProjects do:[:eachProjectName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7687
	    requiredClasses addAll:(self searchForClassesWithProject:eachProjectName asSymbol)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7688
	].
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  7689
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7690
16802
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  7691
    "/ ..but not if they're a Java class
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  7692
    requiredClasses := requiredClasses reject:[:each | each isJavaClass ].
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  7693
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7694
    "all superclasses of my classes
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7695
     and my subProject's classes (if required) are mandatory.
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  7696
     All shared pools used by my classes are required as well"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7697
    requiredClasses do:[:cls |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7698
	(self autoloaded_classNames includes:cls name) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7699
	    cls allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7700
		(mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7701
		    add: (eachSuperclass name, ' - superclass of ', cls name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7702
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7703
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7704
	cls sharedPools do:[:eachSharedPool |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7705
	    (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7706
		add: (eachSharedPool name, ' - shared pool used by ', cls name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7707
	    eachSharedPool allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7708
		(mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7709
		    add: (eachSuperclass name, ' - superclass of shared pool ', eachSharedPool name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7710
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7711
	]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7712
    ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7713
    "all classes for which I define extensions are mandatory"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7714
    self allExtensionClasses do:[:eachExtendedClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7715
	(mandatoryClassesForLoadingWithReasons at:eachExtendedClass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7716
	    add: (eachExtendedClass name, ' - extended').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7717
	eachExtendedClass allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7718
	    (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7719
		add: (eachSuperclass name, ' - superclass of extended ', eachExtendedClass name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7720
	]
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7721
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7722
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7723
    "all classes referenced by my classes or my subproject's classes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7724
     are required. But:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7725
	 only search for locals refered to by my methods (assuming that superclasses'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7726
	 prerequisites are specified in their package)."
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7727
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7728
    self addReferencesToClassesFromGlobalsIn:requiredClasses to:referencedClassesWithReasons.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7729
    self addReferencesToClassesFromGlobalsInMethods:(self searchForExtensionsWithProject:self package) to:referencedClassesWithReasons.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7730
    self addReferencesToExtensionMethodsIn:requiredClasses to:referencedMethodsWithReasons.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7731
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7732
    "now map classes to packages and collect the reasons"
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7733
    packageExtractionBlock :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7734
	[:classesWithReasons|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7735
	    |requiredPackageReasons|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7736
	    requiredPackageReasons := Dictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7737
	    classesWithReasons keysAndValuesDo:[:usedClass :reasonsPerClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7738
		(requiredPackageReasons at:usedClass package ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7739
				addAll:reasonsPerClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7740
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7741
	    "sort, to avoid differences from one generation to the next one"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7742
	    requiredPackageReasons
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7743
	].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7744
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7745
    mandatoryPackageReasons := packageExtractionBlock value:mandatoryClassesForLoadingWithReasons.
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7746
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7747
    referencedPackageReasons := packageExtractionBlock value:referencedClassesWithReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7748
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7749
    "and map extension method invocations to packages and collect the reasons"
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7750
    referencedMethodsWithReasons keysAndValuesDo:[:usedMethod :reasonsPerMethod |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7751
	(referencedPackageReasons at:usedMethod package ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7752
	    addAll:reasonsPerMethod.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7753
    ].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7754
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7755
    ignoredPackages := Set
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7756
	with:packageId
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7757
	with:PackageId noProjectID.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7758
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7759
    referencedPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7760
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7761
    referencedPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | referencedPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7762
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7763
    "don't put classes from subProjects into the required list"
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7764
    ignoredPackages addAll:(self siblingsAreSubProjects
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7765
				ifTrue:[ self searchForSiblingProjects ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7766
				ifFalse:[ self searchForSubProjects ]) asSet.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7767
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7768
    mandatoryPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7769
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  7770
    mandatoryPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | mandatoryPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7771
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7772
    ^ Array
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7773
	with:mandatoryPackageReasons
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7774
	with:referencedPackageReasons.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7775
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7776
    "
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7777
     self searchForPreRequisites:#'stx:libwidg3'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7778
     bosch_dapasx_Application searchForPreRequisites
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7779
     bosch_dapasx_pav_browser searchForPreRequisites
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7780
     self searchForPreRequisites:#'stx:goodies/json' withSubProjects:false
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7781
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7782
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7783
    "Modified: / 07-08-2006 / 21:56:25 / fm"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7784
    "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
  7785
    "Created: / 06-09-2011 / 08:29:37 / cg"
16802
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  7786
    "Modified: / 30-07-2014 / 20:33:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7787
    "Modified: / 21-02-2017 / 17:45:58 / cg"
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7788
! !
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7789
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7790
!ProjectDefinition class methodsFor:'queries'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  7791
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7792
allClassNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7793
    ^ self classNamesForWhich:[:nm :attr | true ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7794
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7795
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7796
allClasses
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7797
    ^ self allClassNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7798
	collect:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7799
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7800
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7801
	    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7802
	    cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7803
		Logger warning:'%1: failed to autoload class %2' with:self name with:nm
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7804
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7805
	    cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7806
	]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7807
	thenSelect:[:cls | cls notNil ].
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7808
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7809
    "Created: / 06-08-2011 / 15:47:36 / cg"
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7810
!
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  7811
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7812
allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7813
    "answer the set of classes, which are extended by the package.
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7814
     includes all superclasses of the extended classes"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7815
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7816
    ^ self extensionClassesWithSuperclasses:true
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7817
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7818
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7819
     stx_libboss allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7820
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7821
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7822
    "Created: / 06-09-2011 / 10:15:54 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7823
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7824
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7825
autoloaded_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7826
    "the opposite of compiled class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7827
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7828
    ^ self classNamesForWhich:[:nm :attr | attr notEmptyOrNil and:[attr includes:#autoload]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7829
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7830
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7831
    "Created: / 30-08-2007 / 18:48:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7832
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7833
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7834
canHaveExtensions
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7835
    "return true, if this class allows extensions from other packages.
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7836
     Private classes, namespaces and projectDefinitions don't allow this"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7837
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7838
    ^ self isAbstract
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7839
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7840
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7841
     Smalltalk allClasses select:[:each | each canHaveExtensions not]
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7842
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7843
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7844
    "Created: / 30-08-2006 / 15:29:49 / cg"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7845
!
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  7846
24680
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7847
classNamed:aClassName
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7848
    "answer one of my classes.
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7849
     This makes me look a bit like a namespace (which I am not currently);
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7850
     in preparation for a future require package mechanism..."
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7851
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7852
    ^ Smalltalk classNamed:aClassName
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7853
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7854
    "
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7855
     stx_libhtml classNames
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7856
     stx_libhtml classNamesAndAttributesAsSpecArray
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7857
    "
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7858
!
98f9006ee01e #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 24567
diff changeset
  7859
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7860
classNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7861
    "answer an array containing all the class names of the project's classes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7862
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7863
    ^ self classNamesAndAttributesAsSpecArray collect:[:entry | entry first].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7864
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7865
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7866
     stx_libhtml classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7867
     stx_libhtml classNamesAndAttributesAsSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7868
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7869
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7870
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7871
classNamesForWhich:aBlock
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7872
    "a correponding method with real names is generated in my subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7873
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7874
    |coll|
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7875
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7876
    coll := OrderedCollection new.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7877
    self classNamesAndAttributesDo:[:nm :attributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7878
	(aBlock value:nm value:attributes) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7879
	    coll add:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7880
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7881
    ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7882
    ^ coll
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7883
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7884
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7885
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7886
    "Modified: / 17-08-2006 / 20:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7887
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7888
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7889
classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7890
    "list my classes.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7891
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7892
     Use #classNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7893
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7894
    ^ self classNames collect:[:nm | Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7895
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7896
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7897
     stx_libbasic3 classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7898
     stx_libbasic3 classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7899
    "
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7900
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  7901
    "Modified: / 27-09-2011 / 18:12:33 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7902
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7903
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7904
compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7905
    "the opposite of autoloaded class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7906
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7907
    ^ self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[(attr includes:#autoload) not]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7908
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7909
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7910
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7911
    "Modified: / 21-08-2006 / 18:48:31 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  7912
    "Modified (comment): / 05-03-2012 / 12:21:23 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7913
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7914
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7915
compiled_classNamesForPlatform
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7916
    "answer the classes to be compiled only for the current platformName"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7917
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7918
    ^ self compiled_classNamesForPlatform:OperatingSystem platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7919
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7920
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7921
compiled_classNamesForPlatform:platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7922
    "answer the classes to be compiled only for platformName
17638
a2feeffaea64 osx stuff
Claus Gittinger <cg@exept.de>
parents: 17587
diff changeset
  7923
     platformName is one of #unix, #win32, #vms or #osx (OperatingSystem platformName)"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7924
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7925
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7926
	classNamesForWhich:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7927
	    (attr includes:#autoload) not and:[attr includes:platformName]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7928
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7929
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7930
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7931
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7932
    "Modified: / 09-10-2006 / 13:30:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7933
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7934
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7935
compiled_classNames_common
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7936
    "classes to be compiled for any platform"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7937
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7938
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7939
	classNamesForWhich:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7940
	    attr isEmptyOrNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7941
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7942
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7943
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7944
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7945
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7946
compiled_classNames_unix
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7947
    "class, only to be compiled under unix"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7948
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7949
    ^ self compiled_classNamesForPlatform:#unix.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7950
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7951
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7952
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7953
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7954
compiled_classNames_windows
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7955
    "class, only to be compiled under windows"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7956
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7957
    ^ self compiled_classNamesForPlatform:#win32.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7958
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7959
    "Created: / 18-08-2006 / 13:37:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7960
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  7961
17500
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7962
compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7963
    "list my classes for the current platform.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7964
     Project must be loaded - otherwise an error is reported here.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7965
     Use #classNames if you are only interested in the names"
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7966
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7967
    ^ self compiled_classNamesForPlatform collect:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7968
	    Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
17500
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7969
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7970
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7971
     stx_libbasic compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7972
     stx_libbasic classes
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7973
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7974
!
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  7975
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7976
extensionClasses
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7977
    "answer the set of classes, which are extended by the package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7978
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7979
    ^ self extensionClassesWithSuperclasses:false
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7980
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7981
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7982
     stx_libboss extensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7983
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7984
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7985
    "Modified: / 06-09-2011 / 10:21:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7986
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7987
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7988
extensionClassesWithSuperclasses:withSuperclassesBoolean
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7989
    "answer the set of classes, which are extended by the package"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  7990
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7991
    |classes|
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7992
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7993
    classes := IdentitySet new.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  7994
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7995
    self extensionMethodNames pairWiseDo:[:className :selector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7996
	|mthdCls extendedClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7997
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7998
	mthdCls := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7999
	(mthdCls notNil and:[mthdCls isLoaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8000
	    extendedClass := mthdCls theNonMetaclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8001
	    (classes includes:extendedClass) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8002
		withSuperclassesBoolean ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8003
		    extendedClass withAllSuperclassesDo:[:eachClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8004
			classes add:eachClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8005
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8006
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8007
		    classes add:extendedClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8008
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8009
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8010
	].
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8011
    ].
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8012
    ^ classes.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8013
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8014
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8015
	stx_libboss extensionClasses
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8016
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8017
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8018
    "Created: / 06-09-2011 / 10:17:06 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8019
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8020
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8021
extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8022
    "list my extension methods.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8023
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8024
     Use #extensionMethodsNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8025
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8026
    ^ self extensionMethodNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8027
	pairWiseCollect:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8028
	    (Smalltalk classNamed:className) compiledMethodAt:selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8029
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8030
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8031
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8032
     stx_libbasic2 extensionMethodNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8033
     stx_libbasic2 extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8034
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8035
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8036
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8037
extensionPackages
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8038
    "answer the set of packages, which are extended by this package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8039
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8040
    ^ self allExtensionClasses collect:[:eachClass| eachClass package]
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8041
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8042
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8043
	stx_libboss extensionPackages
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8044
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8045
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8046
    "Modified: / 06-09-2011 / 10:20:47 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8047
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8048
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8049
hasAllClassesFullyLoaded
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  8050
    "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
  8051
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8052
    ^ self hasAllClassesLoaded:true
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8053
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8054
    "Created: / 25-10-2006 / 16:08:25 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8055
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8056
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8057
hasAllClassesLoaded
10205
33fadd7b4fd1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10203
diff changeset
  8058
    "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
  8059
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8060
    ^ self hasAllClassesLoaded:false
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8061
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8062
    "Modified: / 25-10-2006 / 16:08:11 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8063
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8064
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8065
hasAllClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8066
    "check if all classes for this platform are present.
12421
67898c88eceb comment/format in: #hasAllClassesLoaded:
Claus Gittinger <cg@exept.de>
parents: 12416
diff changeset
  8067
     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
  8068
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8069
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8070
	    hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[ attr includes:#autoload]])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8071
	    loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8072
    and:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8073
	self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8074
	    hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8075
	    loaded:checkIfFullyLoaded ]
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8076
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8077
    "Modified: / 07-11-2006 / 11:47:30 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8078
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8079
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8080
hasAllCompiledClassesFullyLoaded
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8081
    "return true, if all compiled classes are present and loaded"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8082
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8083
    ^ self hasAllCompiledClassesLoaded:true
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8084
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8085
    "Created: / 07-11-2006 / 11:48:02 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8086
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8087
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8088
hasAllCompiledClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8089
    "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
  8090
     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
  8091
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8092
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8093
	    hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8094
	    loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8095
    and:[
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8096
       self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8097
	    hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8098
	    loaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8099
    ]
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8100
!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8101
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8102
hasAllExtensionsLoaded
10203
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  8103
    "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
  8104
     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
  8105
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  8106
    (self extensionMethodNames ? #()) pairWiseDo:[:className :selector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8107
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8108
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8109
	cls := Smalltalk loadedClassNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8110
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8111
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8112
		Transcript showCR:(self name,' missing extension class "',className,'".').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8113
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8114
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8115
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8116
	"there is no possibility that we installed an extension method in an unloaded class"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8117
	(cls isLoaded not or:[(cls compiledMethodAt:selector) isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8118
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8119
		Transcript showCR:(self name,' missing extension method "',className,'>>',selector,'".').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8120
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8121
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8122
	].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8123
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8124
    ^ true.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8125
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8126
    "Created: / 17-08-2006 / 00:50:01 / cg"
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8127
    "Modified: / 25-10-2006 / 00:01:10 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8128
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8129
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8130
hasClasses:classNames loaded:checkIfFullyLoaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8131
    "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
  8132
     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
  8133
     are not considered"
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8134
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8135
    classNames do:[:eachClassName |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8136
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8137
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8138
	cls := Smalltalk loadedClassNamed:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8139
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8140
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8141
	       (self name, ' [info]: missing class: ', eachClassName) infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8142
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8143
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8144
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8145
	(checkIfFullyLoaded and:[cls isLoaded not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8146
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8147
		(self name,' [info]: unloaded class: ', eachClassName) infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8148
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8149
	    ^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8150
	].
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8151
    ].
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8152
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8153
    ^ true
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8154
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8155
9906
9efd21c9b1b6 hasExtensions is a bad name (conflicts with the other query)
Claus Gittinger <cg@exept.de>
parents: 9904
diff changeset
  8156
hasExtensionMethods
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8157
    ^ self extensionMethodNames notEmpty
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8158
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8159
    "Created: / 14-09-2006 / 14:19:35 / cg"
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  8160
!
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  8161
12369
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8162
hasPostLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8163
    "/ true if postLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8164
    ^ (self class whichClassIncludesSelector:#postLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8165
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8166
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8167
hasPostUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8168
    "/ true if postUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8169
    ^ (self class whichClassIncludesSelector:#postUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8170
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8171
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8172
hasPreLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8173
    "/ true if preLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8174
    ^ (self class whichClassIncludesSelector:#preLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8175
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8176
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8177
hasPreUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8178
    "/ true if preUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8179
    ^ (self class whichClassIncludesSelector:#preUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8180
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8181
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8182
isAbstract
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8183
    ^ self == ProjectDefinition
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8184
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8185
    "Modified (format): / 20-08-2011 / 22:47:46 / cg"
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8186
!
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8187
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8188
isAutoloaded:aClassOrClassName
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8189
    |className|
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8190
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8191
    className := aClassOrClassName isBehavior
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8192
		    ifTrue:[ aClassOrClassName theNonMetaclass name ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8193
		    ifFalse:[ aClassOrClassName ].
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8194
    ^ self autoloaded_classNames includes:className
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8195
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8196
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8197
     'stx:goodies/soap/xe/tests' asPackageId projectDefinitionClass
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8198
	isAutoloaded:#'SOAP::XeAllTests'
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8199
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8200
!
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8201
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8202
isFullyLoaded
16160
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  8203
    "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
  8204
     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
  8205
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8206
    ^ self hasAllCompiledClassesFullyLoaded
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  8207
    and:[self hasAllClassesLoaded and:[self hasAllExtensionsLoaded]]
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8208
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8209
    "Created: / 24-10-2006 / 23:52:23 / cg"
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8210
    "Modified: / 20-08-2011 / 22:47:16 / cg"
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8211
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8212
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8213
projectType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8214
    ^ self subclassResponsibility
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8215
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8216
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8217
reasonForNotSupportedOnPlatform
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8218
    "answer a reason string, why the package is not supported on this platform
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8219
     (if it is not, i.e. if supportedByPlatform returns false)"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8220
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8221
    ^ 'not supported by this OS-platform'
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8222
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8223
    "Created: / 07-02-2019 / 14:21:54 / Claus Gittinger"
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8224
!
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8225
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8226
supportedOnPlatform
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8227
    "answer false, if this package is not suitable for
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8228
     the current platform. The default here returns true.
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8229
     Only to be redefined in packages which are definitely not valid
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8230
     for the given platform. For example, the OLE package is only
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8231
     usable under windows"
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8232
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8233
    ^ true
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8234
!
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8235
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8236
whoReferences:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8237
    "answer, which package references directly or indirectly a package defined by aPackageString"
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8238
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8239
    |referrers|
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8240
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8241
    referrers := OrderedCollection new.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8242
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8243
    self allSubclassesDo:[:eachPackageDefinitionClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8244
	(eachPackageDefinitionClass allPreRequisites includes:aPackageString) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8245
	    referrers add:eachPackageDefinitionClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8246
	]
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8247
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8248
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8249
    ^ referrers.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8250
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8251
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8252
      self whoReferences:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8253
      self whoReferences:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8254
      self whoReferences:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8255
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8256
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8257
    "Modified (format): / 02-08-2017 / 18:38:27 / cg"
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8258
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8259
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8260
whoReferencesSorted:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8261
    "answer, which package references directly or indirectly a package define by aPackageString.
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8262
     Sort the result, so that the most direct referrers are at the top"
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8263
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8264
    |referers orderedTuples sortedPackages|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8265
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8266
    referers := self whoReferences:aPackageString.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8267
    orderedTuples := OrderedCollection new.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8268
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8269
    referers do:[:eachProjectDefinition |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8270
	|preRequisites|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8271
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8272
	preRequisites := eachProjectDefinition effectivePreRequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8273
	preRequisites do:[:eachPrerequisitePackageID|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8274
	    |eachPrerequisitePackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8275
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8276
	    eachPrerequisitePackage := self definitionClassForPackage:eachPrerequisitePackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8277
	    (referers includes:eachPrerequisitePackage) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8278
		orderedTuples add:(Array with:eachPrerequisitePackage with:eachProjectDefinition).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8279
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8280
	].
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8281
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8282
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8283
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8284
	self halt:'something seems to depend upon itself'
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8285
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8286
    sortedPackages := orderedTuples topologicalSortStable: true.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8287
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8288
    ^ sortedPackages.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8289
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8290
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8291
      self whoReferencesSorted:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8292
      self whoReferencesSorted:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8293
      self whoReferencesSorted:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8294
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8295
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8296
    "Modified (comment): / 02-08-2017 / 18:38:03 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8297
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8298
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8299
!ProjectDefinition class methodsFor:'queries-privacy'!
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8300
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8301
showClassDocumentationOf:aClass
12198
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8302
    "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
  8303
     or hidden.
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8304
     (used for expecco, to suppress documentation of workflow- and expecco classes
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8305
     in the expecco-class browser)"
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8306
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8307
    ^ true
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8308
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8309
    "Created: / 05-11-2007 / 16:44:16 / cg"
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8310
! !
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8311
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8312
!ProjectDefinition class methodsFor:'sanity checks'!
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8313
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8314
validateDescription
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8315
    "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
  8316
     called before checking in build support files.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8317
     Somewhat obsolete: use the ProjectChecker, which does more checks"
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8318
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8319
    |emptyProjects nonProjects emptyOrNonProjects classesInImage
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8320
     classesInDescription onlyInImage onlyInDescription missingPools myPackage|
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8321
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8322
    emptyProjects := Set withAll:self effectiveSubProjects.
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8323
    Smalltalk allClassesDo:[:cls |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8324
	emptyProjects remove:(cls package) ifAbsent:[].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8325
    ].
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8326
    nonProjects := self effectiveSubProjects select:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8327
		    (self definitionClassForPackage: p) isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8328
		   ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8329
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8330
    emptyOrNonProjects := Set withAll:emptyProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8331
    emptyOrNonProjects addAll:nonProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8332
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8333
    emptyOrNonProjects notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8334
	(Dialog
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8335
	    confirm:('The following subprojects are non-existent, empty or without description:\\    '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8336
		    , ((emptyOrNonProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8337
			    asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8338
				collect:[:p | p allBold])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8339
				asStringWith:'\    ')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8340
		    , '\\Continue ?') withCRs
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8341
	    yesLabel:'OK' noLabel:'Cancel')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8342
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8343
	    AbortSignal raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8344
	].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8345
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8346
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8347
    myPackage := self package.
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8348
    classesInImage := Smalltalk allClasses select:[:cls | (cls package == myPackage) and:[cls isPrivate not]].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8349
    "/ classesInDescription := self classes asIdentitySet.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8350
    classesInDescription := IdentitySet new.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8351
    ((self compiled_classNamesForPlatform:(OperatingSystem platformName))
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8352
    , (self compiled_classNames_common)
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8353
    , (self autoloaded_classNames)) do:[:nm |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8354
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8355
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8356
	cls := Smalltalk at:nm asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8357
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8358
	    (self autoloaded_classNames includes:nm) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8359
		Transcript showCR:'missing autoloaded class: ',nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8360
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8361
		self proceedableError:('missing class: ',nm).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8362
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8363
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8364
	    classesInDescription add:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8365
	]
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8366
    ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8367
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8368
    missingPools := Set new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8369
    classesInDescription do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8370
	eachClass sharedPoolNames do:[:eachPoolName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8371
	    |pool|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8372
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8373
	    pool := eachClass nameSpace classNamed:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8374
	    pool isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8375
		eachClass nameSpace ~~ Smalltalk ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8376
		    pool := Smalltalk classNamed:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8377
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8378
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8379
	    pool isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8380
		Transcript showCR:'missing pool: ',eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8381
		missingPools add:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8382
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8383
		pool isSharedPool ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8384
		    Transcript showCR:'not a shared pool: ',eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8385
		    missingPools add:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8386
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8387
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8388
	].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8389
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8390
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8391
    missingPools notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8392
	(Dialog
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8393
	    confirm:('The following sharedpools are non-existent, or not pools:\\    '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8394
		    , ((missingPools
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8395
			    asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8396
				collect:[:p | p allBold])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8397
				asStringWith:'\    ')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8398
		    , '\\Continue ?') withCRs
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8399
	    yesLabel:'OK' noLabel:'Cancel')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8400
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8401
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8402
	].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8403
    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8404
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8405
"/ also found by ProjectChecker...
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8406
    classesInImage ~= classesInDescription ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8407
	onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8408
	onlyInImage notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8409
	    Transcript show:self name; show:': only in image: '; showCR:onlyInImage
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8410
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8411
	onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8412
	onlyInDescription notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8413
	    Transcript show:self name; show:': only in description: '; showCR:onlyInDescription
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8414
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8415
	(Dialog confirm:'The set of classes in the image is different from the listed classes in the project definition.\\Proceed?' withCRs) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8416
	    AbortOperationRequest raiseRequest
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8417
	]
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8418
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8419
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8420
"/    self validateOrderOfClasses
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8421
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8422
    "
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8423
     exept_expecco_application validateDescription
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8424
     squeak_vmMaker validateDescription
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8425
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8426
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8427
    "Modified: / 06-03-2012 / 11:31:37 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  8428
    "Modified: / 17-01-2017 / 16:33:56 / stefan"
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  8429
    "Modified: / 24-05-2018 / 21:05:15 / Claus Gittinger"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8430
!
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8431
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8432
validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8433
    "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
  8434
     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
  8435
     and superclasses must be compiled before subclasses (for the header files).
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8436
     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
  8437
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8438
    |classesInDescriptionInOrder classesInProject already|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8439
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8440
    classesInDescriptionInOrder := OrderedCollection new.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8441
    classesInDescriptionInOrder :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8442
	self compiled_classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8443
	    collect:[:eachName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8444
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8445
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8446
		cls := Smalltalk at:eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8447
		self assert:cls notNil message:'missing class: ',eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8448
		cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8449
	    ].
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8450
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8451
    classesInProject := classesInDescriptionInOrder asSet.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8452
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8453
    already := Set new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8454
    classesInDescriptionInOrder do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8455
	eachClass allSuperclassesDo:[:superclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8456
	    (classesInProject includes:superclass) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8457
		"/ if in the set, it must have been already listed
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8458
		self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8459
		    assert:(already includes:superclass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8460
		    message:('superclass "%1" not compiled before "%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8461
				    bindWith:superclass name
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8462
				    with:eachClass name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8463
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8464
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8465
	already add:eachClass.
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8466
    ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8467
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8468
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8469
     stx_goodies_refactoryBrowser_lint validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8470
     squeak_vmMaker validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8471
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8472
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8473
    "Created: / 05-03-2012 / 12:18:45 / cg"
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8474
! !
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8475
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8476
!ProjectDefinition class methodsFor:'testing'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8477
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8478
isApplicationDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8479
    "true iff an application-package (i.e. not a library).
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8480
     Applications have a main and startup for standalon start"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8481
     
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8482
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8483
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8484
    "Created: / 23-08-2006 / 15:17:32 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8485
    "Modified: / 20-09-2006 / 14:59:56 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8486
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8487
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8488
isConsoleApplication
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8489
    "Used with WIN32 only (i.e. affects bc.mak).
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8490
     Return true, if this is a console application.
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8491
     Console applications have stdout and stderr and open up a command-window
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8492
     when started. Only console applications can interact with the user in the
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8493
     command line window."
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8494
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8495
    ^ false
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8496
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8497
    "Created: / 20-09-2006 / 14:59:49 / cg"
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8498
    "Modified (comment): / 06-06-2018 / 15:17:21 / Claus Gittinger"
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8499
!
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8500
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8501
isFolderForProjectsDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8502
    "true iff an 'empty' project which only holds subprojects,
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8503
     but no own classes. Examples are stx, exept, etc."
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8504
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8505
    ^ false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8506
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8507
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8508
isGUIApplication
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8509
    "true iff a GUI application.
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8510
     Will include startup code to open a display"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8511
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8512
    ^ false
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8513
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8514
    "Created: / 20-09-2006 / 14:59:49 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8515
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8516
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8517
isLibraryDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8518
    "true iff a library.
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8519
     Will NOT include startup code, and can only be loaded into or
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8520
     linked with an application"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8521
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8522
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8523
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8524
    "Created: / 23-08-2006 / 15:17:46 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8525
    "Modified: / 20-09-2006 / 15:00:00 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8526
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8527
25343
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8528
isPluginDefinition
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8529
    "needed in checkForBadReferences"
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8530
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8531
    ^ false
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8532
!
92613f039ffe #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 25289
diff changeset
  8533
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8534
isProjectDefinition
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8535
    "concrete i.e. not abstract"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8536
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8537
    ^ self isAbstract not
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8538
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8539
    "Created: / 10-08-2006 / 16:24:02 / cg"
13285
bd6b2a49c8af comment
Claus Gittinger <cg@exept.de>
parents: 13251
diff changeset
  8540
    "Modified: / 08-02-2011 / 10:03:49 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8541
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8542
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8543
!ProjectDefinition::AbbrevEntry methodsFor:'accessing'!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8544
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8545
category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8546
    ^ category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8547
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8548
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8549
className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8550
    ^ className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8551
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8552
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  8553
className:classNameArg fileName:fileNameArg category:categoryArg numClassInstVars:numClassInstVarsArg
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8554
    className := classNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8555
    fileName := fileNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8556
    category := categoryArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8557
    numClassInstVars := numClassInstVarsArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8558
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8559
    "Created: / 18-08-2011 / 14:18:30 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8560
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8561
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8562
fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8563
    ^ fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8564
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8565
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8566
numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8567
    ^ numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8568
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8569
    "Created: / 18-08-2011 / 14:18:37 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8570
! !
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8571
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8572
!ProjectDefinition::ApplicationDocumentTypeDescription class methodsFor:'documentation'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8573
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8574
documentation
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8575
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8576
    for deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8577
    on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8578
    This is used eg. for double-clicking on a document in OSX.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8579
    If the deployed app can/should handle this, redefine the
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8580
    applicatinDocumentTypeDescriptions / applicatinDocumentTypeDescriptionsOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8581
    methods in the projectDefinition to return a collection of instances of me.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8582
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8583
    [author:]
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8584
	cg
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8585
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8586
    For example:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8587
	mimeType:  'application/x-expecco-testsuite
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8588
	extension: 'ets'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8589
	typeName:  'expecco test suite'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8590
	iconFileWindows:  'expeccoSuite.ico'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8591
	iconFileOSX:      'expeccoSuite.icns'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8592
	roleOSX:          'Editor'
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8593
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8594
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8595
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8596
!ProjectDefinition::ApplicationDocumentTypeDescription methodsFor:'accessing'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8597
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8598
extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8599
    "the extension of the document"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8600
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8601
    ^ extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8602
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8603
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8604
extension:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8605
    "the extension of the document"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8606
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8607
    extension := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8608
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8609
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8610
iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8611
    ^ iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8612
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8613
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8614
iconFileLinux:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8615
    iconFileLinux := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8616
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8617
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8618
iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8619
    ^ iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8620
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8621
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8622
iconFileOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8623
    iconFileOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8624
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8625
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8626
iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8627
    ^ iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8628
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8629
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8630
iconFileWindows:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8631
    iconFileWindows := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8632
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8633
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8634
mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8635
    ^ mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8636
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8637
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8638
mimeType:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8639
    mimeType := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8640
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8641
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8642
roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8643
    ^ roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8644
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8645
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8646
roleOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8647
    roleOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8648
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8649
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8650
typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8651
    "something like 'foo Document';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8652
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8653
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8654
    ^ typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8655
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8656
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8657
typeName:aString
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8658
    "aString like 'foo Document';
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8659
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8660
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8661
    typeName := aString.
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8662
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  8663
    "Modified (comment): / 24-02-2017 / 09:37:26 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8664
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8665
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  8666
!ProjectDefinition class methodsFor:'documentation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  8667
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8668
version
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  8669
    ^ '$Header$'
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8670
!
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  8671
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  8672
version_CVS
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  8673
    ^ '$Header$'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8674
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8675
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8676
version_SVN
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  8677
    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  8678
! !
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  8679
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  8680
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  8681
ProjectDefinition initialize!