ProjectDefinition.st
author Stefan Vogel <sv@exept.de>
Tue, 12 Mar 2019 15:44:27 +0100
changeset 23866 75b931b9ed4e
parent 23865 6dacda4be899
child 24342 e1077b14f110
permissions -rw-r--r--
#BUGFIX by stefan Ups
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     1
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
     3
	      All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     4
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     5
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     6
 only in accordance with the terms of that license and with the
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     8
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
     9
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    10
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    11
"
9671
cb20763db715 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9667
diff changeset
    12
"{ Package: 'stx:libbasic' }"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    13
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    14
"{ NameSpace: Smalltalk }"
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    15
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    16
Object subclass:#ProjectDefinition
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    17
	instanceVariableNames:''
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    18
	classVariableNames:'AbbrevDictionary AccessLock FolderForSubApplicationsType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    19
		GUIApplicationType LibraryType NonGUIApplicationType
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
    20
		PackagesBeingLoaded Verbose'
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    21
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    22
	category:'System-Support-Projects'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    23
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
    24
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
    25
ProjectDefinition class instanceVariableNames:'safeForOverwrittenMethods extensionOverwriteInfo projectIsLoaded'
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    26
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    27
"
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    28
 No other class instance variables are inherited by this class.
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
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
    31
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    32
Object subclass:#AbbrevEntry
17289
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    33
	instanceVariableNames:'className fileName category numClassInstVars'
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    34
	classVariableNames:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    35
	poolDictionaries:''
9df64c66192f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17253
diff changeset
    36
	privateIn:ProjectDefinition
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    37
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
    38
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    39
Object subclass:#ApplicationDocumentTypeDescription
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    40
	instanceVariableNames:'extension iconFileOSX mimeType typeName iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    41
		iconFileLinux roleOSX'
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    42
	classVariableNames:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    43
	poolDictionaries:''
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    44
	privateIn:ProjectDefinition
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    45
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
    46
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
    47
!ProjectDefinition class methodsFor:'documentation'!
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    48
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    49
buildingMakefiles
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    50
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    51
    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
    52
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    53
    redefinable build-file attributes:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    54
	stcOptimizationOptions  -> STCLOCALOPT
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    55
	stcWarningOptions       -> STCLOCALOPT
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    56
	localIncludes_unix      -> LOCALINCLUDES (Make.proto)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    57
	localIncludes_win32     -> LOCALINCLUDES (bc.mak)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    58
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    59
    for applications:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    60
	startupClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    61
	startupSelector
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    62
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
    63
    for libraries:
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    64
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    65
"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    66
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    67
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    68
copyright
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    69
"
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    70
 COPYRIGHT (c) 2006 by eXept Software AG
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    71
	      All Rights Reserved
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    72
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    73
 This software is furnished under a license and may be used
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    74
 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
    75
 inclusion of the above copyright notice.   This software may not
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    76
 be provided or otherwise made available to, or used by, any
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    77
 other person.  No title to or ownership of the software is
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    78
 hereby transferred.
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
    79
"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    80
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    81
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    82
documentation
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
    83
"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
    84
    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
    85
    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
    86
    attributes are implemented as class methods.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
    87
    (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
    88
     ... 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
    89
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    90
    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
    91
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    92
    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
    93
    information about the versioning and packaging.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
    94
    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
    95
    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
    96
    section 'Build Support Files' below).
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    97
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
    98
    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
    99
    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
   100
	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
   101
	2) the ProjectDefinition class is registered and initialized.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   102
	3) the ProjectDefinition class is asked to load its prerequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   103
	   This may recursively lead to other packages to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   104
	   - 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
   105
	4) the remaining classes and extensions of the package are registered
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
   106
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   107
    ## Some special notes about extension methods:
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   108
      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
   109
      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
   110
      methods in its safe(ForOverwrittenMethods).
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   111
      Thus, if the other package or any of its classes is asked
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   112
      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
   113
      its repository while it has an overriding extension loaded).
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   114
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   115
      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
   116
      extensionOverwriteInfo.
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   117
      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
   118
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   119
    ## Build Support Files
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   120
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   121
    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
   122
    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
   123
    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
   124
    does (should) care for this.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   125
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
   126
    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
   127
    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
   128
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   129
	* 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
   130
	  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
   131
	* 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
   132
	  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
   133
	  remark below.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   134
	* 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
   135
	  generated at all.
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   136
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   137
    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
   138
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   139
    REMARK: CAUTION:
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
   140
    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
   141
    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
   142
    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
   143
    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
   144
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   145
    ## 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
   146
20986
3758c77e6af0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20985
diff changeset
   147
    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
   148
      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
   149
      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
   150
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   151
    ### 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
   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
    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
   154
    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
   155
    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
   156
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   157
    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
   158
    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
   159
    #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
   160
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   161
    ### 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
   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
    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
   164
    <file:target:> or <file:target:extends:> annotation. For example,
20624
36a96279296c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20605
diff changeset
   165
    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
   166
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   167
    additionalRuleAnt_make_dot_proto
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   168
	<file: 'Make.proto' target: 'ant' extends: 'pre_objs' >
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   169
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   170
	^ '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   171
	java:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   172
		ant -f java/build.xml
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   173
	'
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   174
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   175
    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
   176
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   177
	* file: <String> - name of the file in which to include
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   178
	  the rule. Currently only two values are valid:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   179
	  'Make.proto' and 'bc.mak'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   180
	* target: <String> - name of the target'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   181
	* extends: <String> - optional name of the target that this additional
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   182
	  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
   183
	  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
   184
	  (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
   185
	  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
   186
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   187
    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
   188
    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
   189
    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
   190
    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
   191
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   192
    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
   193
    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
   194
    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
   195
    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
   196
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   197
    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
   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
    #### 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
   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
    Make.proto:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   202
	all
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   203
	clean
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   204
	...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
   205
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
   206
    bc.mak
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   207
	ALL
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   208
	clean
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   209
	...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
   210
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   211
"
9553
0ba9e1ed1aee *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9551
diff changeset
   212
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   213
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   214
!ProjectDefinition class methodsFor:'instance creation'!
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   215
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   216
definitionClassForMonticelloPackage:aMonicelloPackagename
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   217
    ^ self definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:false
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   218
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   219
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   220
     self definitionClassForMonticelloPackage:'foobar'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   221
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   222
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   223
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   224
definitionClassForMonticelloPackage:aMonicelloPackagename createIfAbsent:createIfAbsent
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   225
    ^ self allSubclasses
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   226
        detect:[:eachProjectDefinition |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   227
            eachProjectDefinition monticelloPackageName = aMonicelloPackagename ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   228
        ifNone:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   229
            |dfn squeakPackageInfo|
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   230
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   231
            createIfAbsent ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   232
                dfn := ApplicationDefinition
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   233
                    definitionClassForPackage:'mc:',aMonicelloPackagename createIfAbsent:true projectType:GUIApplicationType.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   234
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   235
                "/ if the squeak-stuff is loaded, use it.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   236
                PackageInfo notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   237
                    squeakPackageInfo := PackageInfo allSubclasses
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   238
                                            detect:[:pi | pi new packageName = aMonicelloPackagename] ifNone:nil.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   239
                ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   240
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   241
                squeakPackageInfo notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   242
                    dfn classNames:(squeakPackageInfo new classes collect:[:each | each name]).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   243
                ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   244
            ] ifFalse:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   245
                nil
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   246
            ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   247
        ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   248
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   249
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   250
     self definitionClassForMonticelloPackage:'foobar'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   251
     self definitionClassForMonticelloPackage:'foobar' createIfAbsent:true
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   252
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   253
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   254
    "Modified: / 30-10-2010 / 00:26:07 / cg"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   255
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   256
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   257
definitionClassForPackage:aPackageID
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   258
    "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
   259
     Return it, or nil if not present"
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   260
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   261
    ^ self definitionClassForPackage:aPackageID createIfAbsent:false
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   262
17025
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   263
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   264
     ProjectDefinition definitionClassForPackage:'stx:libbasic'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   265
     ProjectDefinition definitionClassForPackage:'stx:libfoobarBaz'
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   266
    "
3f7a69ad82f9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16911
diff changeset
   267
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   268
    "Modified: / 17-08-2006 / 14:33:35 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   269
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   270
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   271
definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   272
    ^ self definitionClassForPackage:aPackageID createIfAbsent:doCreateIfAbsent projectType:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   273
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   274
    "Modified: / 23-08-2006 / 14:29:15 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   275
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   276
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   277
definitionClassForPackage: aPackageID createIfAbsent: doCreateIfAbsent projectType:typeOrNil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   278
    |packageDefinitionClassName class|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   279
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   280
    packageDefinitionClassName := self projectDefinitionClassNameForDefinitionOf:aPackageID.
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   281
    class := Smalltalk classNamed:packageDefinitionClassName.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   282
    class isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   283
	doCreateIfAbsent ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   284
	    typeOrNil = GUIApplicationType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   285
		class := ApplicationDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   286
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   287
		typeOrNil = NonGUIApplicationType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   288
		    class := ApplicationDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   289
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   290
		    typeOrNil = FolderForSubApplicationsType ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   291
			class := FolderForProjectsDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   292
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   293
			class := LibraryDefinition newForPackage:aPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   294
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   295
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   296
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   297
	    "setup before prerequisites are defined"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   298
	    class setupForType:typeOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   299
	    "/ look what is there and include it; is this ok ?
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   300
	    class compileDescriptionMethods
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   301
	].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   302
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   303
	typeOrNil notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   304
	    doCreateIfAbsent ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   305
		class projectType == typeOrNil ifFalse: [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   306
		    class setupForType:typeOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   307
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   308
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   309
	].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   310
    ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   311
    ^ class
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   312
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   313
    "Created: / 23-08-2006 / 14:29:21 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   314
    "Modified: / 23-08-2006 / 15:35:26 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   315
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   316
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   317
definitionClassForPackage:newProjectID projectType:typeOrNil createIfAbsent:createIfAbsent
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   318
    ^ (self definitionClassForType:typeOrNil)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   319
	    definitionClassForPackage:newProjectID
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   320
	    createIfAbsent:createIfAbsent
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   321
	    projectType:typeOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   322
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   323
    "Created: / 23-08-2006 / 14:28:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   324
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   325
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   326
definitionClassForType: type
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   327
    "answer the class that describes a give project type"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   328
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   329
    (type = LibraryType) ifTrue:[ ^ LibraryDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   330
    (type = GUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   331
    (type = NonGUIApplicationType) ifTrue:[ ^ ApplicationDefinition ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
   332
    (type = FolderForSubApplicationsType) ifTrue:[ ^ FolderForProjectsDefinition ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   333
    (type = 'Application') ifTrue:[ ^ ApplicationDefinition ].     "/ temporary - for backward compat.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   334
    self error:'unknown project type'.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   335
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   336
    "Created: / 17-08-2006 / 14:46:28 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   337
    "Modified: / 23-08-2006 / 13:49:27 / cg"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   338
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
   339
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   340
newForPackage:packageID
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   341
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   342
	newNamed:(self projectDefinitionClassNameForDefinitionOf:packageID)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   343
	package:packageID.
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   344
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   345
    "Created: / 11-08-2006 / 14:27:19 / cg"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   346
!
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   347
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   348
newNamed:newName package:packageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   349
    |newClass|
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   350
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   351
    "/ for now, we are strict.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   352
    self assert:(self projectDefinitionClassNameForDefinitionOf:packageID) = newName.
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   353
    self assert:(self ~~ ProjectDefinition).  "ProjectDefinition is abstract"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   354
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   355
    newClass := self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   356
		    subclass:(newName asSymbol)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   357
		    instanceVariableNames:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   358
		    classVariableNames:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   359
		    poolDictionaries:''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   360
		    category:(self defaultCategory).
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   361
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   362
    newClass package:packageID asSymbol.
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   363
    ^ newClass
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   364
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   365
    "Created: / 09-08-2006 / 17:57:37 / fm"
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   366
    "Modified: / 09-08-2006 / 19:27:53 / fm"
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   367
    "Modified: / 17-08-2006 / 17:24:23 / cg"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   368
! !
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   369
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
   370
!ProjectDefinition class methodsFor:'accessing'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   371
23452
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   372
additionalClassResources
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   373
    "for projects which need additional resources from some other
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   374
     package (i.e. plugins), redefine this to return a collection
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   375
     of inherited definitions.
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   376
     i.e. change to ^ { foo_package classResources }"
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   377
     
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   378
    ^ #()
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   379
!
2c63cbc13474 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 23440
diff changeset
   380
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   381
directory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   382
    "for packageId compatibility"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   383
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   384
    ^ self moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   385
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   386
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   387
     bosch_dapasx_datenbasis_Definition moduleDirectory
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   388
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   389
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   390
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   391
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   392
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   393
     stx_goodies_xml_vw moduleDirectory
12575
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   394
    "
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   395
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   396
    "Created: / 08-08-2006 / 20:25:39 / fm"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   397
    "Modified: / 18-08-2006 / 12:18:33 / cg"
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   398
!
aa30728c3045 added: #directory
Claus Gittinger <cg@exept.de>
parents: 12574
diff changeset
   399
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   400
extensionsRevisionInfoForManager:managerOrNil
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   401
    "return the revisionInfo object for my extensions for a particular source code manager.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   402
     Return nil, if there is either no manager, or I have no extensions"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   403
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   404
    |mgr versionMethod revString|
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   405
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   406
    (mgr := managerOrNil) isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   407
	mgr := SourceCodeManagerUtilities sourceCodeManagerFor:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   408
	mgr isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   409
	    ^ nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   410
	].
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   411
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   412
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   413
    versionMethod := mgr nameOfVersionMethodForExtensions.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   414
    (self class implements:versionMethod) ifFalse:[^ nil].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   415
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   416
    revString := self perform:(mgr nameOfVersionMethodForExtensions) ifNotUnderstood:nil.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   417
    revString isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   418
	^ nil.
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   419
    ].
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   420
    ^ mgr revisionInfoFromString:revString.
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   421
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   422
    "
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   423
     (stx_libcomp extensionsRevisionInfoForManager:nil) revision
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   424
     (stx_libbasic extensionsRevisionInfoForManager:nil)
13823
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   425
    "
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   426
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   427
    "Created: / 25-11-2011 / 14:34:01 / cg"
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   428
!
Claus Gittinger <cg@exept.de>
parents: 13820
diff changeset
   429
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   430
fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   431
    "all components with underlines"
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   432
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   433
    ^ self fullPackageNameFor: self package
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   434
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   435
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   436
     stx_libwidg2 packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   437
     stx_libwidg2 fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   438
     stx_goodies_refactoryBrowser_browser packageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   439
     stx_goodies_refactoryBrowser_browser fullPackageName
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   440
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   441
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   442
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   443
fullPackageNameFor: aProjectID
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   444
    ^ (aProjectID copyReplaceAny:':/' with:$_)
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   445
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   446
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   447
     stx_goodies_refactoryBrowser_lint fullPackageNameFor:#stx_goodies_refactoryBrowser_lint
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   448
    "
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   449
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
   450
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   451
initialClassNameForDefinitionOf:aPackageId
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   452
    <resource: #obsolete>
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   453
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   454
    "now obsolete - left here for backward compatibility
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   455
     given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   456
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   457
    ^ self projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   458
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   459
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   460
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   461
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   462
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   463
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   464
     ProjectDefinition projectDefinitionClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   465
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   466
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   467
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   468
libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   469
    ^ self package asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   470
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   471
    "
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   472
     bosch_dapasx_datenbasis libraryName
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   473
     stx_libbasic3 libraryName
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   474
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   475
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   476
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   477
    "Modified: / 18-08-2006 / 12:36:45 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   478
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   479
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   480
libraryNameFor:aProjectID
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   481
    ^ aProjectID asPackageId libraryName
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   482
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   483
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   484
     bosch_dapasx_datenbasis libraryName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   485
     stx_libbasic3 libraryNameFor:'stx:libbasic'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   486
     stx_libbasic3 libraryNameFor:'bosch:dapasx/datenbasis'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   487
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   488
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   489
    "Modified: / 09-08-2006 / 18:20:29 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   490
    "Modified: / 18-08-2006 / 12:37:02 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   491
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   492
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   493
loadDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   494
    "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
   495
     return that directory. Otherwise return nil."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   496
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   497
    ^ self getAttribute:#projectDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   498
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   499
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   500
loadDirectory:aDirectory
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   501
    "remember the directory from which I was loaded from"
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   502
14583
266314c7fbfc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14580
diff changeset
   503
    self setAttribute:#projectDirectory to:aDirectory
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   504
!
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   505
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   506
module
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   507
    ^ self moduleOfClass:self
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   508
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   509
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   510
       bosch_dapasx_datenbasis_Definition module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   511
       DapasX_Datenbasis module
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   512
       stx_libbasic3 module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   513
       stx_libbasic3 directory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   514
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   515
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   516
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   517
    "Modified: / 09-08-2006 / 16:16:37 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   518
    "Modified: / 17-08-2006 / 20:50:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   519
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   520
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   521
moduleDirectory
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   522
    ^ (PackageId from:self package) directory
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   523
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   524
    "
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   525
     bosch_dapasx_datenbasis_Definition moduleDirectory
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
   526
     bosch_dapasx_parameter_system_Definition moduleDirectory
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   527
     stx_libbasic3 moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   528
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   529
     cg_croquet package asPackageId module
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   530
     cg_croquet moduleDirectory
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   531
     stx_goodies_xml_vw moduleDirectory
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
   532
     cg_demos_demo1 moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   533
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   534
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   535
    "Created: / 08-08-2006 / 20:25:39 / fm"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
   536
    "Modified (comment): / 05-09-2012 / 10:07:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   537
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   538
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   539
moduleDirectoryFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   540
    ^ (aProjectID subStrings:$:) last
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   541
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   542
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   543
	bosch_dapasx_datenbasis_Definition moduleDirectory
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   544
	bosch_dapasx_parameter_system_Definition moduleDirectory
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   545
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   546
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   547
    "Created: / 08-08-2006 / 20:25:39 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   548
    "Modified: / 17-08-2006 / 14:13:41 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   549
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   550
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   551
moduleDirectory_win32
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   552
    ^ (PackageId from:self package) directory copyReplaceAll:$/ with:$\
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   553
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   554
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   555
     bosch_dapasx_datenbasis moduleDirectory_win32
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   556
     bosch_dapasx_parameter_system moduleDirectory_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   557
     stx_libbasic3 moduleDirectory_win32
9891
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   558
    "
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   559
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   560
    "Created: / 14-09-2006 / 20:19:17 / cg"
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   561
!
62a779fbc130 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   562
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   563
moduleDirectory_win32For: projectID
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   564
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   565
    ^(self moduleDirectoryFor:projectID) copyReplaceAll:$/ with:$\
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   566
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   567
    "
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   568
     self moduleDirectory_win32For: #'bosch:dapasx/pav_vergleich'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   569
     self moduleDirectory_win32For: #'stx:goodies/xml/stx'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   570
     self moduleDirectory_win32For: #'stx:libbasic2'
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   571
    "
15528
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   572
a3c55af6af90 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15526
diff changeset
   573
    "Modified: / 16-07-2013 / 19:47:24 / cg"
10562
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   574
!
929109c6ad37 *** empty log message ***
fm
parents: 10507
diff changeset
   575
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   576
moduleFor:aProjectID
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   577
    ^ (aProjectID subStrings:$:) first
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   578
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   579
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   580
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   581
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   582
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   583
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   584
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   585
    "Modified: / 17-08-2006 / 14:13:46 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   586
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   587
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   588
moduleOfClass:aClass
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   589
    ^ self moduleFor:aClass package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   590
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   591
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   592
       DapasXProject module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   593
       DapasX_Datenbasis module
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   594
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   595
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   596
    "Created: / 09-08-2006 / 16:16:16 / fm"
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   597
    "Modified: / 17-08-2006 / 14:13:51 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   598
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   599
12360
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   600
monticelloPackageName
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   601
    "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
   602
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   603
    ^ nil
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   604
!
18b9a4b30466 preps to allow for monticello packages to be loaded
Claus Gittinger <cg@exept.de>
parents: 12357
diff changeset
   605
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   606
msdosPathToPackage:toPackageID from:fromPackageID
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   607
    "Returns the path to the package defined by aPackageID relative to my path"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   608
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
   609
    |parts1 parts2 common up down|
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   610
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   611
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   612
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   613
    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
   614
    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
   615
    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
   616
    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
   617
       down isEmpty ifTrue:[^ '.'].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   618
	^ down.
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   619
    ].
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
   620
    down isEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   621
	^ up.
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   622
    ].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   623
    ^ up, '\', down
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   624
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   625
    "
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   626
     self msdosPathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application'
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   627
     self msdosPathToPackage:'stx:libbasic' from:'bosch:dapasx/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   628
     self msdosPathToPackage:'bosch:dapasx/application' from:'stx:libbasic'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   629
     self msdosPathToPackage:'exept:expecco' from:'exept:expecco/application'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   630
     self msdosPathToPackage:'exept:expecco/application' from:'exept:expecco'
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   631
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   632
9559
06e8b0498471 code cleanup
Claus Gittinger <cg@exept.de>
parents: 9555
diff changeset
   633
    "Created: / 17-08-2006 / 14:26:39 / cg"
9901
6ea34c2d6a54 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9898
diff changeset
   634
    "Modified: / 14-09-2006 / 22:04:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   635
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   636
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   637
packageDirectory
19731
a8178e7a35b2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 19730
diff changeset
   638
    "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
   639
     return that directory.
14577
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   640
     Otherwise ask Smalltalk for my package directory a long the package path."
7cb6091c3966 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14547
diff changeset
   641
14580
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   642
    |loadDirectory|
b9514d8a5211 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14577
diff changeset
   643
14586
4e6d15f5defc class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14585
diff changeset
   644
    (loadDirectory := self loadDirectory) ifNotNil:[ ^ loadDirectory ].
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
   645
    ^ Smalltalk packageDirectoryForPackageId: self package
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   646
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   647
    "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
   648
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
   649
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   650
packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   651
    "the last component"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   652
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   653
    ^ self packageNameFor: self package
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   654
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   655
    "
10810
e62a55885c85 New: #allPreRequisitesSorted
Stefan Vogel <sv@exept.de>
parents: 10806
diff changeset
   656
     stx_libwidg2 packageName
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
   657
     stx_goodies_refactoryBrowser_browser packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   658
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   659
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   660
     bosch_dapasx_parameter_system packageName
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   661
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   662
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   663
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   664
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   665
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   666
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   667
packageNameFor: aProjectID
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   668
    ^ (aProjectID asCollectionOfSubstringsSeparatedByAny:':/') last.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   669
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   670
    "
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   671
     bosch_dapasx_hw_schnittstellen packageName
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   672
     bosch_dapasx_datenbasis packageName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   673
     bosch_dapasx_parameter_system packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   674
     cg_croquet packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   675
     stx_goodies_xml_vw packageName
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   676
     stx_goodies_xml_vw packageDirectory
9688
aa6ccbfbd00b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9685
diff changeset
   677
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   678
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   679
    "Created: / 08-08-2006 / 20:24:53 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   680
    "Modified: / 09-08-2006 / 16:16:37 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   681
    "Modified: / 11-08-2006 / 14:02:32 / cg"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   682
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   683
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   684
parentProject
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   685
    "return the packageID of the parent project.
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   686
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   687
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
   688
    ^ (self parentProjectFor: self package)
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   689
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   690
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   691
     bosch_dapasx_hw_schnittstellen_Definition parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   692
     DapasX_Datenbasis parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   693
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   694
     stx_libbasic parentProject
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   695
     stx_goodies_refactoryBrowser_lint parentProject
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   696
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   697
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   698
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   699
parentProjectFor: aProjectID
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   700
    "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
   701
     parent project.
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   702
     That is the projectID of the package above in the folder hierarchy"
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   703
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   704
    |path|
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   705
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   706
    path := aProjectID splitByAny:':/'.
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   707
    path size == 1 ifTrue:[^ nil].
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   708
    path size == 2 ifTrue:[^ path first].
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   709
    ^ path first , ':' , ((path copyFrom:2 to:path size - 1) asStringWith:'/')
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   710
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   711
    "
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   712
     bosch_dapasx_hw_schnittstellen parentProject
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   713
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   714
     self parentProjectFor:'bosch:dapasx'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   715
     self parentProjectFor:'bosch:dapasx/hw_schnittstellen'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   716
     self parentProjectFor:'stx:goodies/refactoryBrowser/lint'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   717
     self parentProjectFor:'stx:goodies/svg'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   718
     self parentProjectFor:'stx:libbasic'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   719
     self parentProjectFor:'exept:expecco/application'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   720
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   721
     self parentProjectFor:'stx'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   722
     self parentProjectFor:'exept'
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
   723
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   724
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   725
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
   726
pathSeparator:platformName
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   727
    ^ platformName == #unix ifTrue:['/'] ifFalse:['\'].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   728
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   729
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   730
pathTo:aBaseFilename inPackage:aPackageID architecture:arch
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   731
    "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
   732
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   733
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   734
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   735
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   736
    p := self pathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   737
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   738
    ^ p , separator, aBaseFilename
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
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   741
pathToPackage:toPackageID from:fromPackageID withSeparator:pathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   742
    "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
   743
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   744
    |parts1 parts2 common up down rel oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   745
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   746
    oneUp := '..', pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   747
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   748
    parts1 := fromPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   749
    parts2 := toPackageID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   750
    common := parts1 commonPrefixWith:parts2.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   751
    common notEmpty ifTrue:[
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   752
        up := ((1 to:parts1 size - common size) collect:[:p | oneUp]) asStringWith:''.
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   753
        down := (parts2 copyFrom:common size+1) asStringWith:pathSeparator.
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   754
        (up isEmpty and:[down isEmpty]) ifTrue:[^ '.'].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   755
        (up endsWith:'/') ifTrue:[
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   756
            down isEmpty ifTrue:[^ up copyButLast]
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   757
        ].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   758
        (up isEmpty) ifTrue:[
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   759
            (down startsWith:'/') ifTrue:[^ down copyButFirst]
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   760
        ].
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   761
        ^ up , down
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   762
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   763
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   764
    rel := (self topRelativePathToPackage:toPackageID withSeparator:pathSeparator).
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   765
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   766
        ^ '$(TOP)', (rel copyFrom:'stx/' size) "/ notice: the separator remains
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   767
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   768
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   769
    ^ '$(TOP)', pathSeparator, oneUp, rel.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   770
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   771
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   772
     self pathToPackage:'bosch:dapasx/kernel' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   773
     self pathToPackage:'stx:libbasic' from:'bosch:dapasx/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   774
     self pathToPackage:'bosch:dapasx/application' from:'stx:libbasic' withSeparator:'\'
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   775
     exept_expecco_application pathToPackage:'exept:expecco' from:'exept:expecco/application' withSeparator:'/'
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   776
     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
   777
    "
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
    "Created: / 14-09-2006 / 15:21:10 / cg"
23516
615475ef5504 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23474
diff changeset
   780
    "Modified: / 07-11-2018 / 17:24:26 / Claus Gittinger"
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   781
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   782
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   783
pathToPackage:aPackageID withSeparator:pathSeparator
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   784
    "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
   785
10875
ed4bd37a995e Fix unix Make.proto generation: resource file copy
Stefan Vogel <sv@exept.de>
parents: 10872
diff changeset
   786
    |rel|
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   787
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   788
    aPackageID asPackageId module = self package asPackageId module ifTrue:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   789
        ^ self pathToPackage:aPackageID from:self package withSeparator:pathSeparator.
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   790
    ].
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   791
    rel := self topRelativePathToPackage:aPackageID withSeparator:pathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   792
    (rel startsWith:('stx', pathSeparator)) ifTrue:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   793
        ^ '$(TOP)', (rel copyFrom:'stx/' size).   "keep the separator"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   794
    ] ifFalse:[
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   795
        ^ '$(TOP)', pathSeparator, '..', pathSeparator, rel
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   796
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   797
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   798
    "
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   799
     exept_expecco_application pathToPackage:'exept:expecco/application' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   800
     exept_expecco_application pathToPackage:'exept:expecco/report' withSeparator:'\'
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   801
     exept_expecco_application make_dot_proto_resource_rules
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   802
     stx_libbasic pathToPackage:'exept:expecco/application' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   803
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   804
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   805
    "Modified: / 16-08-2006 / 18:55:41 / User"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   806
    "Created: / 14-09-2006 / 13:21:23 / cg"
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   807
    "Modified: / 14-09-2006 / 15:23:59 / cg"
23474
5f53ab680658 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23452
diff changeset
   808
    "Modified (comment): / 26-10-2018 / 21:06:56 / Claus Gittinger"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   809
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   810
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   811
pathToTopFor:aProjectID withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   812
    "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
   813
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   814
    |parts oneUp|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   815
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   816
    oneUp := '..', aPathSeparator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   817
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   818
    parts := aProjectID asCollectionOfSubstringsSeparatedByAny:':/'.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   819
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   820
    parts first = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   821
	parts size == 1 ifTrue:[^ ''].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   822
	^ (((2 to:parts size-1) collect:[:p | oneUp]) asStringWith:'') , '..'
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   823
    ].
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
   824
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   825
    ^ ((parts collect:[:p | oneUp]) asStringWith:'') , 'stx'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   826
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   827
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   828
     self pathToTopFor: #'exept' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   829
     self pathToTopFor: #'exept:expecco' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   830
     self pathToTopFor: #'exept:expecco/application' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   831
     self pathToTopFor: #'stx' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   832
     self pathToTopFor: #'stx:libview' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   833
     self pathToTopFor: #'stx:goodies/foo' with:'/'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   834
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   835
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   836
    "Created: / 14-09-2006 / 14:59:53 / cg"
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   837
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   838
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   839
pathToTopWithSeparator:aPathSeparator
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   840
    "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
   841
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   842
    ^ self pathToTopFor:self package withSeparator:aPathSeparator
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   843
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   844
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   845
     exept_expecco_application pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   846
     stx_libbasic pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   847
     stx_goodies_xml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   848
     stx_libhtml pathToTopWithSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   849
     stx_goodies_refactoryBrowser_changes pathToTopWithSeparator:'\'
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   850
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   851
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   852
    "Created: / 09-08-2006 / 15:45:54 / fm"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
   853
    "Modified: / 14-09-2006 / 15:01:47 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   854
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
   855
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   856
projectDefinitionClassNameForDefinitionOf:aPackageId
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   857
    "given a package-ID, return an appropriate class name for this package"
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   858
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   859
    |s|
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   860
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   861
    s := aPackageId asString copy replaceAny:' :/-' with:$_.
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   862
    (s endsWith:$_) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   863
	s := s copyButLast:1
17344
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   864
    ].
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   865
    ^ s
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   866
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   867
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   868
     ProjectDefinition initialClassNameForDefinitionOf:'bosch:dapasx/interactiver_editor'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   869
     ProjectDefinition initialClassNameForDefinitionOf:'stx:libbasic'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   870
     ProjectDefinition initialClassNameForDefinitionOf:'stx:goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   871
     ProjectDefinition initialClassNameForDefinitionOf:'stx/goodies/xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   872
     ProjectDefinition initialClassNameForDefinitionOf:'stx_goodies_xml'
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   873
    "
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   874
!
4499813797b6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17325
diff changeset
   875
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   876
projectIsLoaded
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   877
    "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
   878
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   879
    projectIsLoaded isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   880
	projectIsLoaded := false.
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   881
    ].
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   882
    ^ projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   883
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   884
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   885
      stx_libbasic projectIsLoaded
13251
a7dbdfdc87e6 changed:
Stefan Vogel <sv@exept.de>
parents: 13216
diff changeset
   886
      (ProjectDefinition definitionClassForPackage:#'stx:libbasic') projectIsLoaded
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   887
    "
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   888
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   889
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   890
projectIsLoaded:aBoolean
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   891
    projectIsLoaded := aBoolean.
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
   892
    aBoolean ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   893
	"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
   894
	self class addDependent:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   895
	self postLoadAction.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   896
	self executeHooks: #postLoad.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
   897
    ].
10433
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   898
!
4768502f5cbf Do not try to load already loaded projects
Stefan Vogel <sv@exept.de>
parents: 10430
diff changeset
   899
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   900
projectTags
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   901
    "a list of resource-tags used in the project.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   902
     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
   903
     Allowing convenient tagging for things like '<resource: EXPECCO_API>'.
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   904
     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
   905
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   906
    ^ #()
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   907
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   908
    "Created: / 15-02-2017 / 16:42:48 / cg"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   909
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
   910
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   911
topRelativePathTo:aBaseFilename inPackage:aPackageID architecture:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   912
    "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
   913
     and adding for each one '../' to get the ST/X top directory"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   914
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   915
    |p separator|
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   916
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   917
    separator := self pathSeparator:arch.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   918
    p := self topRelativePathToPackage:aPackageID withSeparator:separator.
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   919
    aBaseFilename isNil ifTrue:[^ p].
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   920
    ^ p , separator, aBaseFilename
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   921
!
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   922
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   923
topRelativePathToPackage:aPackageID withSeparator:aDirectorySeparator
18503
1846b33e4918 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18477
diff changeset
   924
    "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
   925
     Basically this simply replaces colons and slashes by the OS's path separator."
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
   926
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   927
    ^ aPackageID asString copyReplaceAny:':/' with:aDirectorySeparator first
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   928
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   929
    "
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   930
     self topRelativePathToPackage:'stx:goodies/xml' withSeparator:'\'
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
   931
     self topRelativePathToPackage:'bosch:dapasx/kernel' withSeparator:'\'
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   932
    "
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   933
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
   934
    "Created: / 14-09-2006 / 13:20:40 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   935
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
   936
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   937
!ProjectDefinition class methodsFor:'accessing - coverage'!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   938
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   939
excludedFromCoverage
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   940
    "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
   941
     Entries maybe ClassName or #(ClassName selector)
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   942
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   943
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   944
     in #Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   945
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   946
    ^ #()
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   947
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   948
    "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
   949
    "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
   950
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   951
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   952
excludedFromCoverage: aMethod
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   953
    "Return true if given method should be excluded from coverage
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   954
     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
   955
     matching some criteria.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   956
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   957
     Please note that certain classes and methods are excluded
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   958
     in Builder::CoverageReport>>excludedFromCoverage:.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   959
    "
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   960
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   961
    |excluded mclass mselector|
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   962
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   963
    excluded := self excludedFromCoverage.
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   964
    excluded notEmptyOrNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   965
	mclass := aMethod mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   966
	mselector := aMethod selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   967
	excluded do:[:eachSpecLine|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   968
	    eachSpecLine isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   969
		(eachSpecLine first = mclass name and:[eachSpecLine second == mselector]) ifTrue:[ ^ true ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   970
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   971
	    eachSpecLine = mclass name ifTrue:[ ^ true ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
   972
	].
18224
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   973
    ].
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   974
5f63bef9237c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18178
diff changeset
   975
    ^ false
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   976
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   977
    "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
   978
    "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
   979
! !
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
   980
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   981
!ProjectDefinition class methodsFor:'accessing - hg'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   982
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   983
hgBinaryRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   984
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   985
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   986
    Answers Mercurial revision from which the package was compiled.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   987
    If no binary revision is available, returns nil."
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   988
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   989
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   990
    | revInfo |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   991
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   992
    self binaryRevisionString notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   993
        revInfo := HGRevisionInfo readFrom: self binaryRevisionString onError:[nil].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   994
        revInfo notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   995
            ^revInfo changesetId
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   996
        ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   997
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   998
    ^nil
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
   999
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1000
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1001
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1002
        stx_libbasic hgBinaryRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1003
        stx_libsvn hgBinaryRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1004
        stx_libscm_mercurial hgBinaryRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1005
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1006
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1007
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1008
    "Created: / 20-11-2012 / 23:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1009
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1010
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1011
hgLogicalRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1012
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1013
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1014
    Answers Mercurial revision on which is this package based on logically.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1015
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1016
    Revision is computed as follows:
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1017
        1) Look, if receiver's version_HG method has a (hidden) annotation HGRevision:, 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1018
           if so, return its value.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1019
        2) If receiver's binary revision is not nil, return it.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1020
        3) Look into a package directory and if there is a Mercurial repository,
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1021
           return working copy's revision"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1022
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1023
    | versionMethod versionAnnotation revInfo pkgDir repoDir repo |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1024
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1025
    "1 --- "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1026
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1027
    versionMethod := self class compiledMethodAt: HGSourceCodeManager nameOfVersionMethodInClasses.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1028
    versionMethod notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1029
        versionAnnotation := versionMethod annotationAt: #HGRevision:.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1030
        versionAnnotation notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1031
            ^versionAnnotation revision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1032
        ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1033
    ] ifFalse:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1034
        HGSourceCodeManager compileVersionMethod:HGSourceCodeManager nameOfVersionMethodInClasses of:self for:'$Changeset: <not expanded> $'.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1035
        versionMethod := self class compiledMethodAt: HGSourceCodeManager nameOfVersionMethodInClasses.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1036
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1037
    
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1038
    "2 --- "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1039
    self binaryRevisionString notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1040
        revInfo := HGRevisionInfo readFrom: self binaryRevisionString onError:[nil].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1041
        revInfo notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1042
            ^revInfo changesetId
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1043
        ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1044
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1045
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1046
    "3 --- "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1047
    pkgDir := Smalltalk getPackageDirectoryForPackage: self package.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1048
    pkgDir notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1049
        repoDir := HGRepository discover: pkgDir.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1050
        repoDir notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1051
            | id |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1052
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1053
            repo := HGRepository on: repoDir.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1054
            id := repo workingCopy changeset id.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1055
            versionMethod annotateWith: (HGRevisionAnnotation revision: id).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1056
            ^id
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1057
        ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1058
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1059
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1060
    "4 --- "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1061
    self breakPoint: #jv.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1062
    ^nil
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1063
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1064
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1065
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1066
        stx_libbasic hgLogicalRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1067
        stx_libsvn hgLogicalRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1068
        stx_libscm_mercurial hgLogicalRevision
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1069
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1070
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1071
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1072
    "Created: / 20-11-2012 / 23:54:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1073
    "Modified: / 14-01-2013 / 13:42:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1074
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1075
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1076
hgLogicalRevision: anHGChangesetId
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1077
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1078
    Set Mercurial revision on which is this package based on logically.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1079
    To be called only from Mercurial support upon commit from image.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1080
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1081
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1082
    | versionMethod |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1083
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1084
    versionMethod := self class compiledMethodAt: HGSourceCodeManager nameOfVersionMethodInClasses.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1085
    versionMethod isNil ifTrue:[ 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1086
        self class compile:(self class 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1087
                                    versionMethodTemplateForSourceCodeManager:HGSourceCodeManager)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1088
                                    classified:'documentation'.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1089
        versionMethod := self class compiledMethodAt:HGSourceCodeManager nameOfVersionMethodInClasses.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1090
        versionMethod setPackage:self package.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1091
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1092
    versionMethod annotateWith: 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1093
        (HGRevisionAnnotation revision: anHGChangesetId)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1094
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1095
    "Created: / 20-02-2014 / 00:06:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1096
    "Modified: / 27-02-2014 / 22:16:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1097
! !
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1098
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1099
!ProjectDefinition class methodsFor:'accessing - hg - settings'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1100
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1101
hgEnsureCopyrightMethod
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1102
    "If true, then #copyright method is automatically compiled in each class
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1103
     (but iff project definition defines it)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1104
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1105
     Default is true (compile such method) but if the repository is mirror of CVS and
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1106
     you want to merge back to CVS at some point, you may want to not compile them
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1107
     to keep changes against CVS minimal"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1108
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1109
    ^true "default"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1110
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1111
    "Created: / 09-10-2013 / 11:48:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1112
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1113
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1114
hgEnsureVersion_HGMethod
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1115
    "If true, then #version_HG method is automatically compiled in each class.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1116
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1117
     Default is true (compile such method) but if the repository is mirror of CVS and
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1118
     you want to merge back to CVS at some point, you may want to not compile them
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1119
     to keep changes against CVS minimal. 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1120
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1121
     If false, version_HG is compiled only in classes that has been modified
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1122
     and commited.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1123
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1124
     Note that Mercurial can live without them
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1125
     just fine"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1126
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1127
    ^true "default"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1128
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1129
    "Created: / 09-10-2013 / 11:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1130
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1131
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1132
hgRemoveContainesForDeletedClasses
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1133
    "If true, then containers for removed classes are __AUTOMATICALLY__ removed from the
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1134
     repositoru. If false, obsolete containes are kept.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1135
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1136
     Default is true (remove obsolete containers) but if the repository is mirror of CVS and
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1137
     you want to merge back to CVS at some point, you may want to return false to avoid deletions
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1138
     of obsolete files. Usefull when branching off an old CVS repo with loads of mess."
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1139
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1140
    ^true "default"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1141
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1142
    "Created: / 21-05-2013 / 16:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  1143
! !
17228
a219a717e0aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17186
diff changeset
  1144
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1145
!ProjectDefinition class methodsFor:'accessing - packaging'!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1146
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1147
classNames:aCollectionOfClassNames
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1148
    "set the set of classes"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1149
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1150
    self classNamesAndAttributes:aCollectionOfClassNames usingCompiler:nil
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1151
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1152
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1153
classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1154
    "set the set of classes. and attributes
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1155
     Because this requires compilation of my classList-method, a compiler can be passed in,
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1156
     which has to do the job.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1157
     (this is used by the systembrowser to pass in a CodeGeneratorTool with undo support)"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1158
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1159
    |oldSpec newCode|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1160
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1161
    oldSpec := self classNamesAndAttributes.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1162
    newSpec = oldSpec ifTrue: [^ self].
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1163
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1164
    newCode := self classNamesAndAttributes_codeFor:newSpec.
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1165
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1166
    self compile:newCode categorized:'description - contents' using:compilerOrNil
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1167
!
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1168
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1169
excludeClasses:toExclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1170
    "exclude (remove from classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1171
     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
  1172
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1173
     (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
  1174
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1175
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1176
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1177
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1178
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1179
    toExclude do:[:eachClassToExclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1180
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1181
	className := eachClassToExclude theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1182
	(self allClassNames includes:className) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1183
	    |idx|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1184
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1185
	    idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1186
	    idx ~~ 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1187
		newSpec := newSpec copyWithoutIndex:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1188
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1189
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1190
    ].
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1191
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1192
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1193
    "Created: / 30-08-2007 / 18:28:28 / cg"
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1194
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1195
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1196
excludeMethodFor:selector inClassNamed:className usingCompiler:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1197
    "exclude (remove from extensionList) a method by name.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1198
     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
  1199
     which has to do the job.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1200
     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
  1201
     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
  1202
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1203
    |oldSpec newSpec newCode idx|
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1204
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1205
    oldSpec := self extensionMethodNames.
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1206
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1207
    idx := (1 to:oldSpec size-1 by:2)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1208
		detect:[:i |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1209
		    ((oldSpec at:i) = className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1210
		    and:[ (oldSpec at:i+1) = selector ]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1211
		ifNone:[ ^ self ].
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1212
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1213
    "/ attention: there are two spec-elements per method
15764
fa42cc60ec5a class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15761
diff changeset
  1214
    newSpec := oldSpec copyWithoutIndex:idx toIndex:idx+1.
15069
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1215
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1216
    newCode := self extensionMethodNames_code_For:newSpec.
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1217
    self compile:newCode categorized:'description - contents' using:compilerOrNil
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1218
!
d146b5bb962d class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15066
diff changeset
  1219
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1220
excludeMethods:toRemove usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1221
    "exclude (remove from extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1222
     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
  1223
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1224
     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
  1225
     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
  1226
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1227
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1228
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1229
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1230
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1231
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1232
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1233
    toRemove do:[:eachMethodToRemove |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1234
	|className selector idx|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1235
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1236
	(extensionMethods includes:eachMethodToRemove) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1237
	    className := eachMethodToRemove mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1238
	    selector := eachMethodToRemove selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1239
	    idx := (1 to:newSpec size-1 by:2)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1240
			detect:[:i |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1241
			    ((newSpec at:i) = className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1242
			    and:[ (newSpec at:i+1) = selector ]]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1243
			ifNone:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1244
	    idx notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1245
		"/ attention: there are two spec-elements per method
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1246
		newSpec := newSpec removeFromIndex:idx toIndex:idx+1
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1247
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1248
	].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1249
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1250
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1251
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1252
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1253
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1254
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1255
includeClasses:toInclude usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1256
    "include (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1257
     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
  1258
     which has to do the job.
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1259
     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
  1260
     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
  1261
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1262
    |oldSpec newSpec|
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1263
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1264
    oldSpec := self classNamesAndAttributes.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1265
    newSpec := oldSpec copy.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1266
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1267
    toInclude do:[:eachClassToInclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1268
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1269
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1270
	className := eachClassToInclude theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1271
	(self compiled_classNames includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1272
	    | idx entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1273
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1274
	    idx := oldSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1275
	    idx == 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1276
		newSpec := newSpec copyWith:(Array with:className)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1277
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1278
		entry := newSpec at:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1279
		entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1280
		    entry := entry copyWithout:#autoload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1281
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1282
		newSpec at:idx put:entry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1283
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1284
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1285
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1286
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1287
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1288
!
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1289
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1290
includeMethods:toInclude usingCompiler:compilerOrNil
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1291
    "include (add to extensionList) a number of methods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1292
     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
  1293
     which has to do the job.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1294
     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
  1295
     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
  1296
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1297
    |oldSpec newSpec newCode extensionMethods|
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1298
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1299
    oldSpec := self extensionMethodNames.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1300
    newSpec := oldSpec copy.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1301
    extensionMethods := self extensionMethods.
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1302
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1303
    toInclude do:[:eachMethodToInclude |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1304
	(extensionMethods includes:eachMethodToInclude) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1305
	    newSpec := newSpec copyWith:eachMethodToInclude mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1306
	    newSpec := newSpec copyWith:eachMethodToInclude selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1307
	].
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1308
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1309
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1310
    newCode := self extensionMethodNames_code_For:newSpec.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1311
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1312
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1313
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1314
makeClassesAutoloaded:toMakeAutoloaded usingCompiler:compilerOrNil
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1315
    "include as autoloaded (add to classList) a number of classes.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1316
     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
  1317
     which has to do the job.
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1318
     (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
  1319
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1320
    |newSpec|
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1321
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1322
    newSpec := self classNamesAndAttributes copy.
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1323
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1324
    toMakeAutoloaded do:[:eachClassToMakeAutoloaded |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1325
	|className|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1326
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1327
	className := eachClassToMakeAutoloaded theNonMetaclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1328
	(self autoloaded_classNames includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1329
	    |idx entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1330
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1331
	    idx := newSpec findFirst:[:entry | entry = className or:[entry first = className]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1332
	    idx == 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1333
		newSpec := newSpec copyWith:(Array with:className with:#autoload)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1334
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1335
		entry := newSpec at:idx.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1336
		entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1337
		    entry := (entry copyWithout:#autoload) copyWith:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1338
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1339
		    entry := Array with:entry with:#autoload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1340
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1341
		newSpec at:idx put:entry.
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
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1344
    ].
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1345
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  1346
    self classNamesAndAttributes:newSpec usingCompiler:compilerOrNil
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1347
!
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1348
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1349
updateContentsMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1350
    "regenerate the contents-describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1351
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1352
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1353
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1354
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1355
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1356
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1357
    Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1358
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1359
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1360
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1361
		forEachContentsMethodsCodeToCompileDo:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1362
		    [:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1363
			(compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1364
			    compile:code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1365
			    forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1366
			    inCategory:category.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1367
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1368
		ignoreOldDefinition:doRegenerate
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1369
	].
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1370
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1371
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1372
updateExtensionMethodNamesUsingCompiler:compilerOrNil
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1373
    "set the set of extension methods
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  1374
     Because this requires compilation of my extensionMethodNames-method,
14982
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1375
     a compiler can be passed in, which has to do the job.
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1376
     (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
  1377
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1378
    |newCode|
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1379
89017a36e6e0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14981
diff changeset
  1380
    newCode := self extensionMethodNames_code.
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  1381
    self compile:newCode categorized:'description - contents' using:compilerOrNil
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1382
!
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1383
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1384
updateMethodsCodeUsingCompiler:compilerOrNil ignoreOldDefinition:doRegenerate
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1385
    "regenerate the all contents- plus version describing methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1386
     This searches through the system and picks classes and extension methods
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1387
     which have me as package and lists them in the generated class-
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1388
     and extensionMethods methods.
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1389
     If doRegenerate is true, forget any any previous contents info;
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1390
     otherwise, merge new items into the existing lists."
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1391
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  1392
    Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1393
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1394
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1395
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1396
		forEachMethodsCodeToCompileDo:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1397
		    [:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1398
			(compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1399
			    compile:code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1400
			    forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1401
			    inCategory:category.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1402
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1403
		ignoreOldDefinition:doRegenerate
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1404
	].
12339
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1405
! !
918b3eddd723 #excludeClasses:usingCompiler:
Claus Gittinger <cg@exept.de>
parents: 12338
diff changeset
  1406
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1407
!ProjectDefinition class methodsFor:'accessing - tests'!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1408
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1409
excludedFromTestSuite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1410
    "List of testcases and/or tests excluded from testsuite.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1411
     Entries maybe ClassName or #(ClassName testName)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1412
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1413
    ^ #()
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1414
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1415
    "Created: / 03-06-2011 / 16:56:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1416
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1417
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1418
testSuite
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1419
    "generate and return a testSuite containing all of my test-classes"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1420
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1421
    |suite classes|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1422
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1423
    suite := TestSuite named:self package.
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1424
    classes := self classes
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1425
		select:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1426
		    [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1427
		    each isLoaded ifFalse:[each autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1428
		    (each isTestCaseLike) and:[ each isAbstract not ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1429
		    ] on: Autoload autoloadFailedSignal do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1430
				'FAILED TO LOAD: ' infoPrint.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1431
				each name infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1432
			false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1433
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1434
		].
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1435
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1436
    classes := classes asSortedCollection:[:a :b | a name <= b name ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1437
    classes do: [:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1438
	| tests |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1439
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1440
	eachClass name infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1441
	tests := eachClass suite tests.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1442
	tests := tests reject:[:test|self shouldExcludeTest: test].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1443
	suite addTests: tests
13544
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1444
    ].
4c9779fe1181 commented: #testSuite
Claus Gittinger <cg@exept.de>
parents: 13485
diff changeset
  1445
    ^ suite
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1446
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1447
    "Created: / 01-04-2011 / 15:20:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1448
    "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
  1449
    "Modified: / 08-08-2011 / 14:59:45 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1450
! !
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  1451
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1452
!ProjectDefinition class methodsFor:'class initialization'!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1453
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1454
initialize
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1455
    AccessLock isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1456
	LibraryType := #Library.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1457
	GUIApplicationType := #'GUI-Application'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1458
	NonGUIApplicationType := #'NonGUI-Application'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1459
	FolderForSubApplicationsType := #'Folder for Subapplications'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1460
	AccessLock := Semaphore forMutualExclusion name:'ProjectDefinition Lock'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1461
	Verbose := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1462
	PackagesBeingLoaded := Set new.
14776
28a1f265cd65 add user friendly name to semaphores
Stefan Vogel <sv@exept.de>
parents: 14764
diff changeset
  1463
    ].
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1464
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1465
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1466
     self initialize
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1467
    "
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1468
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1469
    "Modified: / 18-08-2011 / 13:48:31 / cg"
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1470
!
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1471
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1472
initializeAllProjectDefinitions
16179
7acaf638974b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16163
diff changeset
  1473
    "tells all already loaded project definition classes that they are loaded
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1474
     (i.e. calls postLoadAction).
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1475
     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
  1476
     Therefore, it's not invoked by the projDef's #initialize,
15761
36c017b9fe58 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15760
diff changeset
  1477
     but instead explicitely, by Smalltalk as a late step in the startup."
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  1478
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1479
    |isStandAloneApp|
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1480
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1481
    isStandAloneApp := Smalltalk isStandAloneApp.
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1482
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1483
    self allSubclassesDo:[:eachProjectDefinitionClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1484
	eachProjectDefinitionClass isAbstract ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1485
	    isStandAloneApp ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1486
		eachProjectDefinitionClass installAutoloadedClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1487
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1488
	    eachProjectDefinitionClass projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1489
	]
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  1490
    ].
10115
a43005ac7423 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10114
diff changeset
  1491
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1492
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1493
     self initialize
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1494
    "
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1495
10121
067b986ee77b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10119
diff changeset
  1496
    "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
  1497
!
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1498
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1499
installAutoloadedClasses
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1500
    "install all of my autoloaded classes (if any)"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  1501
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1502
    |classesToFixClassFileName|
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1503
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1504
    classesToFixClassFileName := OrderedCollection new.
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1505
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1506
    self autoloaded_classNames do:[:className |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1507
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1508
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1509
	"/ 'install as autoloaded: ' errorPrint. className errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1510
	(cls := Smalltalk classNamed:className) isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1511
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1512
		(self name,' [warning]: failed to install autoloaded: ',className) errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1513
		(self name,' [info]: reason: ',ex description) errorPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1514
		"/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1515
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1516
		cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1517
		    installAutoloadedClassNamed:className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1518
		    category:'* as yet unknown category *'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1519
		    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1520
		    revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1521
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1522
	    cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1523
		classesToFixClassFileName add:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1524
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1525
	].
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1526
    ].
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1527
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1528
    Smalltalk addStartBlock:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1529
	|abbrevs|
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
	abbrevs := self abbrevs.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1532
	"/ patch the classFileNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1533
	classesToFixClassFileName do:[:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1534
	    |entry classFilenameFromAbbreviations|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1535
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1536
	    entry := abbrevs at:cls name ifAbsent:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1537
	    entry notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1538
		classFilenameFromAbbreviations := entry fileName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1539
		classFilenameFromAbbreviations notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1540
		    classFilenameFromAbbreviations := classFilenameFromAbbreviations,'.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1541
		    (classFilenameFromAbbreviations ~= cls getClassFilename) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1542
			cls setClassFilename:classFilenameFromAbbreviations
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
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1545
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1546
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1547
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1548
	"/ patch the categories
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1549
	Class withoutUpdatingChangesDo:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1550
	    |entry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1551
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1552
	    self classNames do:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1553
		|cls|
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
		((cls := Smalltalk at: nm) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1556
			and:[ cls isLoaded not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1557
			and:[ (entry := abbrevs at:cls name ifAbsent:[nil]) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1558
		]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1559
		    cls category: (entry category)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1560
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1561
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1562
	]
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1563
    ].
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  1564
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1565
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1566
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1567
     stx_libbasic installAutoloadedClasses
12268
b3cd2af642f2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 12264
diff changeset
  1568
     stx_libhtml installAutoloadedClasses
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  1569
     stx_libtool2 installAutoloadedClasses
10113
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1570
    "
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1571
78086bf25905 install autoloaded classes (if not already present)
Claus Gittinger <cg@exept.de>
parents: 10106
diff changeset
  1572
    "Created: / 23-10-2006 / 16:02:12 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  1573
    "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
  1574
    "Modified: / 20-08-2011 / 23:32:32 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1575
! !
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  1576
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1577
!ProjectDefinition class methodsFor:'code generation'!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1578
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1579
applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1580
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1581
	s nextPutLine:'applicationIconFileNameLinux'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1582
	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
  1583
	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
  1584
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1585
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1586
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1587
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1588
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1589
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1590
     self applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1591
     stx_libbasic3 applicationIconFileNameLinux_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1592
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1593
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1594
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1595
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1596
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1597
applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1598
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1599
	s nextPutLine:'applicationIconFileNameOSX'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1600
	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
  1601
	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
  1602
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1603
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1604
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1605
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1606
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1607
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1608
     self applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1609
     stx_libbasic3 applicationIconFileNameOSX_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1610
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1611
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1612
    "Created: / 18-08-2006 / 16:21:01 / cg"
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  1613
    "Modified: / 24-02-2017 / 11:55:32 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1614
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1615
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1616
applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1617
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1618
	s nextPutLine:'applicationIconFileNameWindows'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1619
	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
  1620
	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
  1621
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1622
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1623
	nextPutLine:'    " ^ self applicationName "'.
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1624
    ].
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1625
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1626
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1627
     self applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1628
     stx_libbasic3 applicationIconFileNameWindows_code
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1629
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1630
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1631
    "Created: / 18-08-2006 / 16:21:01 / cg"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1632
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1633
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1634
applicationIconFileName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1635
    "obsolete - replaced by three separate methods as-per-OS"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1636
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1637
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1638
	s nextPutLine:'applicationIconFileName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1639
	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
  1640
	s nextPutLine:'    "will be included in the rc-resource file"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1641
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1642
	nextPutLine:'    ^ nil';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1643
	nextPutLine:'    " ^ self applicationName "'.
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1644
    ].
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1645
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1646
    "
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1647
     self applicationIconFileName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  1648
     stx_libbasic3 applicationIconFileName_code
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1649
    "
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1650
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1651
    "Created: / 18-08-2006 / 16:21:01 / cg"
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1652
!
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  1653
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1654
checkForBadReferences:prerequisiteList
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1655
    "check, that there are no 'illegal' references to prerequisites.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1656
     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
  1657
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1658
    prerequisiteList keysDo:[:eachPackageSymbol|
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1659
        |defClass|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1660
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1661
        defClass := self definitionClassForPackage:eachPackageSymbol.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1662
        (defClass isProjectDefinition and:[defClass isPluginDefinition]) ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1663
            (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
  1664
                AbortOperationRequest raiseRequest.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1665
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1666
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1667
    ]
23179
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1668
8656c17dc5d2 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23128
diff changeset
  1669
    "Modified (format): / 02-07-2018 / 18:56:29 / cg"
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1670
!
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  1671
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1672
classNamesAndAttributes_codeFor:aSpecArray
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1673
    "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
  1674
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1675
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1676
	s nextPutLine:'classNamesAndAttributes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1677
	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
  1678
	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
  1679
	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
  1680
	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
  1681
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1682
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1683
	s nextPutLine:'        "<className> or (<className> attributes...) in load order"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1684
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1685
	(self classNamesAndAttributesFromSpecArray:aSpecArray) do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1686
	    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1687
	    entry storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1688
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1689
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1690
	s nextPutLine:'    )'
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1691
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1692
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1693
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1694
     stx_libbasic3 classNamesAndAttributes_codeFor:(stx_libbasic3 classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1695
     exept_expecco classNamesAndAttributes_codeFor:(exept_expecco classNamesAndAttributes)
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1696
    "
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1697
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1698
    "Modified: / 08-08-2006 / 19:24:34 / fm"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1699
    "Created: / 19-02-2007 / 15:43:27 / cg"
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1700
!
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1701
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1702
classNamesAndAttributes_code_ignoreOldEntries:ignoreOldEntries ignoreOldDefinition:ignoreOldDefinition
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1703
    "generate method code returning all classes of the project.
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1704
     Platform attributes are kept from the old definition.
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1705
     If ignoreOldEntries is true, the list is completely recreated;
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1706
     if false, existing entries are preserved.
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  1707
     If ignoreOldDefinition is true, the autoload attribute is set/reset if
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1708
     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
  1709
     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
  1710
20673
1f955f65538d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20664
diff changeset
  1711
    |newSpec oldSpec ignored|
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1712
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1713
    oldSpec := self classNamesAndAttributesAsSpecArray.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1714
    ignored := self ignoredClassNames asSet.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1715
    newSpec := OrderedCollection new.
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1716
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1717
    ignoreOldEntries ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1718
	oldSpec do:[:oldEntry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1719
	    |newEntry className cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1720
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1721
	    newEntry := oldEntry copy.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1722
	    className := newEntry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1723
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1724
	    (ignored includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1725
		cls := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1726
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1727
		    ignoreOldDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1728
			cls isLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1729
			    (newEntry includes:#autoload) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1730
				newEntry := newEntry copyWith:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1731
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1732
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1733
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1734
		    "JV @ 2010-06-19
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1735
		     Force merge default class attributes with existing ones"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1736
		    newEntry := self mergeDefaultClassAttributesFor: cls with: newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1737
		    newSpec add:newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1738
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1739
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1740
	].
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1741
    ].
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1742
    self searchForClasses do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1743
	|className attributes oldSpecEntry oldAttributes newEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1744
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1745
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1746
	    className := eachClass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1747
	    (ignored includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1748
		oldSpecEntry := oldSpec detect:[:entry | entry first = className] ifNone:nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1749
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1750
		(ignoreOldEntries or:[oldSpecEntry isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1751
		    (eachClass isLoaded not or:[eachClass isPrivate not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1752
			(self additionalClassNamesAndAttributes includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1753
			    (oldSpecEntry size > 1) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1754
				oldAttributes := oldSpecEntry copyFrom:2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1755
			    ].
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
			    ignoreOldDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1758
				"take autoload attribute from classes state in the image"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1759
				oldAttributes notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1760
				    attributes := oldAttributes copyWithout:#autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1761
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1762
				    attributes := #()
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1763
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1764
				eachClass isLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1765
				    attributes := attributes copyWith:#autoload.
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
			    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1768
				"keep any existing attribute"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1769
				oldAttributes notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1770
				    attributes := oldAttributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1771
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1772
				    attributes := eachClass isLoaded ifTrue:[ #() ] ifFalse:[ #(autoload) ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1773
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1774
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1775
			    "JV @ 2010-06-19
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1776
			     Support for additional class attributes and programming language attribute"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1777
			    attributes := self mergeDefaultClassAttributesFor: eachClass with: attributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1778
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1779
			    newEntry := Array with:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1780
			    attributes notEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1781
				newEntry := newEntry , attributes.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1782
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1783
			    newSpec add:newEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1784
			]
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
		]
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
	]
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1789
    ].
17109
7c49508fa1bf class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  1790
    ^ self classNamesAndAttributes_codeFor:newSpec
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1791
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1792
    "
10393
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1793
     stx_libbasic3 classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1794
     exept_expecco classNamesAndAttributes_code_ignoreOldEntries:false ignoreOldDefinition:true
68b206e1af51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10380
diff changeset
  1795
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1796
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1797
    "Modified: / 08-08-2006 / 19:24:34 / fm"
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1798
    "Created: / 10-10-2006 / 22:00:50 / cg"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  1799
    "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
  1800
    "Modified: / 30-07-2014 / 20:40:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22333
3c675c8b5266 #DOCUMENTATION by mawalch
mawalch
parents: 22186
diff changeset
  1801
    "Modified (comment): / 08-11-2017 / 17:59:04 / mawalch"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1802
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1803
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1804
companyName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1805
    "generate code that answers the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1806
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1807
    ^ self companyName_codeFor:self companyName
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1808
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1809
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1810
     self companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1811
     stx_libbasic3 companyName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1812
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1813
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1814
    "Created: / 18-08-2006 / 16:20:42 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1815
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1816
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  1817
companyName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1818
    "generate code that answers aString as the company name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  1819
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1820
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1821
	s nextPutLine:'companyName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1822
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #companyName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1823
	s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1824
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1825
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1826
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1827
     self companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1828
     stx_libbasic3 companyName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1829
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1830
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1831
    "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
  1832
    "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
  1833
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1834
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1835
compileDescriptionMethods
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  1836
    (self isAbstract) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1837
	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
  1838
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1839
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1840
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1841
	forEachMethodsCodeToCompileDo:[:code :category |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1842
	    self compile:code categorized:category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1843
	].
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1844
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1845
"/    self instAndClassMethodsDo:[:m | m package:self package].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1846
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1847
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1848
     DapasXProject compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1849
     DapasX_Datenbasis compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1850
     bosch_dapasx_interactiver_editor compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1851
     stx_libbasic compileDescriptionMethods
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1852
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1853
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1854
    "Created: / 09-08-2006 / 18:00:31 / fm"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1855
    "Modified: / 05-09-2006 / 13:46:29 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1856
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1857
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1858
description_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1859
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1860
	s nextPutLine:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1861
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #description) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1862
	s cr; nextPutLine:'    ^ ',self description asString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1863
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1864
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1865
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1866
     self description_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  1867
     stx_libbasic3 description_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1868
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1869
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1870
    "Created: / 17-08-2006 / 21:24:01 / cg"
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1871
    "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
  1872
    "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
  1873
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1874
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1875
effectiveSubProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1876
    "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
  1877
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1878
    ^ self effectiveSubProjects:OperatingSystem platformName
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1879
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1880
    "Modified: / 17-01-2017 / 16:31:42 / stefan"
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1881
!
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1882
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1883
effectiveSubProjects:osSymbol
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1884
    "get the subProjects, that are not excluded.
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1885
     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
  1886
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1887
    |prereqs subProjects|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1888
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1889
    prereqs := self allPreRequisites.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1890
    
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1891
    subProjects := (self subProjects, self includedInSubProjects) 
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1892
                        collect:[:eachLine|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1893
                            |prj|
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1894
                            
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1895
                            eachLine isString ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1896
                                prj := eachLine
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1897
                            ] ifFalse:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1898
                                eachLine second = osSymbol ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1899
                                    prj := eachLine first.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1900
                                ].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1901
                            ].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1902
                            (prereqs includes:prj) ifTrue:[ prj := nil].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1903
                            prj.
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1904
                       ] as:OrderedSet.
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1905
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1906
    subProjects remove:self package ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1907
    subProjects remove:nil ifAbsent:[].
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1908
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1909
    self excludedFromSubProjects do:[:eachLine|
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1910
        eachLine isString ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1911
            subProjects remove:eachLine ifAbsent:[].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1912
        ] ifFalse:[eachLine second = osSymbol ifTrue:[
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1913
            subProjects remove:eachLine first ifAbsent:[].
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1914
        ]].
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1915
    ].
11386
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1916
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1917
    ^ subProjects
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1918
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  1919
    "Created: / 17-01-2017 / 16:16:03 / stefan"
23629
2709395b56a9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23589
diff changeset
  1920
    "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
  1921
!
5e4e1acf7242 Fix #allPrerequisites to return prerequisites that are
Stefan Vogel <sv@exept.de>
parents: 11383
diff changeset
  1922
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1923
excludedFromPreRequisites_code
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1924
    "generate the code of the #excludedFromPreRequisites method"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1925
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1926
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1927
	s nextPutLine:'excludedFromPreRequisites'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1928
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #excludedFromPreRequisites) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1929
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1930
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1931
	s nextPutLine:'    )'
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1932
    ].
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
  1933
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  1934
    "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
  1935
!
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  1936
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1937
extensionMethodNames_code
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1938
    ^ self extensionMethodNames_code_ignoreOldEntries:true
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1939
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1940
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1941
     self extensionMethodNames_code
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1942
    "
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1943
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1944
    "Created: / 17-08-2006 / 21:21:48 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1945
    "Modified: / 10-10-2006 / 22:02:42 / cg"
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1946
!
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1947
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1948
extensionMethodNames_code_For:extensionMethodNames
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1949
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1950
	|spec|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1951
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1952
	s nextPutLine:'extensionMethodNames'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1953
	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
  1954
	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
  1955
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1956
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1957
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1958
	spec := extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1959
	spec do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1960
	    |mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1961
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1962
	    mclassName := entry key asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1963
	    (mclassName endsWith:' class') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1964
		mclassName := mclassName asString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1965
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1966
	    mselector := entry value asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1967
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1968
	    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1969
	    mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1970
	    s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1971
	    mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1972
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1973
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1974
	s nextPutLine:'    )'
15005
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1975
    ].
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1976
!
8e1dada16e22 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14994
diff changeset
  1977
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  1978
extensionMethodNames_code_ignoreOldEntries:ignoreOldEntries
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  1979
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1980
	|oldSpec|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1981
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1982
	s nextPutLine:'extensionMethodNames'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1983
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #extensionMethodNames) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1984
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1985
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1986
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1987
	oldSpec := self extensionMethodNames pairWiseCollect:[:className :selector | className -> selector ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1988
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1989
	ignoreOldEntries ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1990
	    oldSpec do:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1991
		|mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1992
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1993
		mclassName := entry key asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1994
		(mclassName endsWith:' class') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1995
		    mclassName := mclassName asString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1996
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1997
		mselector := entry value asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1998
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  1999
		s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2000
		mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2001
		s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2002
		mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2003
		s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2004
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2005
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2006
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2007
	self searchForExtensions do:[:eachMethod |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2008
	    |attributes oldSpecEntry mclassName mselector|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2009
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2010
	    mclassName := eachMethod mclass name.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2011
	    mselector := eachMethod selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2012
	    "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
  2013
	     They are loaded lazily by JavaClassReader and if listed here,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2014
	     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
  2015
	     Sort of a HACK, indeed"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2016
	    eachMethod mclass theNonMetaclass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2017
		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
  2018
		(ignoreOldEntries or:[ oldSpecEntry isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2019
		    s spaces:8.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2020
		    mclassName storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2021
		    s space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2022
		    mselector storeArrayElementOn:s.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2023
		    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2024
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2025
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2026
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2027
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2028
	s nextPutLine:'    )'
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2029
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2030
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  2031
    "
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  2032
     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
  2033
     stx_libjava extensionMethodNames_code_ignoreOldEntries:false
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  2034
     stx_libtool extensionMethodNames_code_ignoreOldEntries:true
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  2035
    "
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2036
10064
fb1ad676019d update spec vs. regenerate spec.
Claus Gittinger <cg@exept.de>
parents: 10063
diff changeset
  2037
    "Created: / 10-10-2006 / 22:02:36 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  2038
    "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
  2039
    "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
  2040
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2041
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2042
forEachContentsMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2043
    "generate code for each contents-specifying method
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2044
     (classesAndAttributes, extensionMethodNames, etc.),
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2045
     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
  2046
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2047
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2048
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2049
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2050
	value:(self classNamesAndAttributes_code_ignoreOldEntries:ignoreOldDefinition ignoreOldDefinition:ignoreOldDefinition)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2051
	value:'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2052
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2053
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2054
	value: (self extensionMethodNames_code_ignoreOldEntries:ignoreOldDefinition)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2055
	value: 'description - contents'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2056
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2057
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2058
	value: self mandatoryPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2059
	value: 'description'.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2060
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2061
    aTwoArgBlock
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2062
	value: self referencedPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2063
	value: 'description'.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2064
16571
e7bc644361e4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16554
diff changeset
  2065
    (self class includesSelector:#excludedFromPreRequisites) ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2066
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2067
	    value: self excludedFromPreRequisites_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2068
	    value: 'description'.
14812
bdbf34a42482 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14809
diff changeset
  2069
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2070
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  2071
    "/ JV:  No, subProjects **should not** be automatically generated.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  2072
    "/      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
  2073
    "/      subProjects only if there's no such method yet.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  2074
    (self class methodDictionary includesKey: #subProjects) ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2075
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2076
	    value: self subProjects_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2077
	    value: 'description'.
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  2078
    ].
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2079
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2080
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2081
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2082
	    value: self monticelloTimestamps_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2083
	    value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2084
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2085
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  2086
    "Modified: / 25-11-2013 / 13:56:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2087
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2088
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2089
forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2090
    "generate code for descriptive methods,
15052
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2091
     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
  2092
     If ignoreOldDefinition is true, new code is generated (class/method scan);
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2093
     otherwise, new items are added to the existing lists"
5e8ef8547be6 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15026
diff changeset
  2094
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2095
    "/  code like:
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2096
    "/
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2097
    "/ (self class includesSelector:#productName) ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2098
    "/     aTwoArgBlock
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2099
    "/         value: self productName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2100
    "/         value: 'description - project information'.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2101
    "/ ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2102
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2103
    #(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2104
	(productName productName_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2105
	(description description_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2106
	(companyName companyName_code)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2107
	(legalCopyright legalCopyright_code)
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2108
    ) pairsDo:[:selector :codeMethodSelector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2109
	(self class includesSelector:selector) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2110
	    aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2111
		value: (self perform:codeMethodSelector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2112
		value: 'description - project information'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2113
	].
11072
deaddd7ad2ed icon filename - no longer automatic default
sr
parents: 11071
diff changeset
  2114
    ].
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2115
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2116
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2117
forEachMethodsCodeToCompileDo:aTwoArgBlock
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2118
    "update code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2119
     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
  2120
     New items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2121
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2122
    self forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2123
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2124
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2125
forEachMethodsCodeToCompileDo:aTwoArgBlock ignoreOldDefinition:ignoreOldDefinition
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2126
    "generate code for each method (contents plus version info),
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2127
     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
  2128
     If ignoreOldDefinition is true, new code is generated (class/method scan);
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2129
     otherwise, new items are added to the existing lists"
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2130
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2131
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2132
	forEachContentsMethodsCodeToCompileDo:aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2133
	ignoreOldDefinition:ignoreOldDefinition.
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2134
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  2135
    self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2136
	forEachDescriptionMethodsCodeToCompileDo:aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2137
	ignoreOldDefinition:ignoreOldDefinition.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2138
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2139
    (self monticelloPackageName notNil and:[self respondsTo:#monticelloTimestamps_code]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2140
	aTwoArgBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2141
	    value: self monticelloTimestamps_code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2142
	    value: 'description - monticello'.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2143
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2144
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2145
    "Created: / 18-08-2006 / 16:22:37 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2146
    "Modified: / 09-11-2010 / 18:41:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2147
    "Modified: / 21-12-2011 / 16:42:41 / cg"
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2148
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2149
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2150
legalCopyright_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2151
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2152
	s nextPutLine:'legalCopyright'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2153
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #legalCopyright) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2154
	s cr; nextPutLine:'    ^ ', self legalCopyright storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2155
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2156
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2157
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2158
     self legalCopyright_code
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2159
     stx_libbasic3 legalCopyright_code
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2160
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2161
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2162
    "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
  2163
    "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
  2164
!
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2165
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2166
mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2167
    "generate the code of the #mandatoryPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2168
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2169
    |preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2170
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2171
    preRequisites := self searchForPreRequisites first.
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2172
    preRequisites 
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2173
        removeAllKeys:self excludedFromMandatoryPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2174
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2175
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2176
    self checkForBadReferences:preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2177
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2178
    ^ String streamContents:[:s |
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2179
        s nextPutLine:'mandatoryPreRequisites'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2180
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #mandatoryPreRequisites) comment; nextPutLine:'"'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2181
        s nextPutLine:''.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2182
        s nextPutLine:'    ^ #('.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2183
        preRequisites keys asSortedCollection do:[:eachPackageID |
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2184
            |reason|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2185
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2186
            s spaces:8.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2187
            eachPackageID asSymbol storeOn:s.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2188
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2189
            reason notEmptyOrNil ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2190
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2191
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2192
            s cr.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2193
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2194
        s nextPutLine:'    )'
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2195
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2196
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2197
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2198
     demo_demoApp1 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2199
     stx_libbasic3 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2200
     stx_libtool2 mandatoryPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2201
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2202
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2203
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2204
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2205
    "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
  2206
    "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
  2207
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2208
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2209
productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2210
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2211
	s nextPutLine:'productInstallDirBaseName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2212
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productInstallDirBaseName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2213
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2214
	nextPutLine:'    ^ (self package asCollectionOfSubstringsSeparatedByAny:'':/'') last'.
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2215
    ].
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2216
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2217
    "
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2218
     ApplicationDefinition productInstallDirBaseName_code
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2219
     stx_libbasic3 productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2220
     stx_clients_Clock_QlockTwoWatchApplication productInstallDirBaseName_code
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2221
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2222
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2223
    "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
  2224
    "Modified: / 05-03-2014 / 17:00:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2225
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  2226
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2227
productName_code
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2228
    "generate code that answers the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2229
12541
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2230
    ^ self productName_codeFor:(self productName)
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2231
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2232
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2233
     self productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2234
     stx_libbasic3 productName_code
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2235
    "
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2236
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2237
    "Created: / 18-08-2006 / 16:14:19 / cg"
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2238
!
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2239
Claus Gittinger <cg@exept.de>
parents: 12526
diff changeset
  2240
productName_codeFor:aString
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2241
    "generate code that answers aString as the product name."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  2242
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2243
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2244
	s nextPutLine:'productName'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2245
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #productName) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2246
	s cr; nextPutLine:'    ^ ',aString storeString.
9998
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2247
    ].
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2248
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2249
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2250
     self productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2251
     stx_libbasic3 productName_code
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2252
    "
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2253
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2254
    "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
  2255
    "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
  2256
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2257
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2258
referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2259
    "generate the code of the #referencedPreRequisites method"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2260
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2261
    |preRequisitesColl preRequisites|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2262
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2263
    preRequisitesColl := self searchForPreRequisites.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  2264
    preRequisites := preRequisitesColl second.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2265
    preRequisites
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2266
        removeAllKeys:self excludedFromPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2267
        removeAllKeys:self excludedFromRequiredPreRequisites ifAbsent:[];
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2268
        removeAllKeys:preRequisitesColl first keys ifAbsent:[].  "remove the mandatory prerequisites"
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2269
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2270
    self checkForBadReferences:preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2271
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2272
    ^ String streamContents:[:s |
23125
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2273
        s nextPutLine:'referencedPreRequisites'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2274
        s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #referencedPreRequisites) comment; nextPutLine:'"'.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2275
        s nextPutLine:''.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2276
        s nextPutLine:'    ^ #('.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2277
        preRequisites keys asSortedCollection do:[:eachPackageID |
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2278
            |reason|
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2279
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2280
            s spaces:8.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2281
            eachPackageID asSymbol storeOn:s.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2282
            reason := preRequisites at:eachPackageID ifAbsent:[nil].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2283
            reason notEmptyOrNil ifTrue:[
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2284
                s nextPutAll:'    "'; nextPutAll:reason anElement; nextPut:$".
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2285
            ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2286
            s cr.
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2287
        ].
30c588bd215b #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23124
diff changeset
  2288
        s nextPutLine:'    )'
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2289
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2290
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2291
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2292
     demo_demoApp1 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2293
     stx_libbasic3 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2294
     stx_libtool2 referencedPreRequisites_code
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2295
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2296
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2297
    "Modified: / 08-08-2006 / 19:24:34 / fm"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2298
    "Created: / 17-08-2006 / 21:28:09 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2299
    "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
  2300
    "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
  2301
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2302
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2303
subProjects_code
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2304
    "generate the code of the #subProjects method.
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2305
     Returns nil if no such code is needed (because there are none)"
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2306
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2307
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2308
	s nextPutLine:'subProjects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2309
	s nextPutAll: '    "'; nextPutAll: (self class superclass lookupMethodFor: #subProjects) comment; nextPutLine:'"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2310
	s nextPutLine:''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2311
	s nextPutLine:'    ^ #('.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2312
	ProjectDefinition allSubclassesDo:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2313
	    (each package startsWith:(self package,'/')) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2314
		s nextPutLine:'        #''',each package,''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2315
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2316
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2317
	s nextPutLine:'    )'
14988
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2318
    ].
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
  2319
15aa39f0f5cb Fix in ProjectDefinition - use up-to-date comment when (re)generating methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16213
diff changeset
  2320
    "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
  2321
!
3c06d7207200 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14984
diff changeset
  2322
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2323
svnRevisionNr_code: revisionNrOrNil
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2324
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2325
	s nextPutLine:'svnRevisionNr'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2326
	s nextPutLine:'    "Return a SVN revision number of myself.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2327
	s nextPutLine:'     This number is updated after a commit"'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2328
	s cr;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2329
	nextPutLine:'    ^ "$SVN-Revision:"''', ('%-16s' printf: (Array with: revisionNrOrNil printString)) , '''"$"'.
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2330
    ].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2331
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2332
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2333
     self svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2334
     stx_libbasic3 svnRevisionNr_code
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2335
    "
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2336
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2337
    "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
  2338
    "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
  2339
    "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
  2340
! !
49e54dc8ecc0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9996
diff changeset
  2341
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2342
!ProjectDefinition class methodsFor:'defaults'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2343
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2344
applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2345
    GUIApplicationType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2346
    ^ Array with:GUIApplicationType with:NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2347
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2348
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2349
     self applicationTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2350
    "
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2351
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2352
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2353
defaultCategory
10466
aa61cdb54299 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10434
diff changeset
  2354
    ^'* Projects & Packages *'
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2355
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2356
    "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
  2357
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  2358
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2359
defaultProjectType
9745
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2360
    ^ self libraryTypes first
82c6afc86a68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9733
diff changeset
  2361
    "/ ^ self applicationTypes first
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2362
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2363
    "Created: / 23-08-2006 / 14:27:32 / cg"
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2364
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2365
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2366
defaultProjectTypeForGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2367
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2368
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2369
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2370
defaultProjectTypeForNonGUIApplication
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2371
    ^ NonGUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2372
!
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2373
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2374
folderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2375
    ^ FolderForSubApplicationsType
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2376
!
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2377
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2378
guiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2379
    ^ GUIApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2380
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2381
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2382
libraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2383
    ^ LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2384
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2385
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2386
libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2387
    LibraryType isNil ifTrue:[self initialize].
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2388
    ^ Array with:LibraryType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2389
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2390
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2391
     self libraryTypes
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2392
    "
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2393
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2394
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2395
nonGuiApplicationType
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  2396
    ^ NonGUIApplicationType
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2397
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2398
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2399
projectTypeSelectors
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2400
    "a list of possible project type selectors"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2401
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2402
    ^ #( libraryType guiApplicationType nonGuiApplicationType folderForSubApplicationsType )
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2403
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2404
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2405
     self libraryType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2406
     self guiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2407
     self nonGuiApplicationType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2408
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2409
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2410
    "Created: / 23-08-2006 / 14:27:32 / cg"
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2411
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2412
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2413
projectTypes
16541
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2414
    "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
  2415
d258a79cee6e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16540
diff changeset
  2416
    ^ self libraryTypes , self applicationTypes , { FolderForSubApplicationsType }
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2417
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2418
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2419
     self projectTypes
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2420
    "
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  2421
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  2422
    "Created: / 23-08-2006 / 14:27:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2423
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2424
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  2425
!ProjectDefinition class methodsFor:'description'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2426
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2427
excludedFromMandatoryPreRequisites
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2428
    "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
  2429
     mandatory prerequisites list.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2430
     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
  2431
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2432
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2433
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2434
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2435
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2436
excludedFromPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2437
    "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
  2438
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2439
     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
  2440
     prerequisites lists (both).
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2441
     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
  2442
     my classes is considered to be a prerequisite package."
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2443
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2444
    ^ #()
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2445
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2446
    "Modified: / 17-08-2006 / 19:48:59 / cg"
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2447
!
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2448
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2449
excludedFromRequiredPreRequisites
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2450
    "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
  2451
     required prerequisites list.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2452
     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
  2453
     my classes is considered to be a prerequisite package."
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2454
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2455
    ^ #()
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2456
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2457
    "Modified: / 17-08-2006 / 19:48:59 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2458
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  2459
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2460
excludedFromSubProjects
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2461
    "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
  2462
     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
  2463
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2464
    ^ #()
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2465
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  2466
    "Modified: / 17-08-2006 / 19:49:40 / cg"
10039
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2467
!
0270d37a36c8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10034
diff changeset
  2468
14808
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2469
includedInPreRequisites
17577
53adcc238353 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17552
diff changeset
  2470
    "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
  2471
     even if not found by the automatic search.
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2472
     Redefine this, if classes from other packages are referred to via reflection
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2473
     or by constructing names dynamically (i.e. the search cannot find it)"
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2474
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2475
    ^ #()
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2476
!
9b6499b3ca93 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14790
diff changeset
  2477
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2478
includedInSubProjects
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2479
    "list packages which are to be explicitely included in the subproject list,
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2480
     even if not found by the automatic search.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2481
     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
  2482
     for those, redefine #includedInPreRequisites."
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2483
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2484
    ^ #()
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2485
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2486
    "Modified: / 17-08-2006 / 19:57:46 / cg"
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2487
!
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  2488
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2489
mandatoryPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2490
    "list packages which are mandatory as a prerequisite.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2491
     This are packages containing superclasses of my classes and classes which
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2492
     are extended by myself.
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  2493
     They are mandatory, because we need these packages as a prerequisite for loading and compiling.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2494
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2495
     by searching along the inheritance chain of all of my classes.
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2496
     Please take a look at the #referencedPreRequisites method as well."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2497
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2498
    ^ #()
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2499
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2500
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2501
nonMandatorySubProjects
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2502
    "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
  2503
     Make will give a warning, but proceed.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2504
     Should be a subset of what is returned by #subProjects"
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2505
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2506
    ^ #()
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2507
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2508
    "Created: / 07-03-2019 / 17:31:36 / Claus Gittinger"
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2509
!
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  2510
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2511
preRequisites
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  2512
    "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
  2513
     This is used to build dependency chains in makefiles"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2514
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2515
    "use an OrderedSet here, so that mandatory prerequisites come first"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2516
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2517
    ^ OrderedSet new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2518
	addAll:self mandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2519
	addAll:self referencedPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2520
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2521
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2522
	yourself.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2523
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2524
    "Modified: / 17-08-2006 / 19:54:21 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2525
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2526
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2527
preRequisitesFor:packageId
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2528
    |def|
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2529
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2530
    def := self definitionClassForPackage:packageId.
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2531
    def isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2532
	"Maybe the package is not loaded? Try to load it..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2533
	[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2534
	    Smalltalk loadPackage:packageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2535
	    def := self definitionClassForPackage:packageId
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2536
	] on:PackageLoadError do:[:ex| def := nil].
13820
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2537
    ].
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2538
    ^ def isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2539
	"Still no project definition - maybe it does not exist?"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2540
	Transcript showCR:'Warning: no definition class for package: ', packageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2541
	((self searchForPreRequisites:packageId)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2542
	    fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2543
    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2544
	def effectivePreRequisites
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2545
    ]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2546
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2547
    "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
  2548
    "Modified: / 18-11-2011 / 14:52:43 / cg"
f46f7306eea2 changed: #preRequisitesFor:
Claus Gittinger <cg@exept.de>
parents: 13809
diff changeset
  2549
    "Modified (format): / 19-11-2011 / 11:25:36 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  2550
    "Modified: / 17-01-2017 / 16:55:39 / stefan"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2551
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  2552
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2553
referencedPreRequisites
16213
27e97f818e5b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16179
diff changeset
  2554
    "list packages which are a prerequisite, because they contain
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2555
     classes which are referenced by my classes.
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2556
     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
  2557
     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
  2558
     unloaded then may lead to a runtime doesNotUnderstand error, unless the caller
5546981c5eb9 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17461
diff changeset
  2559
     includes explicit checks for the package being present.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2560
     This method is generated automatically,
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2561
     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
  2562
     Please also take a look at the #mandatoryPreRequisites method"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2563
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  2564
    ^ #()
12186
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2565
!
Claus Gittinger <cg@exept.de>
parents: 12143
diff changeset
  2566
9685
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2567
siblingsAreSubProjects
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2568
    ^ false
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2569
!
e6a533e0a5e5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9683
diff changeset
  2570
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2571
splashFileName
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2572
    "answer the base-name of the splash bitmap.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2573
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2574
     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
  2575
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2576
    ^ nil.
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2577
!
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  2578
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2579
subProjects
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2580
    "list packages which are known as subprojects.
14959
96af920715ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14957
diff changeset
  2581
     The generated makefile will enter those and make there as well.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  2582
     However: they are not forced to be loaded when a package is loaded;
20664
7d208f11cb95 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20624
diff changeset
  2583
     for those, redefine #referencedPrerequisites or #mandatoryPreRequisites."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2584
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2585
    ^ #()
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2586
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2587
    "Modified: / 17-08-2006 / 19:57:46 / cg"
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2588
!
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2589
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2590
superProject
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2591
    "return the package which contains me as subProject,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2592
     or if not found, which contains me under its directory hierarchy,
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2593
     or nil if none found"
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2594
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2595
    |p superPackage idx|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2596
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2597
    p := self package.
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2598
    ProjectDefinition allSubclassesDo:[:prjDef |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2599
	(prjDef subProjects includes:p) ifTrue:[^ prjDef].
21451
44f655bf5c80 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 21449
diff changeset
  2600
    ].
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2601
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2602
	(idx := p lastIndexOf:$/) ~~ 0
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2603
    ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2604
	|defClass|
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
	superPackage := p copyTo:idx-1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2607
	(defClass := ProjectDefinition definitionClassForPackage:superPackage) notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2608
	    ^ defClass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2609
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2610
	p := superPackage.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2611
    ].
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2612
    ^ nil
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2613
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2614
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2615
     stx_goodies_refactoryBrowser_lint superProject
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2616
     exept_expecco_plugin_guiBrowser superProject
21449
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2617
    "
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2618
fab3dc7eb9be #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 21259
diff changeset
  2619
    "Created: / 15-02-2017 / 16:49:05 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2620
! !
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2621
12372
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2622
!ProjectDefinition class methodsFor:'description - actions'!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2623
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2624
postLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2625
    "invoked after loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2626
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2627
    "/ 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
  2628
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2629
    "Modified: / 17-08-2006 / 19:59:17 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2630
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2631
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2632
preLoadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2633
    "invoked before loading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2634
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2635
    "/ 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
  2636
!
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2637
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2638
preUnloadAction
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2639
    "invoked before unloading a project"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2640
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2641
    "/ 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
  2642
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2643
    "Modified: / 17-08-2006 / 19:59:26 / cg"
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2644
! !
f2e1ae83b5a4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12371
diff changeset
  2645
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2646
!ProjectDefinition class methodsFor:'description - actions - hg'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2647
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2648
hgPostLoad
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2649
    "possibly update an version_HG"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2650
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2651
    <postLoad>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2652
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2653
    | dir repo versionMethod |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2654
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2655
    HGRepository notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2656
        self binaryRevisionString isNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2657
            dir := Smalltalk getPackageDirectoryForPackage: self package.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2658
            dir notNil ifTrue:[  
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2659
                dir := HGRepository discover: dir.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2660
                dir notNil ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2661
                    repo := HGRepository on: dir.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2662
                    versionMethod := HGSourceCodeManager ensureVersionMethodInClass: self package: self package.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2663
                    versionMethod annotateWith: 
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2664
                        (HGRevisionAnnotation revision: repo workingCopy changesetId)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2665
                ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2666
            ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2667
        ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2668
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2669
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2670
    "Created: / 26-11-2012 / 13:06:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2671
    "Modified: / 07-02-2014 / 10:59:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  2672
! !
16256
466564fe326f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16222
diff changeset
  2673
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  2674
!ProjectDefinition class methodsFor:'description - compilation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  2675
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2676
additionalBaseAddressDefinition_bc_dot_mak
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2677
    "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
  2678
     Subclasses may redefine this to something like
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2679
	LIB_BASE=$(LIBWIDG_BASE)
11940
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2680
     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
  2681
    "
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2682
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2683
    ^ nil
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2684
!
cb9e5867b474 base address definition moved into a separate spec
Claus Gittinger <cg@exept.de>
parents: 11937
diff changeset
  2685
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2686
additionalDefinitions
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  2687
    "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
  2688
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2689
    ^ ''
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2690
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2691
    "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
  2692
!
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2693
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2694
additionalDefinitions_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2695
    "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
  2696
     Subclasses may redefine this."
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2697
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2698
    ^ self additionalDefinitions_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2699
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2700
    "Created: / 22-08-2006 / 23:59:32 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2701
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2702
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2703
additionalDefinitions_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2704
    "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
  2705
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2706
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2707
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2708
    "Created: / 22-08-2006 / 23:53:08 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2709
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2710
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2711
additionalDefinitions_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2712
    "obsolete - kept for compatibility with old project files"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2713
11829
2d880f341cfc #additionalDefinitions for both bc_dot_mak and make_dot_proto
Stefan Vogel <sv@exept.de>
parents: 11789
diff changeset
  2714
    ^ self additionalDefinitions
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2715
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2716
    "Created: / 22-08-2006 / 23:59:32 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2717
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2718
16328
cbe0d174d3b5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16257
diff changeset
  2719
additionalHeaderRulesUsingTemplate:template withSeparator:pathSeparator
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2720
    "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
  2721
     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
  2722
     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
  2723
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2724
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2725
	(self extensionClassesWithSuperclasses:true) do:[:eachExtendedClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2726
	    |headerFileDirPath baseFilename|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2727
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2728
	    (eachExtendedClass isLoaded not or:[eachExtendedClass wasAutoloaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2729
		headerFileDirPath := self pathToPackage:eachExtendedClass package withSeparator:pathSeparator.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2730
		baseFilename := self filenameForClass:eachExtendedClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2731
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2732
		s nextPutAll:(template
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2733
				bindWith:headerFileDirPath
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2734
				with:baseFilename).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2735
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2736
	].
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2737
    ].
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2738
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  2739
    "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
  2740
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2741
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2742
additionalHeaderRules_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2743
    "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
  2744
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2745
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2746
	additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_bc_dot_mak)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2747
	withSeparator:'\'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2748
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2749
    "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
  2750
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2751
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2752
additionalHeaderRules_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2753
    "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
  2754
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  2755
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2756
	additionalHeaderRulesUsingTemplate:(self singleHeaderRuleTemplate_make_dot_proto)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2757
	withSeparator:'/'
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2758
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2759
    "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
  2760
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  2761
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2762
additionalLinkLibraries_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2763
    "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
  2764
     Subclasses may redefine this"
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
    "backward compatibilty with old projects"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2767
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2768
    ^ self additionalLinkLibraries_nt_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2769
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2770
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2771
    "Created: / 22-08-2006 / 23:53:33 / cg"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2772
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2773
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2774
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
  2775
    "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
  2776
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2777
    ^ ''
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2778
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2779
    "Created: / 22-08-2006 / 23:53:33 / cg"
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2780
!
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  2781
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2782
additionalLinkLibraries_nt_dot_mak
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2783
    "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
  2784
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2785
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2786
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2787
    "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
  2788
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  2789
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2790
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
  2791
    "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
  2792
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2793
     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
  2794
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2795
    | 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
  2796
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2797
    cls := self.
20503
e598faa37310 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 20424
diff changeset
  2798
    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
  2799
    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
  2800
    [ cls ~~ Object ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2801
	cls class selectorsAndMethodsDo:[:selector :method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2802
	    method annotationsAt: #file:target: orAt:#file:target:extends: do: [ :annotation |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2803
		(processed includes: selector) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2804
		    | file target extends contents |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2805
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2806
		    processed add: selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2807
		    file := annotation argumentAt: 1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2808
		    target := annotation argumentAt: 2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2809
		    annotation key == #file:target:extends: ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2810
			extends := annotation argumentAt: 3.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2811
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2812
		    (#('Make.proto' 'bc.mak' ) includes: file) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2813
			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
  2814
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2815
		    extends notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2816
			file = 'Make.proto' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2817
			    (#('all' 'clean' ) includes: extends) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2818
				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
  2819
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2820
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2821
			file = 'bc.mak' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2822
			    (#('ALL' 'clean') includes: extends) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2823
				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
  2824
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2825
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2826
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2827
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2828
		    (fileToGenerateFor = file and:[(contents := self perform: selector) notNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2829
			rules nextPutAll: contents.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2830
			rules cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2831
			extends notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2832
			    rules nextPutAll: extends; nextPutAll:'::'; space; nextPutLine: target; cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2833
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2834
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2835
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2836
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2837
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2838
	cls := cls superclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2839
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2840
    fileToGenerateFor = 'Make.proto' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2841
	rules nextPutAll: self additionalRules_make_dot_proto.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2842
    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2843
	fileToGenerateFor = 'bc.mak' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2844
	    rules nextPutAll: self additionalRules_bc_dot_mak
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2845
	]
17366
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2846
    ].
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2847
    ^ 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
  2848
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2849
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2850
    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
  2851
    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
  2852
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2853
    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
  2854
    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
  2855
    "
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2856
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2857
    "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
  2858
    "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
  2859
!
ef60968bb4e7 Added annotation-based support to add extra rules to generated makefiles.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17344
diff changeset
  2860
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2861
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
  2862
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2863
    (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
  2864
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2865
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2866
# **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
  2867
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2868
# 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
  2869
# 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
  2870
# 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
  2871
!!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
  2872
$(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
  2873
!!ENDIF
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2874
' 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
  2875
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2876
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2877
	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
  2878
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2879
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2880
    "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
  2881
    "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
  2882
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2883
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2884
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
  2885
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2886
    (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
  2887
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2888
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2889
# 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
  2890
# 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
  2891
# definition class always contains correct binary revision string.
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2892
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
  2893
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
  2894
 %1.$(O): $(shell hg root)/.hg/dirstate
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2895
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
  2896
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2897
' 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
  2898
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2899
    "
23310
a2f60b380bcb #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 23294
diff changeset
  2900
        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
  2901
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2902
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2903
    "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
  2904
    "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
  2905
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2906
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2907
additionalRulesSvn_make_dot_proto
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2908
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2909
    (self class includesSelector: #svnRevisionNr) ifFalse:[^''].
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2910
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2911
    ^'
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2912
# 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
  2913
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
  2914
.svnversion: *.st
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2915
	if [ -d .svn ]; then \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2916
		rev=$(shell svnversion -n); \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2917
		echo -n $$rev > .svnversion; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2918
	else \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2919
		echo -n exported > .svnversion; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2920
	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
  2921
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2922
%1.o: %1.st .svnversion
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2923
	@if [ -d .svn ]; then \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2924
		rev2="$(shell printf "%-16s" $$(cat .svnversion))"; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2925
		echo "  [SV]  Expanding svnRevisionNo in $1.st"; \
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2926
		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
  2927
	fi
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2928
	$(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
  2929
	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
  2930
	$(MAKE) .%1.svn.$(O)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2931
	@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
  2932
endif
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2933
' 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
  2934
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2935
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  2936
	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
  2937
    "
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2938
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2939
    "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
  2940
    "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
  2941
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2942
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2943
additionalRules_bc_dot_mak
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2944
    "obsolete - kept for compatibility with old project files"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2945
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2946
    ^ ''
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2947
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2948
    "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
  2949
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2950
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2951
additionalRules_make_dot_proto
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2952
    "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
  2953
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2954
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2955
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2956
    "Created: / 22-08-2006 / 23:59:16 / cg"
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2957
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2958
9972
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2959
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
  2960
    "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
  2961
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2962
    ^ ''
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2963
!
c63164ec0584 Allow shared libraries to be defined for a class lib (needed for liboracle)
Stefan Vogel <sv@exept.de>
parents: 9964
diff changeset
  2964
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2965
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
  2966
    "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
  2967
     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
  2968
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2969
    "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
  2970
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  2971
    ^''
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2972
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2973
    "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
  2974
    "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
  2975
!
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  2976
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2977
additionalTargets_bc_dot_mak
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2978
    "can list additional bc.mak targets (additional windows support files)"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  2979
10312
7f71d47b09bd #additionalTargets_bc_dot_mak for applications
Stefan Vogel <sv@exept.de>
parents: 10306
diff changeset
  2980
    ^ ''
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2981
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2982
    "Created: / 23-08-2006 / 00:00:35 / cg"
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2983
    "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
  2984
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  2985
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2986
additionalTargets_make_dot_proto
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2987
    "can list additional Make.proto targets (additional unix support files)"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2988
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2989
    ^ ''
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2990
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2991
    "Created: / 22-08-2006 / 23:53:33 / cg"
23517
a28496b2a7a3 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23516
diff changeset
  2992
    "Modified (comment): / 07-11-2018 / 19:20:02 / Claus Gittinger"
9625
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2993
!
dc6a4ebdb1f4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9624
diff changeset
  2994
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2995
additional_post_nsis_rules
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2996
    "this will be performed after the nsis did build the program installer"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2997
    ^ ''
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2998
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  2999
    "Created: / 02-06-2015 / 17:41:37 / gg"
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  3000
!
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  3001
19592
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3002
additional_post_nsis_rules64
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3003
    "this will be performed after the nsis did build the program installer for 64bit build"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3004
    ^ ''
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3005
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3006
    "Created: / 02-06-2015 / 17:41:37 / gg"
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3007
!
724f8970b021 #FEATURE by sr
sr
parents: 19587
diff changeset
  3008
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3009
globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3010
    "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
  3011
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3012
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3013
    ^ ''
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3014
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3015
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3016
globalDefines_unix
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3017
    "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
  3018
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3019
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3020
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3021
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3022
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3023
globalDefines_win32
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3024
    "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
  3025
     an subprojects"
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3026
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3027
    ^ self globalDefines
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3028
!
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3029
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3030
localDefines
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3031
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3032
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3033
    ^ ''
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3034
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3035
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3036
localDefines_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3037
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3038
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3039
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3040
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3041
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3042
localDefines_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3043
    "allow for the specification of additional defines for stc compilation"
10331
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3044
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3045
    ^ self localDefines
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3046
!
3a697063403e Add localDefines
Stefan Vogel <sv@exept.de>
parents: 10317
diff changeset
  3047
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3048
localIncludes
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3049
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3050
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3051
    ^ ''
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3052
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3053
    "Created: / 06-09-2006 / 18:14:31 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3054
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3055
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3056
localIncludes_unix
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3057
    "allow for the specification of additional include directories"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3058
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3059
    ^ self makeUnixIncludes:(self localIncludes)
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3060
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3061
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3062
    "Modified: / 06-09-2006 / 18:15:26 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3063
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3064
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3065
localIncludes_win32
10979
8dca736dfb68 Fix LOCALDEFINES
Stefan Vogel <sv@exept.de>
parents: 10976
diff changeset
  3066
    "allow for the specification of additional include directories"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3067
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3068
    ^ self makeWin32Includes:(self localIncludes)
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3069
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3070
    "Created: / 18-08-2006 / 12:50:27 / cg"
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  3071
    "Modified: / 06-09-2006 / 18:15:37 / cg"
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3072
!
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3073
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
  3074
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
  3075
    "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
  3076
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3077
    ^ ''
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3078
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3079
    "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
  3080
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3081
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3082
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
  3083
    "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
  3084
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3085
    ^ 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
  3086
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3087
    "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
  3088
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3089
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3090
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
  3091
    "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
  3092
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3093
    ^ 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
  3094
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3095
    "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
  3096
!
8b244e994b96 Allow to define primary make target (needed, if sub.makes have to be performed -
Stefan Vogel <sv@exept.de>
parents: 11562
diff changeset
  3097
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3098
singleHeaderRuleTemplate_bc_dot_mak
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3099
    "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
  3100
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3101
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  3102
%1\%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  3103
',Character tab,'pushd %1 \
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  3104
',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
  3105
',Character tab,'& popd
13687
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3106
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3107
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3108
    "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
  3109
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3110
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3111
singleHeaderRuleTemplate_make_dot_proto
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3112
    "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
  3113
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3114
    ^ '
13688
4f43dc4a3182 added: #additionalHeaderRulesUsingTemplate:pathConverter:
Claus Gittinger <cg@exept.de>
parents: 13687
diff changeset
  3115
%1/%2.$(H):
17253
bd800f89aaa4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17236
diff changeset
  3116
',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
  3117
'
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3118
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3119
    "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
  3120
!
1577ea868878 generate rules for header files of extended classes
Claus Gittinger <cg@exept.de>
parents: 13650
diff changeset
  3121
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3122
stcOptimizationOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3123
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  3124
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3125
     For now, the following variants are useful:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3126
	+optspace3                  most compact code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3127
				    - use for all gui, application code.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3128
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3129
	+optinline +optinline2 +inlineNew
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3130
				    fastest code
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3131
				    - use only for computation-intensive classes"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3132
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3133
    ^ '+optspace3'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3134
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3135
    "Created: / 18-08-2006 / 12:50:27 / cg"
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
stcWarningOptions
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3139
    "see the stc reference / stc usage for options.
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  3140
     Can be redefined in concrete packages.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3141
     For now, the following variants are useful:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3142
	-warn                   no warnings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3143
	-warnNonStandard        no warnings about non-standard smalltalk features
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3144
	-warnUnused             no warnings about unused variables"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3145
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  3146
    ^ '-warnNonStandard'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3147
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3148
    "Created: / 18-08-2006 / 12:51:38 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3149
! !
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3150
22688
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3151
!ProjectDefinition class methodsFor:'description - contents'!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3152
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3153
additionalClassNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3154
    "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
  3155
     in the image (someone may have removed it by purpose)"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3156
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3157
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3158
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3159
    "Created: / 21-08-2006 / 19:53:04 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3160
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3161
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3162
classNamesAndAttributes
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3163
    "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
  3164
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3165
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3166
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3167
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3168
    "Created: / 07-08-2006 / 19:02:57 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3169
    "Modified: / 07-08-2006 / 21:25:25 / fm"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3170
    "Modified: / 17-08-2006 / 20:47:20 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3171
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3172
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3173
extensionMethodNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3174
    "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
  3175
     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
  3176
     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
  3177
     if it has extensions."
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3178
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3179
    "/ should this be a subclassResponsibility here ?
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3180
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3181
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3182
    "Modified: / 17-08-2006 / 20:49:51 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3183
!
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3184
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3185
ignoredClassNames
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3186
    "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
  3187
     generated classNamesAndAttributes spec"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3188
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3189
    ^ #()
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3190
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3191
    "Created: / 23-01-2007 / 19:08:27 / cg"
3a3f9bfeec6e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22657
diff changeset
  3192
! !
22657
2aea3942f531 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22387
diff changeset
  3193
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3194
!ProjectDefinition class methodsFor:'description - java'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3195
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3196
javaBundle
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3197
    "Defines a Java code bundle provided by this package.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3198
     Used by STX:LIBJAVA"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3199
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3200
    ^nil
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3201
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3202
    "Created: / 15-01-2013 / 16:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3203
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3204
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3205
javaClassPath
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3206
    | bundle |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3207
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3208
    bundle := self javaBundle.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3209
    ^ bundle notNil ifTrue:[ bundle classPath ] ifFalse: [ #() ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3210
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3211
    "Created: / 13-12-2011 / 23:48:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3212
    "Modified: / 21-01-2015 / 11:11:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3213
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3214
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3215
javaSourcePath
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3216
    | bundle |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3217
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3218
    bundle := self javaBundle.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3219
    ^ bundle notNil ifTrue:[ bundle sourcePath ] ifFalse: [ #() ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3220
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3221
    "Created: / 13-12-2011 / 23:49:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3222
    "Modified: / 21-01-2015 / 11:11:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3223
! !
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  3224
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3225
!ProjectDefinition class methodsFor:'description - project information'!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3226
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3227
applicationAdditionalIconFileNames
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3228
    "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
  3229
    (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
  3230
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3231
    ^ #()
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3232
!
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  3233
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3234
applicationDocumentTypeDescriptions
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3235
    "Return the OSX document type descriptions.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3236
     For deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3237
     on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3238
     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
  3239
     If the deployed app can/should handle this, redefine this
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3240
     to return a collection of instances of ApplicationDocumentTypeDescription."
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3241
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3242
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3243
    ^ nil
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3244
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  3245
    "Modified (comment): / 24-02-2017 / 09:36:42 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3246
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3247
11039
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3248
applicationIconFileName
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3249
    "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
  3250
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3251
    ^ nil
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3252
!
1f977c01e7df Fix usage of #iconFilename vs. #applicationIconFilename
Stefan Vogel <sv@exept.de>
parents: 11035
diff changeset
  3253
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3254
applicationIconFileNameLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3255
    "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
  3256
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3257
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3258
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3259
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3260
applicationIconFileNameOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3261
    "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
  3262
     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
  3263
     multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3264
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3265
    ^ nil
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3266
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3267
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3268
applicationIconFileNameWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3269
    "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
  3270
     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
  3271
     single or multiple resolutions."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3272
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3273
    "/ for backward compatibility
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3274
    ^ self applicationIconFileName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3275
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  3276
21571
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3277
applicationReadMeFileNameOSX
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3278
    "Return the OSX filename for a readme file.
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3279
     If nil, nothing is installed;
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3280
     if non-nil, it is copied into the dmg folder."
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3281
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3282
    ^ nil
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3283
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3284
    "Created: / 24-02-2017 / 14:21:57 / cg"
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3285
!
102c0d9941b7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 21569
diff changeset
  3286
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3287
companyName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3288
    "Returns a company string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3289
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3290
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3291
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3292
    |m|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3293
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3294
    m := self module.
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3295
    (m = 'stx') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3296
	^ 'Claus Gittinger & eXept Software AG'
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3297
    ].
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3298
    (m = 'exept') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3299
	^ 'eXept Software AG'
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3300
    ].
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3301
    ^ 'My Company'
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3302
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3303
    "Modified: / 18-08-2006 / 16:08:20 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3304
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3305
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3306
description
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3307
    "Returns a description string which will appear in vc.def / bc.def"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3308
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3309
    ^self productName,' ',self packageName
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3310
"/    ^ self name
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3311
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3312
    "Created: / 08-08-2006 / 11:15:01 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3313
    "Modified: / 17-08-2006 / 20:53:34 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3314
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3315
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3316
fileDescription
10416
e4fe2bf2276d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10414
diff changeset
  3317
    "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
  3318
9803
cbec7d6caec8 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9799
diff changeset
  3319
    ^self description
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3320
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3321
    "Modified: / 17-08-2006 / 20:27:07 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3322
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3323
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3324
fileMajorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3325
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3326
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3327
    ^ self majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3328
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3329
    "Created: / 18-08-2006 / 12:03:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3330
    "Modified: / 30-08-2006 / 18:50:51 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3331
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3332
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3333
fileMinorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3334
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3335
11100
c9ec12ef4b3b Set default for fileMajorVersionNumber and fileMajorVersionNumber
Stefan Vogel <sv@exept.de>
parents: 11074
diff changeset
  3336
    ^ self minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3337
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3338
    "Created: / 18-08-2006 / 12:03:13 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3339
    "Modified: / 30-08-2006 / 18:50:46 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3340
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3341
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3342
fileReleaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3343
    "Returns a releaseNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3344
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3345
    "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
  3346
     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
  3347
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3348
    "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
  3349
11035
ff88ec6339a3 Generate valid project.rc files even if the CVS revision string ends with
Stefan Vogel <sv@exept.de>
parents: 10979
diff changeset
  3350
    ^ self cvsRevision last upTo:$m
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3351
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3352
    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
  3353
    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
  3354
    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
  3355
    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
  3356
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3357
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3358
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3359
    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
  3360
    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
  3361
    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
  3362
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3363
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3364
    "Created: / 18-08-2006 / 12:02:58 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3365
    "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
  3366
    "Modified: / 23-11-2012 / 11:24:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3367
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3368
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3369
fileRevisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3370
    "Returns a revisionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3371
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3372
    "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
  3373
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3374
    "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
  3375
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  3376
    ^ self cvsRevision first
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3377
14859
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3378
    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
  3379
    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
  3380
    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
  3381
    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
  3382
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3383
    | nr |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3384
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3385
    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
  3386
    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
  3387
    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
  3388
    ^nr
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3389
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3390
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3391
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3392
    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
  3393
    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
  3394
    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
  3395
    "
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  3396
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3397
    "Created: / 18-08-2006 / 12:02:39 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3398
    "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
  3399
    "Modified: / 23-11-2012 / 11:24:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3400
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3401
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3402
fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3403
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3404
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3405
    "<major>.<minor>.<rev>.<rel> (such as '1.2.17.1') "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3406
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3407
    ^ '%1.%2.%3.%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3408
	bindWith:self fileMajorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3409
	with:self fileMinorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3410
	with:self fileRevisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3411
	with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3412
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3413
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3414
     self fileVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3415
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3416
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3417
    "Modified: / 30-08-2006 / 18:51:49 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3418
!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3419
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3420
fileVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3421
    "Returns a fileVersion string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3422
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3423
    "<major>,<minor>,<revision>,<release> (such as '2,17,1,2') "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3424
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3425
    ^ '%1,%2,%3,%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3426
	bindWith:self fileMajorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3427
	with:self fileMinorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3428
	with:self fileRevisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3429
	with:self fileReleaseNr.
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3430
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3431
    "Created: / 17-08-2006 / 20:16:17 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3432
    "Modified: / 30-08-2006 / 18:54:20 / cg"
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3433
!
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3434
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3435
internalName
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3436
    "Returns a name string which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3437
11041
3bb26d86e616 Fix #description and #internalName
Stefan Vogel <sv@exept.de>
parents: 11039
diff changeset
  3438
    ^ self package
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3439
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3440
    "Modified: / 17-08-2006 / 20:27:37 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3441
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3442
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3443
legalCopyright
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3444
    "Returns a copyright string which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3445
     Under win32, this is placed into the dll's file-info.
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3446
     Other systems may put it elsewhere, or ignore it."
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3447
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3448
    |m thisYear template|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3449
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3450
    m := self module.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3451
    thisYear := Date today year.
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3452
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  3453
    m = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3454
	"hardwired-default"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3455
	template := 'Copyright Claus Gittinger %1\nCopyright eXept Software AG %1'
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3456
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3457
	m = 'exept' ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3458
	    "hardwired-default"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3459
	    template := 'Copyright eXept Software AG %1'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3460
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3461
	    template := 'My CopyRight or CopyLeft %1'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3462
	].
20985
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3463
    ].
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3464
    ^ template bindWith:thisYear
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3465
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3466
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3467
     self legalCopyright
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3468
    "
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3469
76eb19c9242e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20982
diff changeset
  3470
    "Modified (comment): / 18-11-2016 / 12:23:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3471
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3472
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3473
majorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3474
    "Returns a versionNumber which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3475
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3476
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3477
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3478
     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
  3479
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3480
    ^ Smalltalk majorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3481
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3482
    "Created: / 17-08-2006 / 20:20:18 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3483
    "Modified: / 30-08-2006 / 18:52:13 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3484
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3485
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3486
minorVersionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3487
    "Returns a versionNumber which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3488
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3489
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3490
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3491
     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
  3492
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3493
    ^ Smalltalk minorVersionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3494
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3495
    "Created: / 17-08-2006 / 20:20:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3496
    "Modified: / 30-08-2006 / 18:52:16 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3497
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3498
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3499
productDate
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3500
    "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
  3501
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3502
    "take the current date - by default"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3503
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3504
    ^ Timestamp now printStringRFC1123Format
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3505
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3506
    "Created: / 17-08-2006 / 20:17:28 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3507
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3508
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3509
productDescription
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3510
    "Returns a description (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3511
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3512
    ^ self description
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3513
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3514
    "Created: / 21-12-2010 / 09:32:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3515
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3516
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3517
productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3518
    "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
  3519
     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
  3520
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3521
    ^ self productNameAsValidFilename
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3522
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3523
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3524
     stx_projects_smalltalk productName
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3525
     stx_projects_smalltalk productFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3526
     stx_libbasic productFilename
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3527
     stx_doc_coding_demoConsoleApp productFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3528
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3529
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3530
    "Created: / 01-03-2007 / 19:33:06 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3531
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3532
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3533
productInstallDir
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3534
    "Returns a default installDir which will appear in <app>.nsi."
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3535
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3536
    ^ '$PROGRAMFILES\',(self productInstallDirBaseName).
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3537
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3538
    "
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3539
     stx_projects_smalltalk productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3540
     stx_clients_Clock_QlockTwoWatchApplication productInstallDir
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3541
    "
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3542
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3543
    "Created: / 14-09-2006 / 21:23:01 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3544
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3545
13873
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3546
productInstallDirBaseName
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3547
    "Returns a default installDir which will appear in <app>.nsi.
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3548
     This is usually not the one you want to keep"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3549
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3550
    ^ self module
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3551
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3552
    "Created: / 21-12-2011 / 16:31:38 / cg"
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3553
!
Claus Gittinger <cg@exept.de>
parents: 13863
diff changeset
  3554
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3555
productLicense
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3556
    "Returns the license (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3557
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3558
    ^ 'Commercial'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3559
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3560
    "Created: / 21-12-2010 / 09:31:25 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3561
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3562
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3563
productMaintainer
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3564
    "Returns the maintainer (for autopackage)"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3565
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3566
    ^ self companyName
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3567
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3568
    "Created: / 21-12-2010 / 09:26:16 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3569
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3570
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3571
productName
9584
40fa96f1313a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9579
diff changeset
  3572
    "Returns a product name which will appear in <lib>.rc.
20564
c9f47a3f5e9c #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20550
diff changeset
  3573
     Under win32, this is placed into the dll's file-info.
15216
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3574
     This method is usually redefined in a concrete application definition"
5bea466a1c61 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15202
diff changeset
  3575
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3576
    |m|
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3577
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3578
    m := self module.
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3579
    m = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3580
	^ 'Smalltalk/X'
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3581
    ].
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3582
    m = 'exept' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3583
	^ 'eXept AddOns'
10785
da5023cdf55b no need for productName string (already inherited)
Claus Gittinger <cg@exept.de>
parents: 10774
diff changeset
  3584
    ].
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3585
    ^ nil.
10296
48eb9cc9eef0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10251
diff changeset
  3586
20982
32144b4ff22c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20952
diff changeset
  3587
    "Modified: / 18-11-2016 / 11:44:03 / cg"
21683
85425e233684 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21571
diff changeset
  3588
    "Modified: / 03-04-2017 / 19:09:22 / stefan"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3589
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3590
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3591
productNameAsValidFilename
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3592
    "Returns a filename generated from the product name.
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3593
     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
  3594
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3595
    |nm|
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3596
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3597
    nm := self productName.
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3598
    ^ nm copy replaceAny:'/\:;., ' with:$_
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3599
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3600
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3601
     'Smalltalk/X' replaceAny:'/\:;.,' with:nil
20546
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3602
     stx_doc_coding_demoConsoleApp productName
92618d700b74 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20527
diff changeset
  3603
     stx_doc_coding_demoConsoleApp productNameAsValidFilename
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3604
    "
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3605
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3606
    "Created: / 01-03-2007 / 19:19:21 / cg"
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3607
!
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3608
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3609
productPublisher
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3610
    "Returns a product publisher which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3611
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3612
    ( #('exept' 'stx') includes:self module) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3613
	^ 'eXept Software AG'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3614
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3615
11789
8d56dc5fa8a8 Default productPublisher is companyName
Stefan Vogel <sv@exept.de>
parents: 11777
diff changeset
  3616
    ^ self companyName
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3617
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3618
    "Created: / 14-09-2006 / 21:12:54 / cg"
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3619
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3620
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3621
productType
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3622
    "Returns the product type for autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3623
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3624
    ^ 'Application'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3625
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3626
    "Created: / 21-12-2010 / 09:28:48 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3627
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3628
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3629
productVersion
11043
eb2bd420e952 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11042
diff changeset
  3630
    "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
  3631
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3632
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3633
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3634
    ^ '%1.%2.%3.%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3635
	bindWith:self majorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3636
	with:self minorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3637
	with:self revisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3638
	with:self releaseNr.
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3639
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3640
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3641
     self productVersion
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3642
    "
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3643
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3644
    "Modified: / 30-08-2006 / 18:52:47 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3645
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3646
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3647
productVersionCommaSeparated
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3648
    "Returns a product version which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3649
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3650
    "<major>.<minor>.<revision>.<release> (such as '0,1,1,1') "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3651
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3652
    ^ '%1,%2,%3,%4'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3653
	bindWith:self majorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3654
	with:self minorVersionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3655
	with:self revisionNr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3656
	with:self releaseNr.
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3657
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3658
    "
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3659
     self productVersionCommaSeparated
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3660
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3661
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3662
    "Created: / 17-08-2006 / 20:13:32 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3663
    "Modified: / 30-08-2006 / 18:52:42 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3664
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3665
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3666
productWebSite
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3667
    "Returns a product webSite which will appear in <app>.nsi."
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3668
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3669
    ( #('exept' 'stx') includes:self module) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3670
	^ 'http://www.exept.de'
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3671
    ].
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3672
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3673
    "/ should be redefined by concrete ApplicationDefinition
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3674
    ^ 'http://www.yoursite.com'
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3675
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3676
    "Created: / 14-09-2006 / 21:15:05 / cg"
10426
37dc4c920ba3 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10416
diff changeset
  3677
    "Modified: / 01-03-2007 / 18:11:27 / cg"
9898
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3678
!
cd3372a2eb84 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9891
diff changeset
  3679
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3680
releaseNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3681
    "Returns a releaseNr which will appear in libName.rc"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3682
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3683
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3684
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3685
     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
  3686
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3687
    ^ Smalltalk releaseNr
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3688
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3689
    "Created: / 17-08-2006 / 20:20:51 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3690
    "Modified: / 30-08-2006 / 18:52:22 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3691
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3692
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3693
revisionNr
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3694
    "Returns a revisionNr which will appear in libName.rc"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3695
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3696
    "<major>.<minor>.<revision>.<release> (such as '5.3.2.1')
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3697
     the default here takes smalltalks version number.
20424
997f83bb29f8 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20152
diff changeset
  3698
     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
  3699
11042
686cd566a2b1 Fix version stuff
Stefan Vogel <sv@exept.de>
parents: 11041
diff changeset
  3700
    ^ Smalltalk revisionNr
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3701
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3702
    "Created: / 17-08-2006 / 20:20:40 / cg"
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  3703
    "Modified: / 30-08-2006 / 18:52:32 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3704
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3705
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3706
supportedLanguages
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3707
    "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
  3708
     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
  3709
     present in the resource files."
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3710
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3711
    self module = 'stx' ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3712
	^ #(en de)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3713
    ].
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3714
    ^ #(en)
19656
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3715
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3716
    "
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3717
     stx_goodies_rdoit supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3718
     cg_tools supportedLanguages
2e77e4aa1575 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 19627
diff changeset
  3719
    "
17236
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3720
!
cb0408076309 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17229
diff changeset
  3721
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3722
versionNumber
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  3723
    "Returns a version string which will appear in bc.def / vc.def "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3724
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3725
    ^''
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3726
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3727
    "Created: / 08-08-2006 / 11:35:52 / fm"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  3728
    "Modified: / 17-08-2006 / 19:46:29 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3729
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3730
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3731
!ProjectDefinition class methodsFor:'doc generation'!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3732
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3733
autoDocClassNamePatterns
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3734
    "lists patterns for class names for which autodoc html-documentation files
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3735
     are to be built.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3736
     Return #( '*' ) to get doc files for all classes"
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3737
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3738
    ^ #(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3739
	'*'
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3740
    )
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3741
!
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3742
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3743
generate_autoDocFiles
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3744
    "generate html documentation for all classes matching the autoDocNamePatterns.
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3745
     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
  3746
     to be deployed."
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3747
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3748
    self classes do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3749
	(self autoDocClassNamePatterns contains:[:pattern | pattern match:eachClass name]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3750
	    self generateClassDocumentationFor:eachClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3751
	]
16854
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3752
    ].
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3753
! !
5a21f02f64fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16812
diff changeset
  3754
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  3755
!ProjectDefinition class methodsFor:'file generation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3756
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3757
apspecFilename
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3758
    "/ for linux
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3759
    ^ 'autopackage/default.apspec'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3760
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3761
    "Created: / 21-12-2010 / 09:43:13 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3762
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3763
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3764
basicFileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3765
    "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
  3766
     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
  3767
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3768
    | dict cls |
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3769
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3770
    dict := OrderedDictionary withKeysAndValues:#(
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3771
	  'Make.spec'         #'generate_make_dot_spec'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3772
	  'Make.proto'        #'generate_make_dot_proto'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3773
	  "/ cg: changed to generate Makefile.init instead of Makefile,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3774
	  "/     because macosx files are not case sensitive.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3775
	  "/ You will have to execute make -f Makefile.init initially
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3776
	  "/ 'Makefile'          #'generate_makefile'          "/ for unix
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3777
	  'Makefile.init'     #'generate_makefile'          "/ for unix
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3778
	  'bc.mak'            #'generate_bc_dot_mak'        "/ for windows
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3779
	  'abbrev.stc'        #'generate_abbrev_dot_stc'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3780
	  'bmake.bat'         #'generate_bmake_dot_mak'     "/ for bcc32
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3781
	  'vcmake.bat'        #'generate_vcmake_dot_mak'    "/ for msvc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3782
	  "/ '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
  3783
	  "/ '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
  3784
	  '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
  3785
    ).
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3786
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3787
    dict
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3788
	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
  3789
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3790
    "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
  3791
    cls := self.
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3792
    [ cls ~~ Object ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3793
	cls class selectorsAndMethodsDo:[:selector :method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3794
	    | annotation |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3795
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3796
	    annotation := method annotationAt: #file:overwrite:.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3797
	    annotation notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3798
		dict at: (annotation argumentAt: 1) put: selector
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3799
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3800
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3801
	cls := cls superclass.
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3802
    ].
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3803
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3804
    ^ dict.
13154
bac0fcd8a888 make sure that the makefiles are generated before the libInit file
Claus Gittinger <cg@exept.de>
parents: 13148
diff changeset
  3805
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3806
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3807
     stx_libbasic basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3808
     stx_libjava basicFileNamesToGenerate
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3809
    "
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3810
17303
70d8ec3051df Added support for custom build files.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 17294
diff changeset
  3811
    "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
  3812
    "Modified (comment): / 04-12-2017 / 17:40:03 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3813
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  3814
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3815
fileNamesToGenerate
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3816
    "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
  3817
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3818
    ^ self basicFileNamesToGenerate removeAllKeys:self protectedFileNames ifAbsent:[]
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3819
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3820
    "
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3821
      stx_libbasic fileNamesToGenerate
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3822
    "
22387
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3823
9f14f5b840d0 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 22333
diff changeset
  3824
    "Modified (comment): / 04-12-2017 / 17:40:23 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3825
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3826
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3827
forEachFileNameAndGeneratedContentsDo:aTwoArgBlock
14930
5fe8a9868547 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14911
diff changeset
  3828
    "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
  3829
     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
  3830
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3831
    |pairs|
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3832
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3833
    pairs := OrderedCollection new.
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3834
    self fileNamesToGenerate keysDo:[:fileName |
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3835
        |fileContents|
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3836
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3837
        fileContents := self generateFile:fileName confirmMissingClasses:false.
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3838
        fileContents notNil ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3839
            pairs add:(Array with:fileName with:fileContents)
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3840
        ].
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3841
    ].
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3842
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3843
    pairs pairsDo:aTwoArgBlock
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3844
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3845
    "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
  3846
    "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
  3847
    "Modified (comment): / 04-12-2017 / 17:40:49 / cg"
9544
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3848
!
5ee38738942e *** empty log message ***
fm
parents: 9541
diff changeset
  3849
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3850
generateFile:filename
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3851
    ^ self generateFile:filename confirmMissingClasses:true
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3852
!
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3853
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3854
generateFile:filename confirmMissingClasses:confirmBoolean
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3855
    |action missingNames|
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3856
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3857
    confirmBoolean ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3858
        (#('bc.mak' 'Make.proto' 'loadAll') includes:filename) ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3859
            "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
  3860
             Warn the user"
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3861
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3862
            missingNames := 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3863
                    self allClassNames "compiled_classNames"
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3864
                        select:[:aName |
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3865
                            |cls|
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3866
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3867
                            cls := Smalltalk at:aName asSymbol.
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3868
                            cls isNil
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3869
                        ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3870
            missingNames notEmpty ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3871
                (self confirm:(self classResources 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3872
                                    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
  3873
                                    with:filename 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3874
                                    with:(missingNames asStringWith:', ')))
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3875
                ifFalse:[^ nil].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3876
            ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3877
        ].
23123
a120d0418bd7 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 23112
diff changeset
  3878
    ].
10864
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3879
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3880
    action := self basicFileNamesToGenerate at:filename ifAbsent:[].
512cd79cee0e Use dictionary to hold filename->generatorMethpd mapping
Stefan Vogel <sv@exept.de>
parents: 10849
diff changeset
  3881
    action notNil ifTrue:[
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3882
        ^ self perform:action
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3883
    ].
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3884
    (filename = 'app.rc' 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3885
      or:[filename = 'lib.rc' 
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3886
      or:[filename = self rcFilename]]
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3887
    ) ifTrue:[
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3888
        ^ self generate_packageName_dot_rc
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  3889
    ].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3890
    (filename = 'loadAll') ifTrue:[
23434
5e97f84cfb40 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23374
diff changeset
  3891
        ^ self generate_loadAll
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  3892
    ].
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  3893
    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
  3894
21569
912c8efa5856 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 21563
diff changeset
  3895
    "Modified: / 24-02-2017 / 11:53:18 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3896
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3897
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3898
generateFile:filename in: directory
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3899
    |dir|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3900
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3901
    dir := directory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3902
    dir exists ifFalse:[self error:'Directory does not exist'].
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3903
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  3904
    (dir / (filename asFilename baseName)) contents:(self generateFile: filename).
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3905
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3906
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3907
	stx_projects_smalltalk generateFile:'package.deps.rake' in: '/tmp'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3908
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3909
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3910
    "Created: / 26-02-2011 / 10:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3911
    "Modified: / 09-06-2011 / 14:53:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3912
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  3913
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3914
generateRemoveShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3915
    "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
  3916
     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
  3917
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3918
    |firstLine|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3919
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3920
    firstLine := true.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3921
    self searchForClasses do:[:eachClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3922
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3923
	    firstLine ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3924
		aStream nextPutAll:'cvs rm -f '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3925
		firstLine := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3926
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3927
	    eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3928
		aStream nextPutAll:eachClass classBaseFilename; space.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3929
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3930
	].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3931
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3932
    firstLine ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3933
	aStream cr.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3934
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3935
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3936
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3937
       stx_goodies_webServer_htmlTree generateRemoveShellScriptOn:Transcript
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3938
    "
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
  3939
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3940
    "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
  3941
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3942
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3943
generateRenameShellScriptOn:aStream
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3944
    "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
  3945
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3946
    self searchForClasses do:[:eachClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3947
	eachClass isJavaClass ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3948
	    eachClass classFilename ~= (eachClass generateClassFilename, '.st') ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3949
		aStream nextPutAll:'cp ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3950
		       nextPutAll:eachClass classBaseFilename; nextPutAll:',v ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3951
		       nextPutAll:eachClass generateClassFilename; nextPutAll:'.st,v'; cr.
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
	]
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3954
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3955
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3956
    "
11981
e479249ba36e Fix #generateRenameShellScriptOn:
Stefan Vogel <sv@exept.de>
parents: 11980
diff changeset
  3957
       stx_libdb generateRemoveShellScriptOn:Transcript
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3958
    "
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
  3959
0875f5d7c9ce Care for Java classes that are part of a Smalltalk/X package.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16786
diff changeset
  3960
    "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
  3961
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  3962
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  3963
generate_abbrev_dot_stc
13968
03b79717bd2b comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13959
diff changeset
  3964
   "/ 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
  3965
   self checkIfClassesArePresent.
10104
96bce48c03b5 some care for incomplete information bein present when
Claus Gittinger <cg@exept.de>
parents: 10103
diff changeset
  3966
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  3967
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3968
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3969
	    |addEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3970
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3971
	    addEntry :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3972
		[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3973
		    |cls fn wasLoaded failedToLoad numClassInstvars|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3974
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3975
		    s nextPutAll:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3976
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3977
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3978
		    cls := Smalltalk classNamed:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3979
		    cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3980
			fn := self filenameForClass:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3981
			s nextPutAll:fn.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3982
			s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3983
			s nextPutAll:' '; nextPutAll:'unknownCategory' storeString; nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3984
			s nextPutAll:' '; nextPutAll:'0'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3985
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3986
			wasLoaded := cls isLoaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3987
			wasLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3988
			    failedToLoad := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3989
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3990
			    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3991
				failedToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3992
			    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3993
				ParserFlags
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3994
				    withSTCCompilation:#never
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3995
				    do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3996
					cls autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3997
				    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3998
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  3999
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4000
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4001
			fn := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4002
			(fn includes:Character space) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4003
			    s nextPutAll:fn storeString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4004
			] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4005
			    s nextPutAll:fn.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4006
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4007
			s nextPutAll:' '; nextPutAll:(self package); nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4008
			s nextPutAll: (cls category asString storeString).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4009
			failedToLoad ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4010
			    s nextPutAll:' 0'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4011
			] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4012
			    numClassInstvars := cls theMetaclass instSize - Class instSize.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4013
			    s nextPutAll:' '; nextPutAll:numClassInstvars printString.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4014
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4015
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4016
			wasLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4017
			    UserPreferences current autoUnloadAutoloadedClassesInProjectDefinition ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4018
				cls unload
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4019
			    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4020
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4021
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4022
		    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4023
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4024
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4025
	    s nextPutLine:'# automagically generated by the project definition'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4026
	    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
  4027
	    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
  4028
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4029
	    self allClassNames do:addEntry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4030
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4031
		(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4032
		    addEntry value:nm
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4033
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4034
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4035
	]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4036
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4037
    "
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4038
	stx_libbasic generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4039
	DapasXProject generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4040
	DapasX_Datenbasis generate_abbrev_dot_stc
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4041
	bosch_dapasx_interactiver_editor generate_abbrev_dot_stc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4042
    "
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4043
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4044
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4045
    "Modified: / 28-01-2014 / 21:43:56 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4046
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4047
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4048
generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4049
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4050
    ^self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4051
	replaceMappings: self autopackage_default_dot_apspec_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4052
	in: self autopackage_default_dot_apspec
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4053
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4054
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4055
     stx_projects_smalltalk generate_autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4056
    "
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4057
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4058
    "Created: / 21-12-2010 / 09:40:04 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4059
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4060
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4061
generate_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4062
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4063
	replaceMappings: self bc_dot_mak_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4064
	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
  4065
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4066
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4067
     DapasXProject generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4068
     DapasX_Datenbasis generate_bc_dot_mak
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4069
    "
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4070
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4071
    "Modified: / 09-08-2006 / 11:46:14 / fm"
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4072
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4073
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4074
generate_bmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4075
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4076
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4077
	    in: self bmake_dot_mak
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4078
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4079
    "Created: / 17-08-2006 / 20:03:43 / cg"
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4080
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4081
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4082
generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4083
    ^ self replaceMappings:self builder_baseline_dot_rbspec_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4084
	in:self builder_baseline_dot_rbspec
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4085
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4086
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4087
     stx_projects_smalltalk generate_builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4088
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4089
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4090
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4091
    "Created: / 24-02-2011 / 11:38:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4092
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4093
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4094
generate_java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4095
    <file: 'java/build.auto.xml' overwrite: true>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4096
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4097
    self javaBundle isNil ifTrue:[ ^ nil ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4098
    ^self
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4099
	replaceMappings: self java_build_auto_dot_xml_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4100
	in:              self java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4101
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4102
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4103
    stx_libjava_tools generate_java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4104
    stx_libjava_experiments generate_java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4105
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4106
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4107
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4108
    "Created: / 18-01-2015 / 07:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4109
    "Modified: / 19-01-2015 / 16:55:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4110
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4111
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4112
generate_java_build_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4113
    <file: 'java/build.xml' overwrite: false>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4114
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4115
    self javaBundle isNil ifTrue:[ ^ nil ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4116
    ^self
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4117
	replaceMappings: self java_build_dot_xml_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4118
	in:              self java_build_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4119
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4120
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4121
    stx_libjava_tools generate_java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4122
    stx_libjava_experiments generate_java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4123
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4124
    "
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4125
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4126
    "Created: / 19-01-2015 / 07:37:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4127
    "Modified: / 19-01-2015 / 16:32:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4128
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4129
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4130
generate_lccmake_dot_mak
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4131
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4132
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4133
	    in: self lccmake_dot_mak
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4134
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4135
    "Created: / 03-09-2012 / 19:49:56 / cg"
11979
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  4136
!
d2afd6b5fc01 lcc preps
Claus Gittinger <cg@exept.de>
parents: 11940
diff changeset
  4137
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4138
generate_loadAll
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4139
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4140
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4141
	    |classNames classesLoaded classNamesUnloaded classesSorted|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4142
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4143
	    classNames := self compiled_classNames_common.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4144
	    classesLoaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4145
			collect:[:nm | Smalltalk classNamed:nm]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4146
			thenSelect:[:cls |  cls notNil and:[cls isLoaded] ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4147
	    classNamesUnloaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4148
			select:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4149
			    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4150
			    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4151
			    cls isNil or:[cls isLoaded not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4152
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4153
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4154
	    classesSorted := Class classesSortedByLoadOrder:classesLoaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4155
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4156
	    s nextPutAll:'"/
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4157
"/ $' , 'Header' , '$
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4158
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4159
"/ loadAll-file to fileIn code for: ' , self package , '
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4160
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4161
"/ Automatically generated from the ProjectDefinition.
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4162
"/ DO NOT MODIFY THIS FILE;
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4163
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4164
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4165
"/ Prerequisites:
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4166
"/
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4167
"/ Smalltalk loadPackage:''module:directory''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4168
"/ Smalltalk loadPackage:''....''.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4169
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4170
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4171
"{ package:''' , self package, ''' }"
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4172
!!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4173
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4174
|files|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4175
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4176
''loading package ' , self package ,'...'' infoPrint.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4177
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4178
files := #(
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4179
'.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4180
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4181
	    classesSorted do:[:eachClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4182
		s nextPutLine:'  ''' , (self filenameForClass:eachClass), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4183
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4184
	    classNamesUnloaded do:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4185
		s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4186
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4187
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4188
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4189
		(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4190
		    s nextPutLine:'  ''' , (self filenameForClass:nm), ''''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4191
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4192
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4193
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4194
	    self hasExtensionMethods ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4195
		s nextPutLine:'  ''extensions.st'''.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4196
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4197
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4198
	    s nextPutAll:'
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4199
).
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4200
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4201
"/ see if there is a classLibrary
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4202
(Smalltalk fileInClassLibrary:''' , (self libraryName) , ''') ifTrue:[
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4203
    |handle loaded|
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4204
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4205
    handle := ObjectFileLoader loadedObjectHandles
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4206
		    detect:[:h | h package = ''' , self package , '''] ifNone:nil.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4207
    handle ifNotNil:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4208
	loaded := Set new:(handle classes size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4209
	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
  4210
	files := files \ loaded.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4211
    ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4212
].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4213
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4214
"/ 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
  4215
files notEmpty ifTrue:[
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4216
  '''' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4217
  files do:[:f |
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4218
    ''.'' infoPrint.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4219
    f asFilename exists ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4220
	Smalltalk fileIn:f.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4221
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4222
	Smalltalk fileIn:(''source/'' , f)
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4223
    ]
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4224
  ].
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4225
  '' '' infoPrintCR.
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4226
].
9911
114cf30d0561 Handle (load) binary class libraryies.
Stefan Vogel <sv@exept.de>
parents: 9909
diff changeset
  4227
''done (' , self package ,').'' infoPrintCR.
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4228
'.
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4229
	].
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4230
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4231
    "Created: / 14-09-2006 / 14:21:31 / cg"
10080
e7a9912eef18 use classBaseFilename
Claus Gittinger <cg@exept.de>
parents: 10076
diff changeset
  4232
    "Modified: / 12-10-2006 / 15:55:00 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4233
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  4234
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4235
generate_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4236
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4237
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4238
	replaceMappings: self make_dot_proto_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4239
	in: self make_dot_proto) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4240
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4241
    "
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4242
     stx_libbasic2 generate_make_dot_proto
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4243
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4244
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4245
    "Modified: / 09-08-2006 / 11:31:01 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4246
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4247
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4248
generate_make_dot_spec
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4249
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4250
	replaceMappings: self make_dot_spec_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4251
	in: self make_dot_spec) asStringCollection withTabs asString
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4252
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4253
    "
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4254
     DapasXProject generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4255
     DapasX_Datenbasis generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4256
     bosch_dapasx_kernel_Definition generate_make_dot_spec
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4257
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4258
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4259
    "Modified: / 09-08-2006 / 11:31:09 / fm"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4260
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4261
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4262
generate_makefile
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4263
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4264
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4265
	replaceMappings: self makefile_mappings
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4266
	in: self makefile) asStringCollection withTabs asString
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4267
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4268
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4269
     stx_libbasic2 generate_makefile
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4270
    "
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4271
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4272
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4273
generate_mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4274
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4275
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4276
	    in: self mingwmake_dot_mak
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4277
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4278
    "Created: / 05-09-2012 / 19:44:07 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4279
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4280
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4281
generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4282
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4283
    ^self replaceMappings: self packageName_dot_rc_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4284
	    in: self packageName_dot_rc
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4285
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4286
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4287
  bosch_dapasx_datenbasis generate_packageName_dot_rc
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4288
  bosch_dapasx_hw_schnittstellen  generate_packageName_dot_rc
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4289
  stx_libbasic3 generate_packageName_dot_rc
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  4290
  stx_libwidg3 generate_packageName_dot_rc
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4291
  stx_libwidg3 productVersion
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4292
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4293
"
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4294
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4295
    "Modified: / 09-08-2006 / 11:31:09 / fm"
9618
adc627ef4702 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9615
diff changeset
  4296
    "Modified: / 21-08-2006 / 19:33:21 / cg"
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4297
!
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4298
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4299
generate_package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4300
    ^ (self replaceMappings:self package_dot_deps_dot_rake_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4301
	in:self package_dot_deps_dot_rake) asStringCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4302
	withTabs asString
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4303
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4304
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4305
     stx_libjava generate_dependencies_dot_rake"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4306
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4307
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4308
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4309
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4310
generate_tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4311
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4312
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4313
	    in: self tccmake_dot_mak
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4314
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4315
    "Created: / 03-09-2012 / 19:50:25 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4316
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  4317
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4318
generate_vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4319
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4320
    ^self replaceMappings: self bmake_dot_mak_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4321
	    in: self vcmake_dot_mak
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4322
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  4323
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4324
nsiFilename
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4325
    "only applications define it"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4326
23112
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4327
    ^ nil.
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4328
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4329
    "Created: / 18-06-2018 / 14:07:43 / Claus Gittinger"
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4330
!
fdda70eb1871 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 23051
diff changeset
  4331
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4332
protectedFileNames
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  4333
    "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
  4334
     - 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
  4335
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4336
    ^ #()
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4337
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4338
    "Created: / 14-09-2006 / 14:38:40 / cg"
13178
07e3a9bb37c8 changed: #protectedFileNames
Claus Gittinger <cg@exept.de>
parents: 13177
diff changeset
  4339
    "Modified: / 21-12-2010 / 11:36:46 / cg"
9852
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4340
!
bd0aa34cd18f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9850
diff changeset
  4341
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4342
rcFilename
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4343
    ^ self fullPackageName,'WINrc.rc'.
9831
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4344
02b8fd184e2b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9829
diff changeset
  4345
    "Created: / 07-09-2006 / 17:07:00 / cg"
19996
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4346
!
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4347
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4348
resourceFilename
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4349
    ^ (self rcFilename asFilename withSuffix:'$(RES)') name
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4350
7dea0665f414 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19977
diff changeset
  4351
    "Created: / 07-09-2006 / 17:12:53 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4352
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4353
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4354
!ProjectDefinition class methodsFor:'file mappings'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4355
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4356
autopackage_default_dot_apspec_mappings
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4357
    |mappings|
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4358
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4359
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4360
    ^ mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4361
	at: 'TOP' put: (self pathToTopWithSeparator:'/');                 "/ unix here
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4362
"/        at: 'MODULE_PATH' put: ( self moduleDirectory );        "/ unix here
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4363
	at: 'DESCRIPTION' put: (self description);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4364
	at: 'PRODUCT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4365
	at: 'PRODUCT_VERSION' put: (self productVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4366
	at: 'PRODUCT_DATE' put: (self productDate);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4367
	at: 'PRODUCT_PUBLISHER' put: (self productPublisher);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4368
	at: 'PRODUCT_WEBSITE' put: (self productWebSite);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4369
	at: 'PRODUCT_INSTALLDIR' put: (self productInstallDir);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4370
	at: 'PRODUCT_TYPE' put: (self productType);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4371
	at: 'PRODUCT_LICENSE' put: (self productLicense);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4372
	at: 'PRODUCT_DESCRIPTION' put: (self productDescription);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4373
	at: 'PRODUCT_CPU_VERSIONS' put: 'x86';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4374
	at: 'PRODUCT_ROOT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4375
	at: 'MAINTAINER' put: (self productMaintainer);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4376
	at: 'PACKAGER' put: (self productPublisher);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4377
	at: 'ADDITIONAL_SOURCE_DIRS' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4378
	at: 'ADDITIONAL_COPYFILES' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4379
	at: 'ADDITIONAL_INSTALL' put: '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4380
	yourself.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4381
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4382
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4383
    "Created: / 21-12-2010 / 09:00:49 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4384
    "Modified: / 05-09-2012 / 10:09:06 / cg"
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4385
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  4386
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4387
bc_dot_mak_mappings
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4388
    |d|
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4389
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4390
    d := self common_mappings.
14944
fee38275e385 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14939
diff changeset
  4391
    ^ d
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4392
	at: 'TOP' put: ( self pathToTopWithSeparator:'\' );                "/ win32 here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4393
	at: 'MODULE_PATH' put: ( self moduleDirectory_win32 );  "/ win32 here
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4394
	at: 'PRIMARY_TARGET' put: (self primaryTarget_bc_dot_mak);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4395
	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
  4396
	at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4397
	at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_bc_dot_mak);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4398
	at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'bc.mak');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4399
	at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4400
	at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4401
	at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_bc_dot_mak ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4402
	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
  4403
	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
  4404
	at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_win32 ? '');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4405
	at: 'LOCAL_DEFINES' put: self localDefines_win32 ? '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4406
	at: 'GLOBAL_DEFINES' put: self globalDefines_win32 ? '';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4407
	yourself.
10306
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4408
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4409
    "Created: / 18-08-2006 / 11:43:39 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4410
    "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
  4411
    "Modified: / 03-02-2015 / 07:28:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
18428
398263d5137c class: ProjectDefinition
sr
parents: 18323
diff changeset
  4412
    "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
  4413
!
d5a7e62bd20f Rename nt.mak to bc.mak
Stefan Vogel <sv@exept.de>
parents: 10299
diff changeset
  4414
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4415
bmake_dot_mak_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4416
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4417
	at:'TOP' put: ( self pathToTopWithSeparator:'\' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4418
	at:'SUBPROJECT_BMAKE_CALLS' put:(self subProjectBmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4419
	at:'SUBPROJECT_VCMAKE_CALLS' put:(self subProjectVCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4420
	at:'SUBPROJECT_LCCMAKE_CALLS' put:(self subProjectLCCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4421
	at:'SUBPROJECT_TCCMAKE_CALLS' put:(self subProjectTCCmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4422
	at:'SUBPROJECT_MINGWMAKE_CALLS' put:(self subProjectMingwmakeCalls);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4423
	yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4424
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4425
    "Created: / 17-08-2006 / 21:41:56 / cg"
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  4426
    "Modified: / 05-09-2012 / 19:45:36 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4427
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4428
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4429
builder_baseline_dot_rbspec_mappings
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4430
    |mappings|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4431
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4432
    mappings := Dictionary new.
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  4433
    ^ mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4434
	at:'APPLICATION' put:(self perform:#applicationName ifNotUnderstood:[self packageName]);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4435
	at:'APPLICATION_PACKAGE' put:self package printString;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4436
	at:'PREAMBLE' put:self builder_baseline_dot_rbspec_preamble;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4437
	at:'POSTAMBLE' put:self builder_baseline_dot_rbspec_postamble;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4438
	at:'PACKAGES' put:self builder_baseline_dot_rbspec_packages;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4439
	yourself.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4440
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4441
    "Modified: / 21-12-2010 / 11:00:22 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4442
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4443
    "Modified: / 09-06-2011 / 14:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4444
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4445
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4446
builder_baseline_dot_rbspec_packages
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4447
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4448
	self allPreRequisitesSorted do: [:packageId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4449
	    s nextPutLine:('  package "%1"' bindWith:packageId).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4450
	]
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  4451
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4452
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4453
    "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
  4454
    "Modified: / 06-06-2016 / 14:32:44 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4455
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4456
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4457
classLine_mappings:aClassName
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4458
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4459
	at:'CLASS' put:(self st2c:aClassName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4460
	yourself
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4461
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4462
    "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
  4463
    "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
  4464
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4465
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4466
common_mappings
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4467
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4468
	at: 'TAB' put: ( Character tab asString );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4469
	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
  4470
	at: 'LIBRARY_NAME' put: ( self libraryName );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4471
	at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4472
	at: 'MODULE' put: ( self module );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4473
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );           "/ always unix format
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4474
	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
  4475
	yourself
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4476
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4477
    "Created: / 04-09-2012 / 13:04:26 / cg"
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4478
!
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4479
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4480
java_build_auto_dot_xml_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4481
    ^ self common_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4482
	at: 'TOP' put: (self pathToTopWithSeparator:'/');
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4483
	at: 'PACKAGE_SLASHED' put:  (self package copyReplaceAll: $: with: $/);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4484
	at: 'PACKAGE_DOTTED' put: ((self package copyReplaceAll: $: with: $/) replaceAll: $/ with: $.);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4485
	at: 'BUILD_PREREQS_CLASSPATH_REFS'  put: (self generateJavaBuildPrereqsClasspathRefs);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4486
	at: 'BUILD_PREREQS_CLASSPATH_PATHS' put: (self generateJavaBuildPrereqsClasspathPaths);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4487
	at: 'BUILD_PREREQS'                 put: (self generateJavaBuildPrereqs);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4488
	yourself
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4489
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4490
    "Created: / 18-01-2015 / 07:32:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4491
    "Modified: / 19-01-2015 / 07:21:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4492
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4493
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4494
java_build_dot_xml_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4495
    ^ self common_mappings
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4496
	at: 'TOP' put: (self pathToTopWithSeparator:'/');
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4497
	at: 'PACKAGE_SLASHED' put:  (self package copyReplaceAll: $: with: $/);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4498
	at: 'PACKAGE_DOTTED' put: ((self package copyReplaceAll: $: with: $/) replaceAll: $/ with: $.);
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4499
	yourself
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4500
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4501
    "Created: / 19-01-2015 / 07:37:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4502
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  4503
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4504
make_dot_proto_mappings
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4505
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4506
	at: 'MODULE' put: ( self module );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4507
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4508
	at: 'MODULE_PATH' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4509
	at: 'TOP' put: ( self pathToTopWithSeparator:'/' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4510
	at: 'SUBDIRECTORIES' put: (self generateSubDirectories);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4511
	at: 'LIBRARY_NAME' put: ( self libraryName );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4512
	at: 'LOCAL_INCLUDES' put: (self generateLocalIncludes_unix);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4513
	at: 'LOCAL_DEFINES' put: self localDefines_unix;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4514
	at: 'GLOBAL_DEFINES' put: self globalDefines_unix;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4515
	at: 'COMMONSYMFLAG' put: (self commonSymbolsFlag);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4516
	at: 'HEADEROUTPUTARG' put: (self headerFileOutputArg);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4517
	at: 'PRIMARY_TARGET' put: (self primaryTarget_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4518
	at: 'ADDITIONAL_DEFINITIONS' put: (self additionalDefinitions_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4519
	at: 'ADDITIONAL_HEADERRULES' put: (self additionalHeaderRules_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4520
	at: 'ADDITIONAL_RULES' put: (self additionalRulesFor: 'Make.proto');
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4521
	at: 'ADDITIONAL_RULES_SVN' put: (self additionalRulesSvn_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4522
	at: 'ADDITIONAL_RULES_HG' put: (self additionalRulesHG_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4523
	at: 'ADDITIONAL_TARGETS' put: (self additionalTargets_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4524
	at: 'ADDITIONAL_TARGETS_SVN' put: (self additionalTargetsSvn_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4525
	at: 'ADDITIONAL_LINK_LIBRARIES' put: (self additionalLinkLibraries_make_dot_proto);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4526
	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
  4527
	at: 'DEPENDENCIES' put: (self generateDependencies_unix);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4528
	yourself
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4529
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4530
    "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
  4531
    "Modified: / 09-08-2006 / 16:44:48 / fm"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  4532
    "Modified: / 24-06-2009 / 21:50:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4533
    "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
  4534
    "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
  4535
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4536
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4537
make_dot_spec_mappings
14337
8bb68891436c added: #common_mappings
Claus Gittinger <cg@exept.de>
parents: 14336
diff changeset
  4538
    ^ self common_mappings
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4539
	at: 'MODULE_DIRECTORY' put: ( self moduleDirectory );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4540
	at: 'STCWARNINGOPTIONS' put: (self stcWarningOptions);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4541
	at: 'STCOPTIMIZATIONOPTIONS' put: (self stcOptimizationOptions);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4542
	at: 'CLASSES' put: [self generateClasses_make_dot_spec];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4543
	at: 'OBJECTS' put: [self generateObjects_make_dot_spec];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4544
	yourself
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4545
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4546
    "Created: / 18-08-2006 / 11:44:23 / cg"
14339
Claus Gittinger <cg@exept.de>
parents: 14337
diff changeset
  4547
    "Modified: / 05-09-2012 / 10:11:02 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4548
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  4549
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4550
makefile_mappings
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4551
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4552
	yourself
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4553
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  4554
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4555
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
  4556
    |d s resourceCount|
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4557
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4558
    d := Dictionary new.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4559
    d
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4560
	at: 'PRODUCT_NAME' put: (self productName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4561
	at: 'PRODUCT_VERSION' put: (self productVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4562
	at: 'PRODUCT_DATE' put: (self productDate);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4563
	at: 'FILETYPE' put: ( 'VFT_DLL' );
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4564
	at: 'FILE_VERSION_COMMASEPARATED' put: (self fileVersionCommaSeparated);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4565
	at: 'PRODUCT_VERSION_COMMASEPARATED' put: (self productVersionCommaSeparated);
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
	at: 'COMPANY_NAME' put: (self companyName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4568
	at: 'FILE_DESCRIPTION' put: (self fileDescription);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4569
	at: 'FILE_VERSION' put: (self fileVersion);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4570
	at: 'INTERNAL_NAME' put: (self internalName).
11377
35d261aa5493 splash file definition
Claus Gittinger <cg@exept.de>
parents: 11369
diff changeset
  4571
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4572
    s := self legalCopyright.
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4573
    s notNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4574
	d at: 'LEGAL_COPYRIGHT_LINE' put: '      VALUE "LegalCopyright", "',s,'\0"'
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4575
    ].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4576
    s := String streamContents:[:stream|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4577
	    |suff|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4578
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4579
	    s := self applicationIconFileNameWindows.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4580
	    s notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4581
		s asFilename suffix isEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4582
		    suff := '.ico'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4583
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4584
		    suff := ''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4585
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4586
		'IDR_MAINFRAME           ICON    DISCARDABLE     "%1%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4587
			expandPlaceholdersWith:(Array with:s with:suff) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4588
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4589
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4590
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4591
	    s := self splashFileName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4592
	    s notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4593
		s asFilename suffix isEmptyOrNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4594
		    suff := '.bmp'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4595
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4596
		    suff := ''
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4597
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4598
		'IDR_SPLASH           BITMAP    DISCARDABLE     "%1%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4599
			expandPlaceholdersWith:(Array with:s with:suff) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4600
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4601
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4602
	    resourceCount := 2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4603
	    self applicationAdditionalIconFileNames do:[:eachFilename|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4604
		'IDR_MAINFRAME+%1           ICON    DISCARDABLE     "%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4605
			expandPlaceholdersWith:(Array with:resourceCount with:eachFilename) on:stream.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4606
		stream cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4607
		resourceCount := resourceCount+1.
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
	].
11611
fa06cde6bd11 Allow for additional icon files to be placed in resources
Stefan Vogel <sv@exept.de>
parents: 11580
diff changeset
  4610
    d at: #'ICONDEFINITION_LINE' put:s.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4611
9630
526c4d537a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9627
diff changeset
  4612
    ^ d
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4613
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4614
    "Created: / 09-08-2006 / 11:21:21 / fm"
13309
27f463f6c0cb changed: #packageName_dot_rc_mappings
Claus Gittinger <cg@exept.de>
parents: 13285
diff changeset
  4615
    "Modified: / 22-02-2011 / 11:30:36 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4616
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4617
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4618
package_dot_deps_dot_rake_mappings
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4619
    |dependencies|
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  4620
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  4621
    dependencies := String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4622
	    streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4623
		self allPreRequisites do:[:package |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4624
		    (self preRequisitesFor:package) do:[:prereq |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4625
			s
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4626
			    nextPutAll:('task "%1" => "%2"' bindWith:package with:prereq);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4627
			    cr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4628
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4629
		    s cr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4630
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4631
		self effectivePreRequisites do:[:prereq |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4632
		    s
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4633
			nextPutAll:('task "%1" => "%2"' bindWith:self package with:prereq);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4634
			cr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4635
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4636
	    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4637
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4638
    ^ (Dictionary new)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4639
	at:'DEPENDENCIES' put:dependencies;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4640
	yourself
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4641
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4642
    "
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4643
	stx_libjava generate_package_dot_deps_dot_rake
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4644
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4645
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4646
    "Created: / 24-02-2011 / 22:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4647
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  4648
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4649
replaceMappings: mappings in: fileTemplate
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4650
    "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
  4651
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4652
    ^ fileTemplate bindWithArguments:mappings.
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4653
9733
ce3c5ea1d4d0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9726
diff changeset
  4654
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4655
     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
  4656
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4657
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4658
    "Created: / 08-08-2006 / 11:44:27 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  4659
    "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
  4660
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4661
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4662
st2c:aString
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4663
	^ (aString asString
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4664
	    copyReplaceString:'_' withString:('_',($_ codePoint printStringRadix:8)))
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4665
		replaceAny:':' with:$_
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4666
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  4667
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  4668
!ProjectDefinition class methodsFor:'file mappings support'!
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  4669
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4670
classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4671
    "answer a dictionary
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4672
	category -> classNames topological sorted"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4673
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4674
    |classes classNames mapping alreadyWarned|
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4675
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4676
    mapping := Dictionary new.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4677
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  4678
    classes := Class classesSortedByLoadOrder:self compiled_classes_common.
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4679
    classNames := classes collect:[:eachClass| eachClass name].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4680
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do: [:nm :attr |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4681
	(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4682
	    classNames add:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4683
	].
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4684
    ].
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4685
    mapping at:'COMMON' put:classNames.
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4686
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4687
    alreadyWarned := false.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4688
    OperatingSystem knownPlatformNames do:[:platformID |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4689
	|platformClasses platformClassNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4690
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4691
	platformClasses := self compiled_classesForPlatform:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4692
	platformClasses notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4693
	    (platformClasses contains:[:each| each isNil or:[each isLoaded not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4694
		"win32 classes are not present in linux..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4695
		Transcript show:'Missing classes for platform: '. Transcript showCR:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4696
		platformClassNames := self compiled_classNamesForPlatform:platformID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4697
		platformClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4698
		    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
  4699
		    thenDo:[:nm | Transcript tab; showCR:nm].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4700
		UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4701
		    alreadyWarned ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4702
			(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
  4703
			ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4704
			    AbortOperationRequest raise.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4705
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4706
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4707
		    alreadyWarned := true
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
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4710
		classes := Class classesSortedByLoadOrder:platformClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4711
		platformClassNames := platformClasses collect:[:eachClass| eachClass name].
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
	    mapping at:platformID asUppercase put:platformClassNames.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4714
	].
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4715
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4716
    ^ mapping
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4717
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4718
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4719
     stx_libbasic classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4720
     stx_libbasic3 classNamesByCategory
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4721
     stx_libview classNamesByCategory
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  4722
     stx_libjava classNamesByCategory
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4723
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4724
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4725
    "Created: / 09-08-2006 / 11:24:39 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  4726
    "Modified: / 28-01-2014 / 21:40:23 / cg"
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4727
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4728
10299
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4729
commonSymbolsFlag
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4730
    "only for libraries"
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4731
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4732
    ^ ''
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4733
!
af27a10749c2 add #additional_link_libraries_nt_dot_mak
Stefan Vogel <sv@exept.de>
parents: 10296
diff changeset
  4734
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4735
filenameForClass:classNameOrClass
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4736
    "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
  4737
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4738
"/    "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
  4739
"/     See also: #generateRemoveShellScriptOn: and #generateRenamShellScriptOn:"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4740
"/    classNameOrClass isBehavior ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4741
"/        ^ classNameOrClass generateClassFilename.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4742
"/    ] ifFalse:[
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4743
"/        |cls|
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4744
"/
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4745
"/        cls := Smalltalk classNamed:classNameOrClass.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4746
"/        cls notNil ifTrue:[
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4747
"/            ^ cls generateClassFilename.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4748
"/        ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4749
"/    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4750
"/    "end special code"
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4751
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4752
    ^ Smalltalk fileNameForClass:classNameOrClass.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4753
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4754
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4755
	self filenameForClass:HTML::Encoder
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4756
	Smalltalk fileNameForClass:HTML::Encoder
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4757
    "
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4758
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4759
    "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
  4760
    "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
  4761
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  4762
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4763
generateClassLines:classLineTemplate
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4764
    "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
  4765
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4766
    ^ 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
  4767
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4768
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4769
generateClassLines:classLineTemplate forClasses:classNames
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  4770
    "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
  4771
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4772
    ^ self generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:true
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4773
!
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4774
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4775
generateClassLines:classLineTemplate forClasses:classNames includeAdditionalClasses:includeAdditionalClasses
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4776
    "for the init-file: generate class-init-lines for a collection of classes"
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  4777
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4778
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4779
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4780
	    |classesLoaded classNamesUnloaded classNamesSorted putLineForClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4781
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4782
	    putLineForClassName :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4783
		[:className |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4784
		    |newClassLine mappings|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4785
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4786
		    mappings := self classLine_mappings:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4787
		    newClassLine := self replaceMappings:mappings in:classLineTemplate.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4788
		    s nextPutLine:newClassLine
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4789
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4790
	    classesLoaded := classNames collect:[:eachClassName | Smalltalk classNamed:eachClassName]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4791
					thenSelect:[:eachClass | eachClass notNil and:[eachClass isLoaded]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4792
	    classNamesUnloaded := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4793
			select:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4794
			    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4795
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4796
			    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4797
			    cls isNil or:[ cls isLoaded not ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4798
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4799
	    classNamesSorted := (Class classesSortedByLoadOrder:classesLoaded) collect:[:cls | cls name].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4800
	    classNamesSorted do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4801
	    classNamesUnloaded do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4802
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4803
	    includeAdditionalClasses ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4804
		self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4805
		    do:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4806
			(attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4807
			    putLineForClassName value:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4808
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4809
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4810
		#( ('UNIX' unix)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4811
		   ('WIN32' win32)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4812
		   ('OSX' osx)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4813
		   ('VMS' vms)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4814
		   ('BEOS' beos) )
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4815
			pairsDo:[:ifdef :platformName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4816
			    |archClassNames archClassesLoaded|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4817
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4818
			    archClassNames := self compiled_classNamesForPlatform:platformName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4819
			    archClassNames notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4820
				s nextPutLine:'#ifdef ' , ifdef.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4821
				archClassNames do:[:clsName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4822
				    putLineForClassName value:clsName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4823
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4824
				s nextPutLine:'#endif /* ' , ifdef , ' */'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4825
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4826
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4827
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4828
	]
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4829
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4830
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4831
     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
  4832
     bosch_dapasx_kernel  generateClassLines_libInit_dot_cc
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4833
     stx_libbasic3 generateClassLines_libInit_dot_cc
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4834
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  4835
9962
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4836
    "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
  4837
    "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
  4838
    "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
  4839
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4840
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4841
generateClassLines_libInit_dot_cc
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4842
    ^ 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
  4843
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4844
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4845
     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
  4846
     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
  4847
     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
  4848
    "
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4849
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4850
    "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
  4851
    "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
  4852
    "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
  4853
!
905898cca08c also generate modules.c (precompiled-in init list for app)
Claus Gittinger <cg@exept.de>
parents: 9956
diff changeset
  4854
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4855
generateClasses_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4856
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4857
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4858
    classNamesDict := self classNamesByCategory.
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4859
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4860
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4861
	classNamesDict keysAndValuesDo:[:eachCategory :classNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4862
	    s nextPutLine:eachCategory,'_CLASSES= \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4863
	    classNames do:[:eachClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4864
		s tab; nextPutAll:eachClassName; nextPutLine:' \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4865
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4866
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4867
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4868
	s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4869
    ].
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4870
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4871
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4872
     stx_libbasic generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4873
     stx_libbasic3 generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4874
     stx_libview generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4875
     stx_libboss generateClasses_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4876
    "
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4877
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4878
    "Created: / 09-08-2006 / 11:24:39 / fm"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4879
    "Modified: / 20-10-2006 / 16:18:54 / cg"
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4880
!
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  4881
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4882
generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4883
    "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
  4884
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4885
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4886
	generateClassLines:(self classLine_libInit_dot_cc)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4887
	forClasses:(Array with:self name)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4888
	includeAdditionalClasses:false
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4889
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4890
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4891
     stx_libbasic generateDefinitionClassLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4892
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4893
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  4894
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4895
generateDependencies:whichArchitecture
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  4896
    ^ String
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4897
	streamContents:[:s |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4898
	    |classNames classesPresent classesLoaded clsBaseName putDependencyForClassBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4899
	     putDependencyForClassBaseNameBlock
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4900
	     archClassNames archClassesPresent archClassesLoaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4901
	     putSingleClassDependencyEntryBlock putDependencyForExtensionsBlock classSortBlock|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4902
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4903
	    classSortBlock := [ :a :b|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4904
		a package == b package ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4905
		    a name < b name
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4906
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4907
		    a package < b package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4908
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4909
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4910
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4911
	    putSingleClassDependencyEntryBlock := [:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4912
		    |sclsBaseName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4913
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4914
		    s nextPutAll:' $(INCLUDE_TOP)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4915
		    s nextPutAll:(self pathSeparator:whichArchitecture).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4916
		    sclsBaseName := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4917
		    s nextPutAll:(self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4918
				topRelativePathTo:sclsBaseName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4919
				inPackage:cls package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4920
				architecture:whichArchitecture).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4921
		    s nextPutAll:'.$(H)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4922
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4923
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4924
	    putDependencyForClassBaseNameBlock := [:clsBaseName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4925
		    s nextPutAll:('$(OUTDIR)',clsBaseName,'.$(O)').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4926
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4927
		    s nextPutAll:(clsBaseName,'.$(C)').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4928
		    s nextPutAll:' '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4929
		    s nextPutAll:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4930
		    s nextPutAll:'.$(H)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4931
		    s nextPutAll:': '.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4932
		    s nextPutAll:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4933
		    s nextPutAll:'.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4934
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4935
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4936
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4937
	    putDependencyForClassBlock := [:cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4938
		    |clsBaseName classes|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4939
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4940
		    clsBaseName := self filenameForClass:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4941
		    putDependencyForClassBaseNameBlock value:clsBaseName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4942
		    cls isLoaded ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4943
			classes := IdentitySet new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4944
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4945
			    sharedPools do:[:poolClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4946
				poolClass isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4947
				    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
  4948
				] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4949
				    classes add:poolClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4950
				]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4951
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4952
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4953
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4954
			    allSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4955
				classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4956
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4957
			cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4958
			    allPrivateClassesDo:[:eachPrivateClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4959
				eachPrivateClass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4960
				    allSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4961
					|sclsBaseName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4962
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4963
					scls ~~ cls ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4964
					    scls isPrivate ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4965
						(classes includes:scls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4966
						    classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4967
						].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4968
					    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4969
					].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4970
				    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4971
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4972
			"/ Sort them to get stable order to avoid false conflicts
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4973
			classes := classes asSortedCollection:classSortBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4974
			classes do:[:each | putSingleClassDependencyEntryBlock value:each].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4975
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4976
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4977
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4978
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4979
	    putDependencyForExtensionsBlock := [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4980
		    | classes |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4981
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4982
		    s nextPutAll:'$(OUTDIR)extensions.$(O): extensions.st'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4983
		    classes := Set new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4984
		    self extensionMethodNames pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4985
			    |mthdCls cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4986
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4987
			    ((mthdCls := Smalltalk classNamed:className) notNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4988
			      and:[ mthdCls isLoaded ])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4989
				    ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4990
					cls := mthdCls theNonMetaclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4991
					(classes includes:cls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4992
					    cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4993
						withAllSuperclassesDo:[:scls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4994
						    (classes includes:scls) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4995
							classes add:scls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4996
						    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4997
						].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4998
					].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  4999
				    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5000
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5001
		    "/ Sort them to get stable order to avoid false conflicts
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5002
		    classes := classes asSortedCollection:classSortBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5003
		    classes do:[:each | putSingleClassDependencyEntryBlock value:each].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5004
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5005
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5006
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5007
	    classNames := self compiled_classNames_common.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5008
	    classesPresent := classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5009
		collect:[:className | Smalltalk classNamed:className]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5010
		thenSelect:[:cls | cls notNil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5011
	    classesLoaded := classesPresent select:[:cls | cls isLoaded].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5012
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5013
	    (Class classesSortedByLoadOrder:classesLoaded) do:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5014
	    classesPresent reject:[:cls | cls isLoaded] thenDo:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5015
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5016
	    self namesAndAttributesIn:(self additionalClassNamesAndAttributes)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5017
		do:[:className :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5018
		    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5019
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5020
		    (attr isEmptyOrNil or:[ (attr includes:#autoload) not ]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5021
			((cls := Smalltalk classNamed:className) notNil) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5022
			    putDependencyForClassBlock value:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5023
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5024
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5025
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5026
	    archClassNames := self compiled_classNamesForPlatform:whichArchitecture.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5027
	    archClassesPresent := archClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5028
		collect:[:className | Smalltalk classNamed:className]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5029
		thenSelect:[:cls | cls notNil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5030
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5031
	    archClassesLoaded := archClassesPresent select:[:cls | cls isLoaded].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5032
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5033
	    (Class classesSortedByLoadOrder:archClassesLoaded)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5034
		do:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5035
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5036
	    "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
  5037
	     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
  5038
	    archClassesPresent
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5039
		select:[:cls | cls isLoaded not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5040
		thenDo:putDependencyForClassBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5041
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5042
	    "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
  5043
	     and neither the real class file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5044
	    archClassNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5045
		select:[:eachClassName | (Smalltalk classNamed:eachClassName) isNil]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5046
		thenDo:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5047
		    putDependencyForClassBaseNameBlock value:(self filenameForClass:eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5048
		    s nextPutLine:' $(STCHDR)'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5049
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5050
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5051
	    self hasExtensionMethods ifTrue:putDependencyForExtensionsBlock.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5052
	]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5053
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5054
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5055
     stx_libbasic3 generateDependencies:#unix
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5056
     stx_libbasic3 generateDependencies:#win32
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5057
    "
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  5058
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5059
    "Created: / 14-09-2006 / 12:38:57 / cg"
13798
894c48237cd5 changed: #generateDependencies:
Claus Gittinger <cg@exept.de>
parents: 13797
diff changeset
  5060
    "Modified: / 27-10-2011 / 16:35:59 / cg"
16163
dfa1f3b17a6e class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16160
diff changeset
  5061
    "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
  5062
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5063
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5064
generateDependencies_unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5065
    ^ self generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5066
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5067
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5068
     stx_libbasic3 generateDependencies:#unix
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5069
     stx_libbasic3 generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5070
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5071
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5072
    "Modified: / 14-09-2006 / 13:32:34 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5073
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5074
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5075
generateDependencies_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5076
    ^ self generateDependencies:#win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5077
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5078
    "Created: / 14-09-2006 / 12:39:18 / cg"
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5079
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5080
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5081
generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5082
    "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
  5083
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5084
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5085
	generateClassLines:(self classExternalDeclarationLine_libInit_dot_cc)
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5086
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5087
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5088
     stx_libbasic generateExternalDeclarationLines_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5089
    "
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5090
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5091
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5092
generateLocalIncludes_unix
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5093
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5094
	s nextPutAll:(self localIncludes_unix).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5095
	self searchForProjectsWhichProvideHeaderFiles asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5096
	    do:[:includeProject |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5097
		s nextPutAll:' -I$(INCLUDE_TOP)/',(self topRelativePathToPackage:includeProject withSeparator:'/')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5098
	    ]
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5099
    ]
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5100
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5101
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5102
     bosch_dapasx generateLocalIncludes_unix
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5103
     bosch_dapasx_datenbasis generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5104
     stx_libbasic generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5105
     stx_libview generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5106
     stx_libtool2 generateLocalIncludes_unix
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5107
     stx_libui generateLocalIncludes_unix
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  5108
     cg_demos_helloWorld localIncludes_unix
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5109
    "
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5110
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5111
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5112
    "Modified: / 07-12-2006 / 17:47:06 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5113
    "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
  5114
!
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  5115
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5116
generateLocalIncludes_win32
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5117
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5118
	s nextPutAll:(self localIncludes_win32).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5119
	self searchForProjectsWhichProvideHeaderFiles asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5120
	    do:[:includeProject |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5121
		s nextPutAll:' -I$(INCLUDE_TOP)\',(self topRelativePathToPackage:includeProject withSeparator:'\')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5122
	    ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5123
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5124
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5125
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5126
     bosch_dapasx_application generateLocalIncludes_win32
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5127
     bosch_dapasx_datenbasis generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5128
     stx_libbasic generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5129
     stx_libview generateLocalIncludes_win32
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5130
     stx_libtool2 generateLocalIncludes_win32
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5131
    "
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5132
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5133
    "Created: / 09-08-2006 / 16:46:49 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  5134
    "Modified: / 07-12-2006 / 17:47:10 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5135
    "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
  5136
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5137
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5138
generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5139
    |classNamesDict|
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5140
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5141
    classNamesDict := self classNamesByCategory.
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  5142
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5143
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5144
	|putLineForClassName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5145
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5146
	putLineForClassName :=
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5147
	    [:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5148
		|mappings newObjectLine|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5149
		mappings := self objectLine_make_dot_spec_mappings: eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5150
		newObjectLine := self replaceMappings: mappings in: self objectLine_make_dot_spec.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5151
		s nextPutLine:newObjectLine.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5152
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5153
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5154
	classNamesDict keysAndValuesDo:[:eachCategory :classNames|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5155
	    s nextPutLine:eachCategory,'_OBJS= \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5156
	    classNames do:putLineForClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5157
	    (eachCategory = 'COMMON' and:[self hasExtensionMethods]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5158
		s nextPutLine:'    $(OUTDIR)extensions.$(O) \'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5159
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5160
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5161
	    s cr.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5162
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5163
	s cr.
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5164
    ].
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5165
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5166
    "
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5167
     stx_libbasic generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5168
     stx_libbasic3 generateObjects_make_dot_spec
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5169
     stx_libview generateObjects_make_dot_spec
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5170
     stx_libboss generateObjects_make_dot_spec
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5171
    "
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5172
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5173
    "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
  5174
    "Modified: / 20-10-2006 / 16:18:54 / cg"
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5175
!
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5176
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5177
generateRequiredMakePrerequisites_bc_dot_mak
11380
ac50ce4321b5 Fix prerequisite makes (pushd)
Stefan Vogel <sv@exept.de>
parents: 11377
diff changeset
  5178
    |myProjectId|
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5179
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5180
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5181
	myProjectId := self package.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5182
	"Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5183
	 is required!!
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5184
	 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
  5185
	 'popd' is not needed, since each line is executed in
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5186
		an own cmd.exe process.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5187
	 'popd' is not desireable, since it masks a possible
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5188
		error return from the 'bmake'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5189
	"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5190
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5191
	"cg: changed to not go and remake librun"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5192
	(self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:eachProjectId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5193
	    s tab; nextPutAll:'pushd ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5194
		   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5195
		   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5196
	].
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5197
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5198
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5199
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5200
     exept_expecco_application generateRequiredMakePrerequisites_bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5201
     alspa_batch_application generateRequiredMakePrerequisites_bc_dot_mak
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5202
    "
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5203
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5204
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5205
generateRequiredMakePrerequisites_make_dot_proto
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5206
    |libPath|
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5207
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5208
    ^ String streamContents:[:s |
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5209
        "cg: changed to not go and remake librun"
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5210
        (self allPreRequisitesSorted:#effectiveMandatoryPreRequisites "#effectivePreRequisites") do:[:projectID |
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5211
            libPath := self pathToPackage:projectID withSeparator:'/'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5212
            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
  5213
        ].
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5214
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5215
        s cr.
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5216
    ].
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5217
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5218
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5219
     exept_expecco_application generateRequiredMakePrerequisites_make_dot_proto
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5220
     alspa_batch_application generateRequiredMakePrerequisites_make_dot_proto
11157
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5221
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5222
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5223
    "Modified: / 03-03-2016 / 21:23:31 / cg"
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5224
    "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
  5225
!
5bef68f784c7 prereq rule also for libraries
Claus Gittinger <cg@exept.de>
parents: 11152
diff changeset
  5226
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5227
generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5228
    |myProjectId preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5229
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5230
    myProjectId := self package.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5231
    "Note: the trailing blank in 'CFLAGS_LOCAL=$(GLOBALDEFINES) '
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5232
     is required!!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5233
     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
  5234
     '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
  5235
	    an own cmd.exe process.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5236
     'popd' is not desierable, since it masks a possible
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5237
	    error return from the 'bmake'.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5238
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5239
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5240
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5241
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5242
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5243
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5244
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5245
	preRequisites do:[:eachProjectId |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5246
	    s tab; nextPutAll:'pushd ';
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5247
		   nextPutAll:(self msdosPathToPackage:eachProjectId from:myProjectId);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5248
		   nextPutLine:' & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5249
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5250
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5251
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5252
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5253
     exept_expecco_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5254
     alspa_batch_application generateRequiredMakeReferences_bc_dot_mak
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5255
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5256
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5257
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5258
generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5259
    |libPath preRequisites|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5260
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5261
    preRequisites := self allPreRequisitesSorted:#effectivePreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5262
    "these have been already built in preReq"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5263
    preRequisites removeAllFoundIn:(self allPreRequisites:#mandatoryPreRequisites).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5264
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5265
    ^ String streamContents:[:s |
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5266
        preRequisites do:[:projectID |
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5267
            libPath := self pathToPackage:projectID withSeparator:'/'.
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5268
            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
  5269
        ].
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5270
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5271
        s cr.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5272
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5273
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5274
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5275
     exept_expecco_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5276
     alspa_batch_application generateRequiredMakeReferences_make_dot_proto
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5277
    "
19290
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5278
59f1b3c69457 #BUGFIX
Claus Gittinger <cg@exept.de>
parents: 19203
diff changeset
  5279
    "Modified: / 03-03-2016 / 21:23:45 / cg"
23858
bcca48f14f1d #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23851
diff changeset
  5280
    "Modified: / 08-03-2019 / 12:12:52 / Claus Gittinger"
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5281
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  5282
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5283
generateSubDirectories
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5284
    ^ String streamContents:[:s |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5285
	self subProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5286
	    do:[:eachProjectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5287
		s space; nextPutAll:(self pathToPackage:eachProjectID from:self package withSeparator:'/')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5288
	    ]
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5289
    ]
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5290
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5291
    "
10380
ff1cfee6130b Fix subproject incluseion in Make.proto
Stefan Vogel <sv@exept.de>
parents: 10369
diff changeset
  5292
     exept_expecco generateSubDirectories
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5293
    "
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5294
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5295
    "Created: / 09-08-2006 / 11:26:59 / fm"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5296
    "Modified: / 14-09-2006 / 18:46:18 / cg"
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5297
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5298
12771
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5299
generate_definitionClassLine_libInit_dot_cc
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5300
    "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
  5301
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5302
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5303
	generateClassLines:(self classLine_libInit_dot_cc)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5304
	forClasses:(Array with:self name)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5305
	includeAdditionalClasses:false
12804
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5306
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5307
    "
079b692e0776 added: #generateClassLines:forClasses:includeAdditionalClasses:
sr
parents: 12771
diff changeset
  5308
     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
  5309
    "
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5310
!
878fc210c8e7 add an extra entry to the libInit.cc code:
Claus Gittinger <cg@exept.de>
parents: 12749
diff changeset
  5311
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5312
headerFileOutputArg
20590
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  5313
    "Every header file is left locally in its lib-dir"
60c281959efc #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20586
diff changeset
  5314
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  5315
    ^ '-headerDir=.'
10022
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5316
!
e0df2092b978 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10013
diff changeset
  5317
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5318
objectLine_make_dot_spec_mappings: aClassName
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5319
    ^ Dictionary new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5320
	at: 'CLASSFILE' put:(self filenameForClass:aClassName);
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5321
	yourself
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5322
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5323
    "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
  5324
    "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
  5325
    "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
  5326
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  5327
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5328
subProjectBmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5329
    "generate submake-calls for borland bcc"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5330
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5331
    ^ self subProjectMakeCallsUsing:'call bmake %1 %2'.
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5332
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5333
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5334
subProjectLCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5335
    "generate submake-calls for lcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5336
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5337
    ^ self subProjectMakeCallsUsing:'call lccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5338
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5339
    "Created: / 03-09-2012 / 19:49:08 / cg"
12438
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5340
!
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5341
26bbeae51816 added: #subProjectMakeCallsUsing:
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  5342
subProjectMakeCallsUsing:callString
20703
d7634ffa200f #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20673
diff changeset
  5343
    "for xxxmake.bat files"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5344
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5345
    ^ String streamContents:[:s |
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5346
        (self effectiveSubProjects:#win32) do:[:packageID |
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5347
            |pkgLabel skipLabel joinLabel|
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5348
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5349
            pkgLabel := (packageID copyReplaceAll:$: with:$_) copyReplaceAll:$/ with:$_.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5350
            skipLabel := 'skip_',pkgLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5351
            joinLabel := 'done_',pkgLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5352
            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
  5353
            s nextPutLine:'@echo "***********************************"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5354
            s nextPutLine:'@echo "Building ',(packageID copyReplaceAll:$: with:$/),'"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5355
            s nextPutLine:'@echo "***********************************"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5356
            s nextPutLine:'@pushd ', (self msdosPathToPackage:packageID from:(self package)).
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5357
            s nextPutAll:'@'; nextPutAll:callString; nextPutLine:' || exit /b "%errorlevel%"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5358
            s nextPutLine:'@popd'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5359
            s nextPutLine:'@goto ',joinLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5360
            s nextPutLine:':',skipLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5361
            s nextPutLine:'@echo "###################################"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5362
            s nextPutLine:'@echo "FOLDER MISSING: ',(packageID copyReplaceAll:$: with:$/),'"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5363
            s nextPutLine:'@echo "###################################"'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5364
            (self nonMandatorySubProjects includes:packageID) ifTrue:[
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5365
                s nextPutLine:'@REM exit /b 1'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5366
                s nextPutLine:'@echo "subproject is not mandatory; continue."'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5367
            ] ifFalse:[    
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5368
                s nextPutLine:'exit /b 1'.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5369
            ].    
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5370
            s nextPutLine:':',joinLabel.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5371
            s cr.
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5372
        ]
9887
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5373
    ]
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5374
5c0c2a62ad2d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9883
diff changeset
  5375
    "Created: / 14-09-2006 / 18:40:09 / cg"
13734
e4a151f35857 changed: #bc_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13728
diff changeset
  5376
    "Modified: / 27-09-2011 / 19:36:12 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  5377
    "Modified: / 17-01-2017 / 16:32:45 / stefan"
23850
4189eb0fe095 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23746
diff changeset
  5378
    "Modified: / 07-03-2019 / 17:30:46 / Claus Gittinger"
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5379
!
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5380
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5381
subProjectMingwmakeCalls
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5382
    "generate submake-calls for mingw"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5383
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5384
    ^ self subProjectMakeCallsUsing:'call mingwmake %1 %2'.
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5385
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5386
    "Created: / 05-09-2012 / 19:45:53 / cg"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5387
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5388
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5389
subProjectTCCmakeCalls
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5390
    "generate submake-calls for tcc"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5391
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5392
    ^ self subProjectMakeCallsUsing:'call tccmake %1 %2'.
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5393
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5394
    "Created: / 03-09-2012 / 19:50:53 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5395
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5396
11937
622f2641439d vcmake.bat generation
Claus Gittinger <cg@exept.de>
parents: 11869
diff changeset
  5397
subProjectVCmakeCalls
12439
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5398
    "generate submake-calls for visual-C"
c0cf51f2bf67 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 12438
diff changeset
  5399
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5400
    ^ self subProjectMakeCallsUsing:'call vcmake %1 %2'.
9817
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5401
! !
619b43f937c9 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9803
diff changeset
  5402
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5403
!ProjectDefinition class methodsFor:'file mappings support-Java'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5404
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5405
generateJavaBuildPrereqs
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5406
    ^ self generateJavaBuildPrereqsUsingTemplate:
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5407
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5408
'    <target name="prereqs.%(PREREQ_PACKAGE_DOTTED)" extensionOf="prereqs.main">
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5409
	<ant antfile="${TOP}/../%(PREREQ_PACKAGE_SLASHED)/java/build.xml"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5410
	     target="${ant.project.invoked-targets}"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5411
	     inheritAll="false"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5412
	     useNativeBasedir="true"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5413
    </target>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5414
'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5415
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5416
    "Created: / 18-01-2015 / 07:40:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5417
    "Modified: / 19-01-2015 / 07:27:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5418
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5419
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5420
generateJavaBuildPrereqsClasspathPaths
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5421
    ^ self generateJavaBuildPrereqsUsingTemplate:
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5422
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5423
'    <path id="build.classpath.prereqs.%(PREREQ_PACKAGE_DOTTED)">
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5424
	<pathelement path="${TOP}/../%(PREREQ_PACKAGE_SLASHED)/java/bin"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5425
	<fileset dir="${TOP}/../%(PREREQ_PACKAGE_SLASHED)/java/libs" includes="*.jar"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5426
    </path>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5427
'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5428
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5429
    "Created: / 18-01-2015 / 07:40:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5430
    "Modified: / 19-01-2015 / 07:27:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5431
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5432
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5433
generateJavaBuildPrereqsClasspathRefs
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5434
    ^ self generateJavaBuildPrereqsUsingTemplate:
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5435
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5436
'       <path refid="build.classpath.prereqs.%(PREREQ_PACKAGE_DOTTED)"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5437
'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5438
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5439
    "Created: / 18-01-2015 / 07:40:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5440
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5441
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5442
generateJavaBuildPrereqsUsingTemplate: template
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5443
    | mappings |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5444
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5445
    mappings := Dictionary new.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5446
    mappings at: 'PACKAGE_SLASHED' put:  (self package copyReplaceAll: $: with: $/).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5447
    mappings at: 'PACKAGE_DOTTED' put: ((self package copyReplaceAll: $: with: $/) replaceAll: $/ with: $.).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5448
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5449
    ^ String streamContents:[ :s |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5450
	((self preRequisitesFor: self package) asArray sort) do:[:each |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5451
	    | def |
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5452
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5453
	    def := ProjectDefinition definitionClassForPackage: each createIfAbsent: false.
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5454
	    def javaBundle notNil ifTrue: [
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5455
		mappings at: 'PREREQ_PACKAGE_SLASHED' put:  (each copyReplaceAll: $: with: $/).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5456
		mappings at: 'PREREQ_PACKAGE_DOTTED' put: ((each copyReplaceAll: $: with: $/) replaceAll: $/ with: $.).
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5457
		s nextPutAll: (template expandPlaceholdersWith: mappings)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5458
	    ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5459
	].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5460
    ]
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5461
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5462
    "Created: / 18-01-2015 / 07:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5463
    "Modified: / 19-01-2015 / 07:29:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5464
! !
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5465
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5466
!ProjectDefinition class methodsFor:'file templates'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5467
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5468
autopackage_default_dot_apspec
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5469
    "for linux's autopackage"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5470
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5471
^
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5472
'# -*- shell-script -*-
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5473
[Meta]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5474
ShortName: %(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5475
SoftwareVersion: %(PRODUCT_VERSION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5476
DisplayName: %(DESCRIPTION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5477
RootName: %(PRODUCT_ROOT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5478
Summary: %(DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5479
Maintainer: %(MAINTAINER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5480
Packager: %(PACKAGER)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5481
PackageVersion: 1
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5482
CPUArchitectures: %(PRODUCT_CPU_VERSIONS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5483
AutopackageTarget: 1.0
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5484
Type: %(PRODUCT_TYPE)
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5485
License: %(PRODUCT_LICENSE)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5486
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5487
[Description]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5488
%(PRODUCT_DESCRIPTION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5489
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5490
[BuildPrepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5491
# If you''re using autotools, the default should be enough.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5492
# 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
  5493
# need to pass arguments to configure, just add them to prepareBuild:
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5494
# prepareBuild --enable-foo --disable-bar
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5495
#prepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5496
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5497
[BuildUnprepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5498
# 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
  5499
#unprepareBuild
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5500
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5501
[Globals]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5502
# 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
  5503
export APKG_BUILD_SKIP_CONFIGURE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5504
export APKG_BUILD_SKIP_MAKE=1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5505
export MYPREFIX=/opt/%(APPLICATION)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5506
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5507
[Prepare]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5508
#recommend ''@autopackage.org/autopackage-gtk'' 1
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5509
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5510
[Imports]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5511
import <<EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5512
$source_dir/%(APPLICATION)
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5513
%(ADDITIONAL_SOURCE_DIRS)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5514
EOF
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5515
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5516
for i in $source_dir/*.so
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5517
do
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5518
    echo $source_dir/$(readlink $i)
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5519
done | import
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5520
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5521
[Install]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5522
if [ "$PREFIX" !!= "/usr" ]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5523
then
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5524
    export MYPREFIX=$PREFIX
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5525
fi
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5526
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5527
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
  5528
mkdir -p $MYPREFIX
23440
4ecbc6f8d8e9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 23437
diff changeset
  5529
copyFiles %(PRODUCT_NAME) *.rc resources        $MYPREFIX/bin
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5530
%(ADDITIONAL_COPYFILES)
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5531
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5532
#installExe %(PRODUCT_NAME)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5533
#installLib *.so
20550
66bb5e013497 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 20546
diff changeset
  5534
%(ADDITIONAL_INSTALL)
13177
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5535
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5536
[Uninstall]
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5537
# 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
  5538
# "Install" to create files. All autopackage API functions
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5539
# that installs files are logged.
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5540
uninstallFromLog
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5541
'
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5542
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5543
    "Created: / 21-12-2010 / 09:06:21 / cg"
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5544
!
f7bebd737d65 added:10 methods
Claus Gittinger <cg@exept.de>
parents: 13171
diff changeset
  5545
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5546
bc_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5547
    "answer a template for the bc.mak makefile.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5548
     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
  5549
     $% characters have to be duplicated.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5550
     Only needed for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5551
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5552
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5553
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5554
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5555
bmake_dot_mak
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5556
    "the template code for the bmake.bat file
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5557
     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
  5558
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5559
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5560
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5561
@REM make using Borland bcc32
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5562
@REM type bmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5563
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5564
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5565
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5566
17186
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5567
make.exe -N -f bc.mak  %%DEFINES%% %%*
166df90c47a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17109
diff changeset
  5568
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5569
%(SKIP_IF_ARG_IS_APP_TARGET)
19594
2567f65a534c #BUGFIX by sr
sr
parents: 19592
diff changeset
  5570
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5571
%(SUBPROJECT_BMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5572
'
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
    "Created: / 17-08-2006 / 20:04:14 / cg"
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5575
    "Modified: / 04-09-2012 / 11:46:22 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5576
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5577
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5578
builder_baseline_dot_rbspec
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5579
    "For rake-base automatic builder"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5580
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5581
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5582
# generated from project definition
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5583
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5584
# load package dependencies
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5585
load ''package.deps.rake''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5586
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5587
# kludge: clear some invalid dependencies of libwidg
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5588
# (should be fixed in baseline)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5589
clear "stx:libwidg" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5590
clear "stx:libwidg2" => "stx:libui"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5591
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5592
project :''%(APPLICATION):baseline'' do
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5593
  # preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5594
  %(PREAMBLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5595
  # --------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5596
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5597
%(PACKAGES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5598
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5599
  application "%(APPLICATION_PACKAGE)"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5600
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5601
  # postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5602
  %(POSTABLE)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5603
  # ---------
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5604
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5605
end
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5606
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5607
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5608
    "Created: / 24-02-2011 / 11:39:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5609
    "Modified: / 27-02-2011 / 12:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5610
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5611
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5612
builder_baseline_dot_rbspec_postamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5613
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5614
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5615
    "Created: / 24-02-2011 / 11:58:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5616
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5617
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5618
builder_baseline_dot_rbspec_preamble
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5619
    ^ ''
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5620
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5621
    "Created: / 24-02-2011 / 11:58:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5622
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5623
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5624
classExternalDeclarationLine_libInit_dot_cc
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5625
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5626
^'extern void _%(CLASS)_Init(int pass, struct __vmData__ *__pRT__, OBJ snd);'
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5627
!
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5628
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5629
classLine_libInit_dot_cc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5630
19309
a1d3d5187c65 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 19290
diff changeset
  5631
^'    _%(CLASS)_Init(pass,__pRT__,snd);'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5632
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5633
    "Created: / 08-08-2006 / 12:51:44 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5634
    "Modified: / 08-08-2006 / 15:46:05 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5635
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5636
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5637
generate_osx_info_dot_plist
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5638
    "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
  5639
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5640
    |plist|
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5641
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5642
    (plist := self osx_info_dot_plist_dictionary) isNil ifTrue:[^ nil].
20586
fd48de558a00 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 20585
diff changeset
  5643
    MacPlistXMLCoder isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5644
	Smalltalk loadPackage:'stx:goodies/xml/stx'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5645
	Smalltalk loadPackage:'stx:goodies/fileformats/plist'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5646
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5647
    ^ MacPlistXMLCoder encode:plist
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5648
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5649
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5650
     exept_expecco_application info_dot_plist
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5651
    "
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5652
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  5653
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5654
java_build_auto_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5655
    "Template for java/build.auto.xml"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5656
^ '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5657
<!!-- This file has been generated by STX:LIBJAVA. Do not edit!! Edit build.xml instead -->
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5658
<project>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5659
    <property name="TOP" value="../%(TOP)" />
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5660
    <import file="${TOP}/libjava/java/build.common.xml"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5661
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5662
    <path id="build.classpath.prereqs">
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5663
%(BUILD_PREREQS_CLASSPATH_REFS)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5664
    </path>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5665
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5666
%(BUILD_PREREQS_CLASSPATH_PATHS)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5667
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5668
%(BUILD_PREREQS)
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5669
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5670
</project>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5671
'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5672
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5673
    "Created: / 18-01-2015 / 07:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5674
    "Modified: / 19-01-2015 / 07:23:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5675
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5676
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5677
java_build_dot_xml
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5678
    "Template for java/build.xml"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5679
^ '<?xml version="1.0" encoding="UTF-8" standalone="no"?>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5680
<project name="%(PACKAGE_DITTED)" default="compile" basedir=".">
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5681
    <import file="build.auto.xml"/>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5682
    <!!-- Put custom build code here, this file is never overwritten by Smalltalk/X -->
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5683
</project>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5684
'
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5685
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5686
    "Created: / 19-01-2015 / 07:35:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5687
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  5688
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5689
lccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5690
    "the template code for the lccmake.bat file"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5691
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5692
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5693
'@REM -------
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5694
@REM make using lcc compiler
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5695
@REM type lccmake, and wait...
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5696
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5697
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5698
make.exe -N -f bc.mak -DUSELCC=1 %%*
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5699
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5700
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5701
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5702
%(SUBPROJECT_LCCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5703
'
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5704
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5705
    "Created: / 03-09-2012 / 19:49:23 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5706
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5707
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5708
make_dot_proto
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5709
    "the template code for the make.proto file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5710
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5711
    ^ self subclassResponsibility
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5712
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5713
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5714
make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5715
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5716
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5717
'# $','Header','$
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5718
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5719
# DO NOT EDIT
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5720
# 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
  5721
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5722
# Warning: once you modify this file, do not rerun
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5723
# stmkmp or projectDefinition-build again - otherwise, your changes are lost.
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
# This file contains specifications which are common to all platforms.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5726
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5727
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5728
# Do NOT CHANGE THESE DEFINITIONS
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5729
# (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
  5730
#  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
  5731
MODULE=%(MODULE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5732
MODULE_DIR=%(MODULE_DIRECTORY)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5733
PACKAGE=$(MODULE):$(MODULE_DIR)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5734
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5735
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5736
# Argument(s) to the stc compiler (stc --usage).
13875
2e01d09fa4c4 -headerDir= instead of --headerDir=
Claus Gittinger <cg@exept.de>
parents: 13873
diff changeset
  5737
#  -headerDir=. : create header files locally
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5738
#                (if removed, they will be created as common
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5739
#  -Pxxx       : defines the package
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5740
#  -Zxxx       : a prefix for variables within the classLib
20152
53ff3759ee7e #OTHER by mawalch
mawalch
parents: 20023
diff changeset
  5741
#  -Dxxx       : defines passed to CC for inline C-code
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5742
#  -Ixxx       : include path passed to CC for inline C-code
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5743
#  +optspace   : optimized for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5744
#  +optspace2  : optimized more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5745
#  +optspace3  : optimized even more for space
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5746
#  +optinline  : generate inline code for some ST constructs
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5747
#  +inlineNew  : additionally inline new
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5748
#  +inlineMath : additionally inline some floatPnt math stuff
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5749
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5750
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5751
# STCLOCALOPTIMIZATIONS=+optinline +inlineNew
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5752
# STCLOCALOPTIMIZATIONS=+optspace3
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5753
STCLOCALOPTIMIZATIONS=%(STCOPTIMIZATIONOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5754
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5755
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5756
# Argument(s) to the stc compiler (stc --usage).
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5757
#  -warn            : no warnings
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5758
#  -warnNonStandard : no warnings about ST/X extensions
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5759
#  -warnEOLComments : no warnings about EOL comment extension
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5760
#  -warnPrivacy     : no warnings about privateClass extension
17070
713e0328c7d0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17025
diff changeset
  5761
#  -warnUnused      : no warnings about unused variables
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5762
#
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5763
# ********** OPTIONAL: MODIFY the next line(s) ***
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5764
# STCWARNINGS=-warn
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5765
# STCWARNINGS=-warnNonStandard
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5766
# STCWARNINGS=-warnEOLComments
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5767
STCWARNINGS=%(STCWARNINGOPTIONS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5768
12545
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5769
%(CLASSES)
Stefan Vogel <sv@exept.de>
parents: 12541
diff changeset
  5770
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5771
%(OBJECTS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5772
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5773
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5774
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5775
    "Modified: / 09-08-2006 / 15:10:57 / fm"
14248
fe9da09afe27 changed: #make_dot_spec
Claus Gittinger <cg@exept.de>
parents: 14233
diff changeset
  5776
    "Modified: / 26-07-2012 / 00:56:03 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5777
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5778
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5779
makefile
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5780
^
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5781
'#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5782
# DO NOT EDIT
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5783
#
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5784
# make uses this file (Makefile) only, if there is no
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5785
# file named "makefile" (lower-case m) in the same directory.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5786
# My only task is to generate the real makefile and call make again.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5787
# Thereafter, I am no longer used and needed.
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5788
#
15201
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5789
# MACOSX caveat:
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5790
#   as filenames are not case sensitive (in a default setup),
15385
2ca0c225509e class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15384
diff changeset
  5791
#   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
  5792
#   "Makefile.init", and you have to execute "make -f Makefile.init" to
22f01101bac5 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15173
diff changeset
  5793
#   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
  5794
#   script.
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5795
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5796
.PHONY: run
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5797
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5798
run: makefile
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5799
	$(MAKE) -f makefile
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5800
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5801
#only needed for the definition of $(TOP)
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5802
include Make.proto
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5803
14665
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5804
makefile: mf
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5805
fe2327c6d20b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14646
diff changeset
  5806
mf:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5807
	$(TOP)/rules/stmkmf
12428
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5808
'
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5809
!
Claus Gittinger <cg@exept.de>
parents: 12425
diff changeset
  5810
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5811
mingwmake_dot_mak
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5812
    "the template code for the mingwmake.bat file"
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5813
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5814
    ^
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5815
'@REM -------
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5816
@REM make using mingw gnu compiler
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5817
@REM type mingwmake, and wait...
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5818
@REM do not edit - automatically generated from ProjectDefinition
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5819
@REM -------
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5820
@SET DEFINES=
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  5821
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5822
@pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5823
@call find_mingw.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5824
@popd
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5825
make.exe -N -f bc.mak %DEFINES% %%USEMINGW_ARG%% %%*
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5826
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5827
%(SKIP_IF_ARG_IS_APP_TARGET)
19595
c004e345266d #BUGFIX by sr
sr
parents: 19594
diff changeset
  5828
14345
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5829
%(SUBPROJECT_MINGWMAKE_CALLS)
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5830
'
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5831
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5832
    "Created: / 05-09-2012 / 19:44:51 / cg"
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5833
    "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
  5834
!
c94f3cfd278a mingw support
Claus Gittinger <cg@exept.de>
parents: 14344
diff changeset
  5835
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5836
objectLine_make_dot_spec
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5837
21236
df609ea04274 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 21102
diff changeset
  5838
    ^'    $(OUTDIR)%(CLASSFILE).$(O) \'
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5839
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5840
    "Created: / 08-08-2006 / 20:16:46 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5841
    "Modified: / 23-08-2006 / 11:11:38 / cg"
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
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5844
osx_info_dot_plist_dictionary
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5845
    "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
  5846
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5847
    |plist pkg icnFilename docTypeDescriptions|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5848
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5849
    plist := Dictionary new.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5850
    plist at:'CFBundleInfoDictionaryVersion' put:'6.0'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5851
    pkg := self package copyReplaceAny:':/' with:$..
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5852
    (pkg endsWith:'.application') ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5853
	pkg := pkg copyButLast:'.application' size.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5854
    ].
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5855
    plist at:'CFBundleIdentifier' put:pkg.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5856
    plist at:'CFBundleShortVersionString' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5857
    plist at:'CFBundleVersion' put:(self fileVersion asString).
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5858
    plist at:'LSMinimumSystemVersion' put:'10.6'.
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5859
    "/ plist at:'CFBundleDevelopmentRegion' put:'English'.
20601
2308f69ba99c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 20590
diff changeset
  5860
    plist at:'CFBundleExecutable' put:(self applicationName).
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5861
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5862
    self isLibraryDefinition ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5863
	plist at:'CFBundleName' put:(self package copyReplaceAny:':/' with:$.).
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5864
    ] ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5865
	plist at:'CFBundleName' put:(self applicationName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5866
	plist at:'CFBundlePackageType' put:'APPL'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5867
    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5868
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5869
    (icnFilename := self applicationIconFileNameOSX) notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5870
	plist at:'CFBundleIconFile' put:icnFilename.
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5871
    ].
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5872
    (docTypeDescriptions := self applicationDocumentTypeDescriptions) notNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5873
	plist at:'CFBundleDocumentTypes' put:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5874
	    (docTypeDescriptions collect:[:each |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5875
		|d|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5876
		d := Dictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5877
		d at:'CFBundleTypeExtensions' put:{ each extension }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5878
		d at:'CFBundleTypeIconFile' put:{ each iconFileOSX }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5879
		d at:'CFBundleTypeMimeTypes' put:{ each mimeType }.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5880
		d at:'CFBundleTypeName' put:(each documentTypeName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5881
		d at:'CFBundleTypeRole' put:'Editor'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5882
		d
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5883
	    ]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  5884
    ].
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5885
    ^ plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5886
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5887
    "
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5888
     exept_expecco_application info_dot_plist
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5889
    "
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5890
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  5891
    "Modified (format): / 24-02-2017 / 09:35:09 / cg"
20582
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5892
!
1f21182eba5b #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20567
diff changeset
  5893
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5894
packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5895
    "the template code for the <libName>.rc file.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5896
     Only used for WIN"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5897
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5898
^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5899
'//
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5900
// DO NOT EDIT
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5901
// automagically generated from the projectDefinition: ',self name,'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5902
//
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5903
VS_VERSION_INFO VERSIONINFO
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5904
  FILEVERSION     %(FILE_VERSION_COMMASEPARATED)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5905
  PRODUCTVERSION  %(PRODUCT_VERSION_COMMASEPARATED)
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5906
#if (__BORLANDC__)
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5907
  FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5908
  FILEFLAGS       VS_FF_PRERELEASE | VS_FF_SPECIALBUILD
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5909
  FILEOS          VOS_NT_WINDOWS32
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5910
  FILETYPE        %(FILETYPE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5911
  FILESUBTYPE     VS_USER_DEFINED
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5912
#endif
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5913
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5914
BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5915
  BLOCK "StringFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5916
  BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5917
    BLOCK "040904E4"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5918
    BEGIN
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5919
      VALUE "CompanyName", "%(COMPANY_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5920
      VALUE "FileDescription", "%(FILE_DESCRIPTION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5921
      VALUE "FileVersion", "%(FILE_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5922
      VALUE "InternalName", "%(INTERNAL_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5923
%(LEGAL_COPYRIGHT_LINE)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5924
      VALUE "ProductName", "%(PRODUCT_NAME)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5925
      VALUE "ProductVersion", "%(PRODUCT_VERSION)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5926
      VALUE "ProductDate", "%(PRODUCT_DATE)\0"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5927
    END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5928
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5929
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5930
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5931
  BLOCK "VarFileInfo"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5932
  BEGIN                               //  Language   |    Translation
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5933
    VALUE "Translation", 0x409, 0x4E4 // U.S. English, Windows Multilingual
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5934
  END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5935
END
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5936
'
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5937
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5938
     stx_libbasic3 packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5939
     stx_libbasic3 generate_packageName_dot_rc
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5940
    "
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5941
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5942
    "Created: / 08-08-2006 / 19:31:29 / fm"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5943
    "Modified: / 09-08-2006 / 15:10:57 / fm"
13769
8259f3bf7fa2 changed: #packageName_dot_rc
Claus Gittinger <cg@exept.de>
parents: 13763
diff changeset
  5944
    "Modified: / 07-10-2011 / 10:51:34 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5945
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5946
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5947
package_dot_deps_dot_rake
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5948
    ^ '
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5949
# Package dependencies.
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5950
# Automatically generated by project definition.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5951
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5952
%(DEPENDENCIES)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5953
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5954
'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5955
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5956
    "Created: / 24-02-2011 / 22:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
21753
05abb81eb7a6 #OTHER by mawalch
mawalch
parents: 21683
diff changeset
  5957
    "Modified: / 17-05-2017 / 12:35:21 / mawalch"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5958
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  5959
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5960
tccmake_dot_mak
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5961
    "the template code for the tccmake.bat file"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5962
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5963
    ^
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5964
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5965
@REM make using tcc compiler (Tiny-C)
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5966
@REM type tccmake, and wait...
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5967
@REM do not edit - automatically generated from ProjectDefinition
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5968
@REM -------
14361
0e832917e039 changed:
Claus Gittinger <cg@exept.de>
parents: 14354
diff changeset
  5969
make.exe -N -f bc.mak -DUSETCC=1 %%*
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5970
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5971
%(SKIP_IF_ARG_IS_APP_TARGET)
19596
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5972
67605c5fe0a3 #BUGFIX by sr
sr
parents: 19595
diff changeset
  5973
14334
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5974
%(SUBPROJECT_TCCMAKE_CALLS)
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5975
'
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5976
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5977
    "Created: / 03-09-2012 / 19:50:41 / cg"
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5978
!
654df740c912 tcc preps
Claus Gittinger <cg@exept.de>
parents: 14248
diff changeset
  5979
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5980
vcmake_dot_mak
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5981
    "the template code for the vcmake.bat file"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5982
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  5983
    ^
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5984
'@REM -------
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  5985
@REM make using Microsoft Visual C compiler
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5986
@REM type vcmake, and wait...
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5987
@REM do not edit - automatically generated from ProjectDefinition
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  5988
@REM -------
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5989
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5990
@if not defined VSINSTALLDIR (
14850
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5991
    pushd %(TOP)\rules
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5992
    call vcsetup.bat
fbe2fa085a67 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14843
diff changeset
  5993
    popd
13789
4071cbd4caf8 changed: #vcmake_dot_mak
Claus Gittinger <cg@exept.de>
parents: 13769
diff changeset
  5994
)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5995
@SET DEFINES=
18521
ae05aa1bcefd class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18517
diff changeset
  5996
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5997
make.exe -N -f bc.mak -DUSEVC=1 %DEFINES% %*
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  5998
19627
6facd6946531 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 19596
diff changeset
  5999
%(SKIP_IF_ARG_IS_APP_TARGET)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6000
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6001
%(SUBPROJECT_VCMAKE_CALLS)
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6002
'
12966
396518f8f526 usevc/usebc handling
Claus Gittinger <cg@exept.de>
parents: 12964
diff changeset
  6003
14336
da3a54f80c09 changed:
Claus Gittinger <cg@exept.de>
parents: 14334
diff changeset
  6004
    "Modified: / 04-09-2012 / 11:45:49 / cg"
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6005
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6006
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6007
!ProjectDefinition class methodsFor:'loading'!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6008
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  6009
checkForLoad
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  6010
    "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
  6011
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6012
    |m|
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6013
    
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  6014
    self supportedOnPlatform ifFalse:[
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  6015
        PackageNotCompatibleError 
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  6016
            raiseRequestWith:self package
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  6017
            errorString:(self reasonForNotSupportedOnPlatform)
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  6018
    ].
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  6019
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6020
    "/ check for an uncompiled method in the dictionary
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6021
    "/ happens if an incompatible library is loaded.
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6022
    (m := self class compiledMethodAt:#mandatoryPreRequisites) notNil ifTrue:[
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6023
        m isExecutable ifFalse:[
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6024
            PackageNotCompatibleError 
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6025
                raiseRequestWith:self package
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6026
                errorString:'package is incompatible (needs recompilation)'
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6027
        ].
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6028
    ].
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6029
21563
f1041933ad1a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21562
diff changeset
  6030
    "Modified (comment): / 24-02-2017 / 10:06:44 / cg"
23746
c67b523eb888 #QUALITY by cg
Claus Gittinger <cg@exept.de>
parents: 23681
diff changeset
  6031
    "Modified: / 19-02-2019 / 16:24:25 / Claus Gittinger"
19905
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  6032
!
b0aeb6e60706 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 19898
diff changeset
  6033
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6034
ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6035
    "ensure that all classes and extensions are loaded properly.
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6036
     This is normally no problem for compiled classLibs - however, if a package
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6037
     has only be installedAsAutoloaded, some classes might want to ensure that
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6038
     when being loaded themself."
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6039
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  6040
    self supportedOnPlatform ifFalse:[^ self].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  6041
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6042
    self hasAllExtensionsLoaded ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6043
	self breakPoint:#cg.
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6044
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6045
    self hasAllClassesFullyLoaded ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6046
	self hasAllClassesLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6047
	    self breakPoint:#cg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6048
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6049
	self installAutoloadedClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6050
	self classes do:[:cls | cls autoload ].
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6051
    ].
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6052
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6053
    "
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6054
     stx_libbasic ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6055
    "
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6056
    "Verbose := true
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6057
     stx_libjavascript hasAllExtensionsLoaded
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  6058
    "
12735
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  6059
    "Verbose := true
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  6060
     stx_goodies_soap_xe hasAllExtensionsLoaded
215f7514f56b comment/format in: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 12731
diff changeset
  6061
    "
13689
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  6062
9d93d5e56029 changed: #ensureFullyLoaded
Claus Gittinger <cg@exept.de>
parents: 13688
diff changeset
  6063
    "Modified: / 12-09-2011 / 16:57:53 / cg"
12397
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6064
!
Claus Gittinger <cg@exept.de>
parents: 12372
diff changeset
  6065
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6066
load
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6067
    "load the project
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6068
     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
  6069
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6070
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6071
    ^ self loadAsAutoloaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6072
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6073
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6074
loadAsAutoloaded:asAutoloaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6075
    "load the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6076
     If asAutoloaded == true, install all new classes as autoloaded.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6077
     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
  6078
     false if the package's classes have been already present."
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6079
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6080
    |newStuffHasBeenLoaded meOrMySecondIncarnation|
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6081
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  6082
    self supportedOnPlatform ifFalse:[^ false].
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  6083
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6084
    self projectIsLoaded ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6085
	asAutoloaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6086
	    "/ to be considered !!
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6087
"/            self isFullyLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6088
"/                self hasAllExtensionsLoaded ifFalse:[
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6089
"/                    self loadExtensions.
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6090
"/                ].
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6091
"/                self loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6092
"/            ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6093
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6094
	^ false
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  6095
    ].
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  6096
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  6097
    "/ the following prevents us from crshing if a project definition's prerequisites
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  6098
    "/ are wrong and circular/recursive
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  6099
12749
160f7b56e426 oops: leftover halts.
Claus Gittinger <cg@exept.de>
parents: 12748
diff changeset
  6100
    thisContext isRecursive ifTrue:[self breakPoint:#cg. ^ false].    "/ avoid endless loops
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6101
    (PackagesBeingLoaded includes:self package) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6102
	"/ seems to be a recursive call
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6103
	^ false
14851
7be11ef3d914 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14850
diff changeset
  6104
    ].
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6105
15172
64b469fe795c class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15171
diff changeset
  6106
    PackagesBeingLoaded add:self package.
17587
9003db1ba1f8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17577
diff changeset
  6107
    PackageLoadInProgressQuery
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6108
	answerNotifyLoading:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6109
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6110
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6111
	    [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6112
		newStuffHasBeenLoaded := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6113
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6114
		Smalltalk silentLoading ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6115
		    "/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6116
		    Logger info:('loading %1%2...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6117
					bindWith:(asAutoloaded ifTrue:['as autoloaded '] ifFalse:[''])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6118
					with:self name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6119
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6120
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6121
		self rememberOverwrittenExtensionMethods.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6122
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6123
		self activityNotification:'Executing pre-load action'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6124
		self executeHooks: #preLoad.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6125
		self preLoadAction.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6126
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6127
		meOrMySecondIncarnation := self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6128
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6129
		Class withoutUpdatingChangesDo:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6130
		    self activityNotification:'Loading prerequisities'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6131
		    self loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6132
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6133
		    self checkPrerequisitesForLoading.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6134
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6135
		    asAutoloaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6136
			"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
  6137
			PackageLoadError ignoreIn:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6138
			    self loadClassLibrary.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6139
			    "/ could have overloaded my first incarnation
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6140
			    meOrMySecondIncarnation := (Smalltalk at:(self name)) ? self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6141
			    meOrMySecondIncarnation ~~ self ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6142
				meOrMySecondIncarnation fetchSlotsFrom:self.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6143
			    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6144
			].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6145
		    ].
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
		    self hasAllExtensionsLoaded ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6148
			self activityNotification:'Loading extensions'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6149
			"/ evaluating or here - want extensions to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6150
			newStuffHasBeenLoaded := newStuffHasBeenLoaded | meOrMySecondIncarnation loadExtensions.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6151
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6152
		    (self hasAllClassesLoaded:asAutoloaded not) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6153
			self activityNotification:'Loading classes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6154
			"/ evaluating or here - want autoloaded classes to be loaded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6155
			newStuffHasBeenLoaded := newStuffHasBeenLoaded | (meOrMySecondIncarnation loadAllClassesAsAutoloaded:asAutoloaded).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6156
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6157
		    "/ 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
  6158
		    "/ to some classes being loaded from source (soap)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6159
		    "/     self activityNotification:'Loading sub projects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6160
		    "/     meOrMySecondIncarnation loadSubProjectsAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6161
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6162
		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
  6163
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6164
		"/ mhmh - already done for dll-loaded packages
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6165
		"/ meOrMySecondIncarnation initializeAllClasses.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6166
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6167
		meOrMySecondIncarnation projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6168
		meOrMySecondIncarnation ~~ self ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6169
		    self projectIsLoaded:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6170
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6171
	    ] ensure:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6172
		PackagesBeingLoaded remove:self package ifAbsent:[].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6173
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6174
	    "/ load the other prerequisites
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6175
	    self loadPreRequisitesAsAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6176
	].
13194
8e451f8ff654 changed: #loadAsAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13178
diff changeset
  6177
    self activityNotification:('Done (%1).' bindWith:self package).
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6178
    ^ newStuffHasBeenLoaded
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6179
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6180
    "Created: / 17-08-2006 / 01:01:41 / cg"
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6181
    "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
  6182
    "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
  6183
    "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
  6184
    "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
  6185
!
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6186
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6187
unloadPackage
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6188
    "unload the project.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6189
     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
  6190
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6191
    self projectIsLoaded ifFalse:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6192
    thisContext isRecursive ifTrue:[^ false].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6193
20952
7c5123a5f7a8 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 20778
diff changeset
  6194
    Smalltalk silentLoading ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6195
	"/ thisContext fullPrintAll.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6196
	Logger info:'unloading %1' with:self name.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6197
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6198
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6199
    self activityNotification:'Executing pre-unload action'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6200
    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
  6201
    self executeHooks: #preUnload.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6202
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6203
    self activityNotification:'Restoring original methods'.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6204
    self restoreOverwrittenExtensionMethods.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6205
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6206
    Class withoutUpdatingChangesDo:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6207
	self activityNotification:'Unloading subprojects'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6208
	self unloadSubProjects.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6209
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6210
	self activityNotification:'Unloading classes'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6211
	self unloadClassLibrary.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6212
	self unloadAllClasses.
12364
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6213
    ].
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6214
    self projectIsLoaded:false.
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6215
    ^ 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
  6216
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  6217
    "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
  6218
! !
f39b6791e557 category of:26 methods
Claus Gittinger <cg@exept.de>
parents: 12360
diff changeset
  6219
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6220
!ProjectDefinition class methodsFor:'misc ui support'!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6221
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6222
iconInBrowserSymbol
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6223
    "the browser will use this as index into the toolbariconlibrary"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6224
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6225
    <resource: #programImage>
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6226
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6227
    self theNonMetaclass isApplicationDefinition ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6228
        self theNonMetaclass isGUIApplication ifTrue:[
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6229
            ^ #guiApplicationDefinitionClassIcon
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6230
        ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6231
        ^ #applicationDefinitionClassIcon
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6232
    ].
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6233
    ^ super iconInBrowserSymbol
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  6234
! !
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  6235
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6236
!ProjectDefinition class methodsFor:'private'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6237
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6238
abbrevs
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6239
    "return a dictionary containing my abbreviations;
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6240
     this dictionary is read from my project-directory's abbrev.stc file,
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6241
     and cached for future use"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6242
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6243
    |abbrevs|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6244
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  6245
    AccessLock critical:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6246
	|mustRead file myPackageDirectory|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6247
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6248
	AbbrevDictionary isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6249
	    AbbrevDictionary := WeakIdentityDictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6250
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6251
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6252
	mustRead := false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6253
	abbrevs := AbbrevDictionary at:self ifAbsent:[ mustRead := true. Dictionary new ].
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
	mustRead ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6256
	    myPackageDirectory := self packageDirectory.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6257
	    myPackageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6258
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6259
		file := myPackageDirectory / 'abbrev.stc'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6260
		file exists ifTrue: [
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6261
		    file readingFileDo:[:stream |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6262
			Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6263
			    withAbbreviationsFromStream:stream
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6264
			    do:[:nm :fn :pkg :cat :sz|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6265
				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
  6266
			    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6267
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6268
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6269
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6270
	].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6271
    ].
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  6272
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6273
    ^abbrevs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6274
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6275
    "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
  6276
    "Modified: / 20-01-2012 / 15:42:47 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6277
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6278
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6279
additionalClassAttributesFor: aClass
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6280
    "Answers additional set of class attributes for given class
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6281
     Individual project definitions may override this method, but
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6282
     overriding method should always merge its attributes with result
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6283
     of 'super additionalClassAttributesFor: aClass'.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6284
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6285
     Here, we add #autoload attributes to all test cases and
21102
eef23325dbb5 #OTHER by mawalch
mawalch
parents: 20986
diff changeset
  6286
     test resources, as they are not necessary for the package
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6287
     and should not be compiled (because of unwanted dependency
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6288
     on stx:goodies/sunit package)
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6289
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6290
     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
  6291
     test-package - by conventions such package should by named
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6292
     #'module:package/subpackage/tests'
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6293
    "
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6294
    ((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
  6295
	(TestCase notNil and:[aClass inheritsFrom: TestCase]) ifTrue:[^#(autoload)].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6296
	(TestResource notNil and:[aClass inheritsFrom: TestResource]) ifTrue:[^#(autoload)].
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  6297
    ].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6298
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6299
    "No additional attributes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6300
    ^#()
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6301
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6302
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6303
	stx_libbasic additionalClassAttributesFor: Object
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6304
	stx_libtool additionalClassAttributesFor: Tools::NavigationHistoryTests
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6305
	stx_goodies_sunit additionalClassAttributesFor: TestCase
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6306
	stx_goodies_petitparser_tests additionalClassAttributesFor: PPAbstractParseTest
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6307
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6308
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6309
	stx_libtool classNamesAndAttributes_code_ignoreOldEntries:true ignoreOldDefinition: true
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6310
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6311
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6312
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6313
    "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
  6314
    "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
  6315
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6316
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6317
checkIfClassesArePresent
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6318
    "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
  6319
     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
  6320
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  6321
    |check nonExistentClasses|
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  6322
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  6323
    nonExistentClasses := Set new.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6324
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6325
    check :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6326
	    [:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6327
		|cls fn wasLoaded failedToLoad numClassInstvars|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6328
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6329
		cls := Smalltalk classNamed:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6330
		cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6331
		    Transcript showCR:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6332
		    nonExistentClasses add:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6333
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6334
	    ].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6335
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6336
    self allClassNames do:check.
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6337
    self namesAndAttributesIn:(self additionalClassNamesAndAttributes) do:[:nm :attr |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6338
	(attr isEmptyOrNil or:[(attr includes:#autoload) not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6339
	    check value:nm
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6340
	].
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6341
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6342
18684
0c6724851d21 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18575
diff changeset
  6343
    nonExistentClasses notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6344
	Transcript showCR:('"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.' bindWith:nonExistentClasses).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6345
	UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6346
	    (Dialog confirm:(Dialog classResources
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6347
				stringWithCRs:'"%1" and possibly more classes are missing.\Cannot generate a correct "abbrev.stc" file.\\Continue anyway?'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6348
				with:nonExistentClasses anElement allBold)) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6349
		AbortOperationRequest raise.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6350
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6351
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6352
	^ false.
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6353
    ].
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6354
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6355
    ^ true
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  6356
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  6357
    "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
  6358
!
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6359
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6360
classNamesAndAttributesAsSpecArray
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6361
    "given a classNamesAndAttributes array, make this a spec array (array of arrays).
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6362
     This decompresses class-name entries into a one-element array for easier processing"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6363
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6364
    ^ self classNamesAndAttributes
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6365
	collect:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6366
	    entry isArray ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6367
		entry first isSymbol ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6368
		    entry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6369
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6370
		    (Array with:entry first asSymbol) , (entry copyFrom:2)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6371
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6372
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6373
		Array with:entry asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6374
	    ]].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6375
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6376
    "Created: / 19-02-2007 / 16:11:53 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6377
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6378
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6379
classNamesAndAttributesDo: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6380
    self namesAndAttributesIn:(self classNamesAndAttributes) do: aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6381
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6382
    "Modified: / 22-08-2006 / 18:20:21 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6383
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6384
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6385
classNamesAndAttributesFromSpecArray:aSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6386
    "given a spec array (array of arrays), make this a classNamesAndAttributes array
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6387
     as stored literally in the method.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6388
     This compresses single element array-elements into plain names
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6389
     (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
  6390
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6391
    |newSpec loadedClasses loadedClassNames itemsForUnloadedClasses
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6392
     entriesByName|
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6393
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6394
    entriesByName := Dictionary new.
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6395
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6396
    newSpec :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6397
	aSpecArray
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6398
	    collect:[:entry |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6399
		|nm newEntry|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6400
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6401
		(entry isArray and:[entry size == 1]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6402
		    nm := newEntry := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6403
		    entriesByName at:nm put:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6404
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6405
		    newEntry := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6406
		    (entry isArray and:[entry size > 1]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6407
			nm := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6408
			entriesByName at:nm put:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6409
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6410
			nm := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6411
			entriesByName at:nm put:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6412
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6413
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6414
		newEntry
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6415
	    ].
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6416
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6417
    "/ extract loaded and unloaded classes.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6418
    loadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6419
    itemsForUnloadedClasses := OrderedCollection new.
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6420
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6421
    newSpec do:[:entry |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6422
	|clsName clsOrNil|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6423
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6424
	(entry isArray and:[entry includes:#autoload]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6425
	    itemsForUnloadedClasses add:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6426
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6427
	    clsName := entry isArray ifTrue:[ entry first ] ifFalse:[ entry ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6428
	    clsOrNil := Smalltalk classNamed:clsName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6429
	    (clsOrNil notNil and:[clsOrNil isLoaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6430
		loadedClasses add:clsOrNil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6431
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6432
		itemsForUnloadedClasses add:entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6433
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6434
	]
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6435
    ].
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  6436
    "/ and sort by load order
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6437
    loadedClassNames := (Class classesSortedByLoadOrder:loadedClasses) collect:[:cls | cls name].
16619
7a48afba2f52 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16602
diff changeset
  6438
    newSpec := loadedClassNames collect:[:nm | entriesByName at:nm ifAbsent:[ { nm . #autoload }]].
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6439
16024
019db3123c71 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15950
diff changeset
  6440
    "/ reconstruct contents array, unloaded classes last.
16572
044aad2e50b7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16571
diff changeset
  6441
    ^ newSpec asArray , itemsForUnloadedClasses asArray.
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6442
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  6443
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6444
compile:someCode categorized:category
15006
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6445
    ^ self compile:someCode categorized:category using:nil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6446
!
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6447
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6448
compile:someCode categorized:category using:compilerOrNil
4ddc728c6817 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15005
diff changeset
  6449
    ^ Class packageQuerySignal
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6450
	answer:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6451
	do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6452
	    (compilerOrNil ? self theMetaclass compilerClass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6453
		compile:someCode
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6454
		forClass:self theMetaclass
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6455
		inCategory:category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6456
	]
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6457
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6458
    "Created: / 23-08-2006 / 14:36:53 / cg"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6459
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6460
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6461
compiled_classes
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6462
    ^ self compiled_classNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6463
	collect:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6464
	    [:eachName|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6465
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6466
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6467
		cls := (Smalltalk at:eachName asSymbol).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6468
		(cls isNil or:[cls isBehavior not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6469
		    Transcript showCR:('ProjectDefinition: missing/invalid class: ', eachName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6470
		    cls := nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6471
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6472
		cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6473
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6474
	thenSelect:[:cls | cls notNil]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6475
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6476
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6477
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6478
    "Modified: / 07-12-2006 / 17:48:11 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6479
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6480
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6481
compiled_classesDo:aBlock
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6482
    self compiled_classes do:aBlock.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6483
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6484
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6485
    "Modified: / 09-08-2006 / 18:02:28 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6486
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6487
15124
a237ba167fda class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15098
diff changeset
  6488
compiled_classesForPlatform:arch
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6489
    ^ (self compiled_classNamesForPlatform:arch)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6490
	collect:[:eachName | (Smalltalk classNamed:eachName)]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6491
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6492
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6493
     stx_libbasic compiled_classesForArchitecture:#win32
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6494
     stx_libbasic compiled_classesForArchitecture:#macos
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6495
     stx_libbasic compiled_classesForArchitecture:#unix
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6496
    "
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6497
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6498
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6499
    "Modified: / 09-08-2006 / 18:02:28 / fm"
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6500
    "Modified: / 07-12-2006 / 17:43:17 / cg"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6501
!
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6502
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6503
compiled_classes_common
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6504
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6505
	compiled_classNames_common
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6506
	    collect:[:eachName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6507
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6508
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6509
		cls := Smalltalk classNamed:eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6510
		cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6511
		    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
  6512
		    UserPreferences current suppressProjectDefinitionWarnings ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6513
			self warn:('Missing/invalid class: %1\\%2'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6514
				    bindWith:eachName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6515
				    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
  6516
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6517
		    cls := nil.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6518
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6519
		cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6520
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6521
	    thenSelect:[:cls| cls notNil "isBehavior"]
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6522
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6523
    "Created: / 09-08-2006 / 16:28:15 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6524
    "Modified: / 09-08-2006 / 18:02:28 / fm"
15916
213952ac3865 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15905
diff changeset
  6525
    "Modified: / 28-01-2014 / 21:45:08 / cg"
9607
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6526
!
3cae5cf71c03 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9601
diff changeset
  6527
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6528
cvsRevision
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6529
    |rev|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6530
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6531
    rev := self revision.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6532
    rev isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6533
	"not yet pubplished"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6534
	^ #( '0' '1' )
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6535
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6536
    ^ rev asCollectionOfSubstringsSeparatedBy:$. .
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6537
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6538
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6539
     self cvsRevision
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6540
     stx_libbasic3 cvsRevision
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6541
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6542
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6543
    "Created: / 17-08-2006 / 20:19:03 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6544
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6545
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6546
defaultClassAttributesFor: aClass
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6547
    "Answers default set of class attributes for given class.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6548
     This is internal method only, to per-project customization
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6549
     please override either #additionalClassAttributes or
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6550
     #additional classAttributesFor:"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6551
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6552
    | attrs |
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6553
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6554
    "JV @ 2010-06-19
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6555
     Add a programming language attribute for non-smalltalk classes.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6556
     Used by multi-lang enabled loading mechanism"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6557
    attrs := aClass programmingLanguage isSmalltalk
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6558
		ifTrue:[#()]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6559
		ifFalse:[Array with: (Array with: #lang with: aClass programmingLanguage name asSymbol)].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6560
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6561
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6562
    "JV @ 2009-10-26
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6563
     Give a project definition to specify additional attributes for given class."
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6564
    attrs := attrs , (self additionalClassAttributesFor: aClass).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6565
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6566
    ^attrs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6567
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6568
    "Created: / 19-06-2010 / 10:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6569
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6570
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6571
inconsistency:message
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6572
    Dialog warn:message
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6573
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6574
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6575
    self searchForNeverCompiledSuperclasses
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6576
    DapasX_Datenbasis searchForNeverCompiledSuperclasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6577
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6578
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6579
    "Created: / 09-08-2006 / 16:32:31 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6580
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6581
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6582
makeOSIncludesWith:fileSeparator from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6583
    ^ aString copy replaceAny:'/\' with:fileSeparator
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6584
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6585
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6586
     self makeOSIncludesWith:$/ from:'-I$(TOP)/foo/bar'
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6587
     self makeOSIncludesWith:$\ from:'-I$(TOP)/foo/bar'
9826
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6588
    "
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6589
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6590
    "Created: / 06-09-2006 / 18:17:03 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6591
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6592
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6593
makeUnixIncludes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6594
    ^ self makeOSIncludesWith:$/ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6595
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6596
    "Created: / 06-09-2006 / 18:16:19 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6597
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6598
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6599
makeWin32Includes:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6600
    ^ self makeOSIncludesWith:$\ from:aString
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6601
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6602
    "Created: / 06-09-2006 / 18:16:13 / cg"
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6603
!
8d5fe8462720 common localIncludes for all oses
Claus Gittinger <cg@exept.de>
parents: 9825
diff changeset
  6604
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6605
mergeClassAttributes: attr1 with: attr2
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6606
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6607
    ^attr1 , (attr2 reject:[:each|attr1 includes: each])
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6608
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6609
    "Created: / 19-06-2010 / 10:50:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6610
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6611
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6612
mergeDefaultClassAttributesFor: aClass with: attributes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6613
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6614
    ^self mergeClassAttributes: attributes with: (self defaultClassAttributesFor: aClass)
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6615
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6616
    "Created: / 19-06-2010 / 10:51:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6617
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6618
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6619
namesAndAttributesIn:aCollection do: aBlock
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6620
    aCollection isNil ifTrue:[^ self].
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  6621
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6622
    aCollection do:[:entry |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6623
	|className attributes|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6624
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6625
	entry isArray ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6626
	    className := entry.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6627
	    attributes := #().
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6628
	] ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6629
	    className := entry first.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6630
	    attributes := entry copyFrom:2.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6631
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6632
	aBlock value: className value: attributes
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6633
     ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6634
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6635
    "Created: / 22-08-2006 / 18:20:09 / cg"
9621
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6636
!
1d07872787b0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9618
diff changeset
  6637
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6638
searchForClasses
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6639
    "answer all non-private classes that belong to this project.
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6640
     They are sorted in load order"
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  6641
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6642
    ^ Class classesSortedByLoadOrder:(self searchForClassesWithProject: self package)
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6643
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6644
    "
10010
69b2dbff964b *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10007
diff changeset
  6645
     stx_libbasic3 searchForClasses
11868
59e160ca3419 First support for cleanup of class filenames
Stefan Vogel <sv@exept.de>
parents: 11829
diff changeset
  6646
     stx_goodies_webServer_htmlTree searchForClasses
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6647
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6648
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6649
    "Modified: / 07-08-2006 / 21:56:25 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6650
    "Created: / 17-08-2006 / 21:18:30 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6651
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6652
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6653
searchForClassesWithProject: aProjectID
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6654
    "answer all public and private classes belonging to aProjectID"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6655
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6656
    ^ Smalltalk allClasses
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6657
	select:[:cls | cls package = aProjectID].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6658
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6659
"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  6660
    self searchForClassesWithProject: #'exept:ctypes'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6661
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6662
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6663
    "Created: / 07-08-2006 / 20:42:39 / fm"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6664
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6665
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6666
searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6667
    ^ self searchForExtensionsWithProject:self package
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6668
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6669
"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6670
    self searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6671
    DapasXProject searchForExtensions
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6672
    DapasX_Datenbasis searchForExtensions
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6673
    stx_libtool searchForExtensions
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6674
"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6675
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6676
    "Modified: / 09-08-2006 / 13:01:26 / fm"
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6677
    "Created: / 17-08-2006 / 21:17:46 / cg"
10106
c26879b72dfe extensionlist generator was buggy
Claus Gittinger <cg@exept.de>
parents: 10104
diff changeset
  6678
    "Modified: / 23-10-2006 / 11:03:07 / cg"
9575
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6679
!
353ef8cc798f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9569
diff changeset
  6680
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6681
searchForExtensionsWithProject:aProjectID
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6682
    "search for any class which has extensions from aProjectID.
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6683
     Return the extension-methods sorted by classname-selector"
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6684
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6685
    |methods|
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6686
11152
92ef5422f17a code reuse
Claus Gittinger <cg@exept.de>
parents: 11149
diff changeset
  6687
    methods := Smalltalk allExtensionsForPackage:aProjectID.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6688
    methods
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6689
	sort:[:m1 :m2 |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6690
	    |c1 c2|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6691
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6692
	    c1 := m1 mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6693
	    c2 := m2 mclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6694
	    c1 == c2 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6695
		m1 selector < m2 selector
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6696
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6697
		(c2 isMeta and:[c1 isMeta not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6698
		    true
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6699
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6700
		    (c1 isMeta and:[c2 isMeta not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6701
			false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6702
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6703
			c1 name < c2 name
9908
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6704
"/                        (c2 isSubclassOf:c1) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6705
"/                            true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6706
"/                        ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6707
"/                            (c1 isSubclassOf:c2) ifTrue:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6708
"/                                false
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6709
"/                            ] ifFalse:[
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6710
"/                                "/ leave as is
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6711
"/                                true
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6712
"/                            ].
eede5b535b1e extensions sorted by name (to avoid confusing cvs-diff)
Claus Gittinger <cg@exept.de>
parents: 9906
diff changeset
  6713
"/                        ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6714
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6715
		].
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
	].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6718
    ^ methods
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6719
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6720
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6721
     self searchForExtensionsWithProject:#'bosch:dapasx'
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6722
     self searchForExtensionsWithProject:#'cg:oyster'
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6723
     self searchForExtensionsWithProject:#'stx:libboss'
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6724
    "
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6725
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6726
    "Created: / 17-08-2006 / 21:19:04 / cg"
10086
024ea420d1a6 extension method stuff refactored
Claus Gittinger <cg@exept.de>
parents: 10080
diff changeset
  6727
    "Modified: / 12-10-2006 / 20:45:39 / cg"
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6728
!
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6729
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6730
searchForProjectsWhichProvideHeaderFiles
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6731
    |addPackage myPackageID requiredPackages|
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6732
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6733
    myPackageID := self package.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6734
    requiredPackages := Set new.
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6735
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6736
    addPackage :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6737
	[:package |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6738
	    (package ~= myPackageID) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6739
		true "(package startsWith:'stx:') not" ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6740
		    package ~= PackageId noProjectID ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6741
			requiredPackages add:package.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6742
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6743
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6744
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6745
	].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6746
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6747
    "/ need them also...
14886
7498476f1ae6 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14885
diff changeset
  6748
    self mandatoryPreRequisites do:[:eachPreRequisitePackage |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6749
	addPackage value:eachPreRequisitePackage
12555
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6750
    ].
9924562388ed changed: #searchForProjectsWhichProvideHeaderFiles
Claus Gittinger <cg@exept.de>
parents: 12554
diff changeset
  6751
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6752
    "/ cg: also need include lines for all referenced packages,
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6753
    "/ because otherwise, a reference to a symbol in a namespace
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6754
    "/ is not resolved correctly by stc (which would not know, if the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6755
    "/ symbol is in Smalltalk or the NameSpace.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6756
    "/ This happens eg. when referring to a class Foo in namespace N
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6757
    "/ 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
  6758
    "/ It is then only in the referencedPreRequisites's, not the mandatory prereqs.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6759
    "/ actually, the question is, if then the package should not be listed in the
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6760
    "/ mandatoryPrereqs right away. Discuss this with sv.
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6761
    self referencedPreRequisites do:[:eachPreRequisitePackage |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6762
	addPackage value:eachPreRequisitePackage
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6763
    ].
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6764
10788
f2ff69add7e1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10785
diff changeset
  6765
    self compiled_classesDo:[:cls |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6766
	cls allSuperclassesDo:[:eachSuperClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6767
	    addPackage value:(eachSuperClass package)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6768
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6769
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6770
	cls allPrivateClassesDo:[:eachPrivateClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6771
	    eachPrivateClass allSuperclassesDo:[:eachSuperClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6772
		eachSuperClass isPrivate ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6773
		    addPackage value:(eachSuperClass package)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6774
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6775
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6776
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6777
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6778
	cls sharedPoolNames do:[:eachPoolName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6779
	    |eachPoolClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6780
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6781
	    eachPoolClass := Smalltalk classNamed:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6782
	    eachPoolClass isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6783
		Transcript showCR:('Warning: missing pool: %1 (required by %2)' bindWith:eachPoolName with:cls name)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6784
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6785
		eachPoolClass withAllSuperclassesDo:[:eachPoolSuperClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6786
		    addPackage value:(eachPoolSuperClass package)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6787
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6788
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6789
	].
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6790
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6791
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6792
    self extensionMethodNames pairWiseDo:[:className :selector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6793
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6794
	((cls := Smalltalk classNamed:className) notNil and:[cls isLoaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6795
	    cls withAllSuperclassesDo:[:eachSuperClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6796
		addPackage value:(eachSuperClass package)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6797
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6798
	]
9883
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6799
    ].
c641767d1483 include and dependency generation fixed
Claus Gittinger <cg@exept.de>
parents: 9880
diff changeset
  6800
    ^ requiredPackages
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6801
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6802
    "
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6803
     stx_libtool searchForProjectsWhichProvideHeaderFiles
14939
9e38d1deb712 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14930
diff changeset
  6804
     cg_demos_helloWorld searchForProjectsWhichProvideHeaderFiles
16554
3f91905247d3 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16541
diff changeset
  6805
     cg_tools_emulators_freecell searchForProjectsWhichProvideHeaderFiles
9880
378bf1f5afa1 local headers
Claus Gittinger <cg@exept.de>
parents: 9852
diff changeset
  6806
    "
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  6807
10251
653b5d0a7713 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10232
diff changeset
  6808
    "Created: / 07-12-2006 / 17:46:38 / cg"
13216
ef64e67606c5 changed:
Claus Gittinger <cg@exept.de>
parents: 13194
diff changeset
  6809
    "Modified: / 18-01-2011 / 17:58:33 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6810
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6811
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6812
searchForSiblingProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6813
    "answer all the packages (package names) having the my parent package"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6814
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6815
    |myPackage myParentPackage|
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6816
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6817
    myPackage := self package asPackageId.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6818
    myParentPackage := myPackage parentPackage.
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6819
    myParentPackage isNil ifTrue:[^ #() ].
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6820
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6821
    ^ Smalltalk allPackageIDs
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6822
	select:[:projectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6823
	    |thisPackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6824
	    thisPackage := projectID asPackageId.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6825
	    (thisPackage parentPackage = myParentPackage)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6826
	    and:[ thisPackage ~= myPackage ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6827
	]
9667
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6828
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6829
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6830
     self searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6831
     bosch_dapasx_Application searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6832
     stx_goodies_refactoryBrowser_changes searchForSiblingProjects
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6833
    "
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6834
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6835
    "Modified: / 07-08-2006 / 21:56:25 / fm"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6836
    "Created: / 23-08-2006 / 15:06:12 / cg"
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6837
!
90b25ca6d10e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9664
diff changeset
  6838
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6839
searchForSubProjects
10132
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6840
    "answer all packages (package names), that are my subProjects"
e2afb1e0363a Add some documentation
Stefan Vogel <sv@exept.de>
parents: 10129
diff changeset
  6841
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6842
    |myPackage|
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6843
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6844
    myPackage := self package.
19476
a4c6bb123422 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 19309
diff changeset
  6845
    ^ Smalltalk allPackageIDs
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6846
	select:[:projectID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6847
	    projectID ~= PackageId noProjectID
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6848
	    and:[ (projectID asPackageId parentPackage) = myPackage ]].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6849
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6850
    "
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6851
     self searchForSubProjects
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6852
     bosch_dapasx_Application searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6853
     stx_goodies_refactoryBrowser_changes searchForSubProjects
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6854
    "
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6855
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6856
    "Created: / 07-08-2006 / 20:42:39 / fm"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6857
    "Modified: / 07-08-2006 / 21:56:25 / fm"
10215
2d5aaeab5718 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10212
diff changeset
  6858
    "Modified: / 05-12-2006 / 18:04:27 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6859
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6860
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6861
setupForType:typeOrNil
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6862
    typeOrNil = GUIApplicationType ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6863
	self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6864
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6865
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6866
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6867
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6868
    ^ true
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6869
'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6870
	     categorized:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6871
	self setSuperclass: ApplicationDefinition.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6872
	^ self
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6873
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6874
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  6875
    typeOrNil = NonGUIApplicationType ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6876
	self compile:
12425
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6877
'isGUIApplication
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6878
    "return true, if this is a GUI application.
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6879
     (these need more libraries and use a different startup procedure)"
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6880
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6881
    ^ false
a4062def8125 changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12421
diff changeset
  6882
'
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6883
	     categorized:'description'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6884
	self setSuperclass: ApplicationDefinition.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6885
	^ self
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6886
    ].
12856
1651184275a2 comment/format in: #setupForType:
Claus Gittinger <cg@exept.de>
parents: 12804
diff changeset
  6887
12349
6493b6124da3 changed:
fm
parents: 12339
diff changeset
  6888
    self theMetaclass removeSelector: #isGUIApplication.
15070
697f39951cc4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15069
diff changeset
  6889
    self setSuperclass: LibraryDefinition.
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6890
    ^ self.
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6891
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  6892
    "Created: / 23-08-2006 / 14:26:10 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6893
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6894
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6895
shouldExcludeTest: test
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  6896
    ^ self excludedFromTestSuite contains:[:spec|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6897
	    (spec isSymbol and:[test class name == spec])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6898
	    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
  6899
	].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6900
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  6901
    "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
  6902
!
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6903
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6904
verbose:aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6905
    "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
  6906
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6907
    Verbose := aBoolean
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6908
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6909
    "
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6910
     self verbose:true
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6911
     self verbose:false
31a64a7d03fd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18224
diff changeset
  6912
    "
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6913
! !
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  6914
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6915
!ProjectDefinition class methodsFor:'private-extension handling'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6916
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6917
extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6918
    ^ extensionOverwriteInfo
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6919
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6920
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6921
fetchSlotsFrom:myFirstIncarnation
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6922
    "this is invoked in a just loaded instance of myself,
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6923
     to fetch the safe and extensionInfo from my first incarnation"
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6924
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6925
    safeForOverwrittenMethods := myFirstIncarnation safeForOverwrittenMethods.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6926
    extensionOverwriteInfo := myFirstIncarnation extensionOverwriteInfo.
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6927
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  6928
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6929
hasSavedOverwrittenMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6930
    "true, if any of my methods was overwritten by another loaded package.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6931
     These methods are now in my safe"
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6932
12208
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6933
    ^ safeForOverwrittenMethods notEmptyOrNil
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6934
!
0b65ddcb68f2 added: #hasSafedOverwrittenMethods
Michael Beyl <mb@exept.de>
parents: 12202
diff changeset
  6935
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6936
methodOverwrittenBy:anExtensionMethod
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6937
    "return the (hidden) original method, which was located in another package
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6938
     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
  6939
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6940
    |mclass selector oldPackage|
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6941
12218
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6942
    extensionOverwriteInfo isNil ifTrue:[^ nil].
a3662ecd1438 changed: #methodOverwrittenBy:
Claus Gittinger <cg@exept.de>
parents: 12213
diff changeset
  6943
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6944
    mclass := anExtensionMethod mclass.
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  6945
    selector := anExtensionMethod selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6946
    oldPackage := extensionOverwriteInfo at:(mclass name,'>>',selector) ifAbsent:nil.
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6947
    oldPackage isNil ifTrue:[^ nil].
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6948
    ^ oldPackage asPackageId projectDefinitionClass
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6949
	savedOverwrittenMethodForClass:mclass selector:selector.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6950
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  6951
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6952
rememberOverwrittenExtensionMethods
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6953
    "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
  6954
     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
  6955
     This allows for two things:
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6956
        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
  6957
        b) correct unloading of myself"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6958
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6959
    self extensionMethodNames pairWiseDo:[:className :selector |
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6960
        |class oldMethod oldPackage defClass|
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6961
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6962
        class := Smalltalk classNamed:className.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6963
        class notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6964
            oldMethod := class compiledMethodAt:selector.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6965
        ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6966
        oldMethod notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6967
            oldPackage := oldMethod package.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6968
            oldPackage ~= PackageId noProjectID ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6969
                defClass := oldPackage asPackageId projectDefinitionClass.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6970
                defClass notNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6971
                    defClass rememberOverwrittenMethod:oldMethod inClass:class.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6972
                    extensionOverwriteInfo isNil ifTrue:[
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6973
                        extensionOverwriteInfo := Dictionary new.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6974
                    ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6975
                    extensionOverwriteInfo at:(className,'>>',selector) put:oldPackage.
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6976
                ]
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6977
            ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6978
        ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6979
    ].
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6980
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  6981
    "Modified (comment): / 07-03-2019 / 18:02:46 / Stefan Vogel"
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6982
!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6983
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6984
rememberOverwrittenMethod:oldMethod inClass:aClass
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6985
    "invoked from another projectDefinition, when that package is about to be loaded
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6986
     and about to overwrite one of my methods.
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  6987
     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
  6988
     to correctly reestablish my methods when the other package is unloaded later."
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6989
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6990
    |thisIsOneOfMyMethods selector|
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6991
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6992
    selector := oldMethod selector.
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6993
12293
983b9555f6e8 changed: #rememberOverwrittenMethod:inClass:
Claus Gittinger <cg@exept.de>
parents: 12286
diff changeset
  6994
    thisIsOneOfMyMethods := (self classNames includes:aClass theNonMetaclass name)
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6995
			    or:[ aClass isPrivate and:[ self classNames includes: aClass topOwningClass theNonMetaclass name ]].
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  6996
    thisIsOneOfMyMethods ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6997
	self extensionMethodNames pairWiseDo:[:extClassName :extSelector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6998
	    extClassName = aClass name ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  6999
		selector = extSelector ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7000
		    thisIsOneOfMyMethods := true
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7001
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7002
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7003
	]
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7004
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7005
    thisIsOneOfMyMethods ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7006
	"/ 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
  7007
	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
  7008
	^ self
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7009
    ].
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7010
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7011
    safeForOverwrittenMethods isNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7012
	safeForOverwrittenMethods := Dictionary new.
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7013
    ].
14984
082fe75214ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14982
diff changeset
  7014
    safeForOverwrittenMethods at:(aClass name,'>>',selector) put:oldMethod.
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  7015
!
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  7016
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7017
restoreOverwrittenExtensionMethods
23851
5ff57df8afe9 #DOCUMENTATION by stefan
Stefan Vogel <sv@exept.de>
parents: 23850
diff changeset
  7018
    <resource: #todo>
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  7019
    "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
  7020
     which got overloaded by me.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7021
     Unfinished!!"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7022
16786
c512597b9323 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16682
diff changeset
  7023
    extensionOverwriteInfo notEmptyOrNil ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7024
	self extensionMethodNames pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7025
	    |class oldMethod oldPackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7026
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7027
	    oldPackage := extensionOverwriteInfo at:(className,'>>',selector).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7028
	    oldPackage notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7029
		class := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7030
		class notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7031
		    oldMethod := oldPackage savedOverwrittenMethodForClass:class selector:selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7032
		    oldMethod notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7033
			self breakPoint:#cg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7034
		    ].
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
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7037
	].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7038
    ].
21764
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  7039
5708b39547db #DOCUMENTATION by mawalch
mawalch
parents: 21753
diff changeset
  7040
    "Modified (comment): / 18-05-2017 / 14:49:39 / mawalch"
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7041
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7042
15057
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  7043
safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  7044
    ^ safeForOverwrittenMethods
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  7045
!
3e959aee9cd4 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15052
diff changeset
  7046
12213
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  7047
savedOverwrittenMethodForClass:aClass selector:aSelector
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  7048
    "return one of my saved original methods"
73371949b807 overwrittenExtensionMethods handling
Claus Gittinger <cg@exept.de>
parents: 12210
diff changeset
  7049
13692
2dffef08a4ac changed: #savedOverwrittenMethodForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 13689
diff changeset
  7050
    safeForOverwrittenMethods isNil ifTrue:[^ nil].
12274
a8ef1edeca71 changed:
Claus Gittinger <cg@exept.de>
parents: 12271
diff changeset
  7051
    ^ safeForOverwrittenMethods at:(aClass name,'>>',aSelector) ifAbsent:nil
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7052
!
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7053
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7054
savedOverwrittenMethods
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7055
    "return my saved original methods"
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7056
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  7057
    ^ safeForOverwrittenMethods ? #()
12210
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7058
! !
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7059
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7060
!ProjectDefinition class methodsFor:'private-loading'!
48e154dad1a5 documentation;
Claus Gittinger <cg@exept.de>
parents: 12208
diff changeset
  7061
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  7062
checkPrerequisitesForLoading
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  7063
    "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
  7064
     Raise an error if not"
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  7065
12264
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  7066
    |classesAlreadyWarned|
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  7067
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  7068
    classesAlreadyWarned := Set new.
67d427702122 changed:
Claus Gittinger <cg@exept.de>
parents: 12263
diff changeset
  7069
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7070
    self extensionMethodNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7071
	pairWiseDo:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7072
	    |class errMsg|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7073
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7074
	    class := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7075
	    class isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7076
		(classesAlreadyWarned includes:className) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7077
		    (self classNames includes:className) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7078
			errMsg := 'extension for a class in myself: ',className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7079
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7080
			errMsg := 'missing class for extension: ',className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7081
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7082
		    Logger error:errMsg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7083
		    self proceedableError:errMsg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7084
		    classesAlreadyWarned add:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7085
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7086
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7087
	]
12263
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  7088
c6d50824fbba comment/format in: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12262
diff changeset
  7089
    "/ todo: more needed here...
12731
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  7090
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  7091
    "
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  7092
     stx_libjavascript checkPrerequisitesForLoading
ffec4d9573bc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12705
diff changeset
  7093
    "
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  7094
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  7095
    "Modified: / 24-05-2018 / 21:04:56 / Claus Gittinger"
12262
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  7096
!
24861bbf25fc added: #checkPrerequisitesForLoading
Claus Gittinger <cg@exept.de>
parents: 12251
diff changeset
  7097
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  7098
executeHooks: hookSymbol
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7099
    "Execute all hooks annotated by the given hook-symbol.
15760
5c670f6b5d7f class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15603
diff changeset
  7100
     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
  7101
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7102
    | cls |
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7103
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7104
    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
  7105
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7106
    [ cls notNil ] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7107
	cls class selectorsAndMethodsDo:[:selector :method|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7108
	    (method annotationAt: hookSymbol) notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7109
		method numArgs == 0 ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7110
		    self perform: selector
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7111
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7112
		    self proceedableError:'Hook for %1 may not have arguments'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7113
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7114
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7115
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7116
	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
  7117
    ].
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7118
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7119
    "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
  7120
    "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
  7121
    "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
  7122
!
1511cfd924cd Merged ProjectDefinition fixes & tweaks required for stx:libjava and mercurial support.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14851
diff changeset
  7123
13614
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7124
loadAllAutoloadedClasses
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7125
    self allClasses do:[:cls | cls autoload]
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7126
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7127
    "Created: / 21-08-2011 / 17:24:13 / cg"
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7128
!
5606bfa8cbec added: #loadAllAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13610
diff changeset
  7129
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7130
loadAllClassesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7131
    "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
  7132
     install as autoloaded classes marked to be autoloaded.
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  7133
     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
  7134
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  7135
     Answer true, if classes have been loaded"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  7136
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7137
    ^self loadAllClassesAsAutoloaded:asAutoloaded languages: ProgrammingLanguage all
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7138
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7139
    "Created: / 17-08-2006 / 01:01:14 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7140
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7141
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7142
    "Modified: / 19-06-2010 / 11:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7143
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7144
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7145
loadAllClassesAsAutoloaded:asAutoloaded languages: langs
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7146
    "load (fileIn) classes in given languages that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7147
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7148
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7149
     langs should be collection of ProgrammingLanguage available in the system.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7150
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7151
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7152
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7153
    |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
  7154
     classesWhichFailedToLoad|
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7155
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7156
    platformName := OperatingSystem platformName.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7157
    classNamesToLoad := OrderedCollection new.
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7158
    classNamesToAutoload := OrderedCollection new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7159
    classNamesToLangs := Dictionary new.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7160
12315
71599fb91dcf comment/format in: #packageDirectory
Claus Gittinger <cg@exept.de>
parents: 12314
diff changeset
  7161
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7162
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7163
	|eachClassnameSym isAutoload clsLangAttr clsLang cls |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7164
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7165
	eachClassnameSym := eachClassname asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7166
	isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7167
	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
  7168
	clsLang := clsLangAttr
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7169
		    ifNil:[SmalltalkLanguage instance]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7170
		    ifNotNil:[ProgrammingLanguage named: clsLangAttr second ifNone:[nil]].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7171
	classNamesToLangs at: eachClassname put: clsLang.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7172
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7173
	"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
  7174
	cls := Smalltalk loadedClassNamed:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7175
	((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
  7176
	    (eachAttributes isEmpty
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7177
	     or:[(eachAttributes size == 1 and:[isAutoload])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7178
	     or:[(eachAttributes includes:platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7179
	     or:[eachAttributes contains:[:a| a isArray]]]]) "/FIXME: Hack."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7180
		ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7181
		    hasClassesToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7182
		    isAutoload ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7183
			classNamesToAutoload add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7184
		    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7185
			classNamesToLoad add:eachClassnameSym.
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
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7188
	].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7189
    ].
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7190
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7191
    hasClassesToLoad ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7192
	loadedClasses := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7193
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7194
	self packageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7195
	    classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7196
		"required classes are missing.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7197
		 Autoloaded classes are considered as optional..."
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7198
		self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7199
		    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
  7200
		    mayProceed:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7201
		^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7202
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7203
	    (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
  7204
	    ^ true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7205
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7206
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7207
	"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
  7208
	 of class name to file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7209
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7210
	Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7211
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7212
	"install autoloaded classes first,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7213
	 some others may depend on them"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7214
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7215
	classNamesToAutoload withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7216
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7217
		raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7218
		errorString: 'Autoloading class ', eachClassName.
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
	    self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName) .
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7221
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7222
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7223
	classesWhichFailedToLoad := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7224
	classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7225
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7226
		Transcript showCR:('  %1: filing in missing classes (%2) individually...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7227
				    bindWith:self name with:classNamesToLoad size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7228
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7229
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7230
	classNamesToLoad withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7231
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7232
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7233
		raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7234
		errorString: 'Loading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7235
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7236
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7237
		"maybe, fileIn failed, because the load order is wrong.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7238
		 Work around this by installing the class as autoloaded and
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7239
		 loading it"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7240
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7241
		classesWhichFailedToLoad add:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7242
		self loadClass: eachClassName asAutoloaded: true language: (classNamesToLangs at: eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7243
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7244
		Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7245
		    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
  7246
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7247
		cls := self loadClass: eachClassName asAutoloaded: false language: (classNamesToLangs at: eachClassName).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7248
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7249
		    loadedClasses add:cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7250
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7251
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7252
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7253
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7254
	classesWhichFailedToLoad do:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7255
	    (Smalltalk at:eachClassName) autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7256
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7257
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7258
	loadedClasses do:[:eachLoadedClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7259
	    "do not initialize, if initialize method is inherited"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7260
	    (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7261
		eachLoadedClass initialize
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7262
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7263
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7264
	^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7265
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  7266
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7267
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7268
    "Modified: / 26-10-2006 / 12:30:01 / cg"
12028
211dd98cec4e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11982
diff changeset
  7269
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7270
    "Created: / 19-06-2010 / 11:35:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7271
    "Modified: / 19-06-2010 / 15:06:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7272
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7273
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7274
loadClass: className asAutoloaded: asAutoloaded language: lang
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7275
    | packageDir classFile entry category numClassInstVars cls|
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7276
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  7277
    "Handle smalltalk classes specially to provide backward compatibility"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7278
    lang isSmalltalk ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7279
	entry := self abbrevs at: className ifAbsent:[nil].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7280
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7281
	asAutoloaded ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7282
	    category := entry isNil ifTrue:[#autoloaded] ifFalse:[entry category].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7283
	    numClassInstVars := entry isNil ifTrue:[0] ifFalse:[entry numClassInstVars].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7284
	    cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7285
		installAutoloadedClassNamed: className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7286
		category: category
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7287
		package: self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7288
		revision: nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7289
		numClassInstVars:numClassInstVars.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7290
	    entry notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7291
		cls setClassFilename:(entry fileName,'.st').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7292
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7293
	    ^ cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7294
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7295
	^ Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7296
	    fileInClass:className
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7297
	    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7298
	    initialize:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7299
	    lazy:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7300
	    silent:true
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7301
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7302
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7303
    "For non-smalltalk language do"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7304
    asAutoloaded ifTrue:[^self error:'Only Smalltalk classes may be autoloaded (yet)'].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7305
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7306
    packageDir := self packageDirectory asFilename.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7307
    classFile := packageDir / ((Smalltalk fileNameForClass: className) , '.' , lang sourceFileSuffix).
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7308
    classFile exists ifFalse:[^nil].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7309
    lang fileIn: classFile.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7310
    ^nil "FIXME: should return the class"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7311
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7312
    "Created: / 19-06-2010 / 09:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7313
    "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
  7314
    "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
  7315
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7316
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7317
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
  7318
    "try to load a binary class library
16146
1637eb12dc30 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16024
diff changeset
  7319
     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
  7320
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  7321
    |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
  7322
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7323
    self supportedOnPlatform ifFalse:[^ false].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7324
10430
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  7325
    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
  7326
fc34b59eca00 Don not try to load a class library already linked to the executable
Stefan Vogel <sv@exept.de>
parents: 10426
diff changeset
  7327
    (Smalltalk isClassLibraryLoaded:libraryName) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7328
	"already loaded"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7329
	^ true
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7330
    ].
14021
11d015697e44 changed:8 methods
Stefan Vogel <sv@exept.de>
parents: 13968
diff changeset
  7331
    Verbose ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7332
	Transcript showCR:('  %1: loading classLibrary...' bindWith:self name).
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7333
    ].
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7334
    self activityNotification:'Loading classLibrary'.
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7335
12295
fbd977f707de *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12294
diff changeset
  7336
    ^ 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
  7337
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7338
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7339
loadExtensions
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7340
    "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
  7341
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7342
    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
  7343
    self hasAllExtensionsLoaded ifFalse:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7344
	self breakPoint:#cg.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7345
	Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7346
	    Transcript showCR:('  %1: filing in extensions...' bindWith:self name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7347
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7348
	Smalltalk loadExtensionsForPackage:self package.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7349
	^ true.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7350
    ].
10401
6682d28d2ec5 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10399
diff changeset
  7351
    ^ false.
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7352
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7353
    "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
  7354
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7355
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7356
loadExtensionsForLanguage: lang
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7357
    "load extension methods for given programming language"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7358
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7359
    | filename file |
16894
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7360
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7361
    self supportedOnPlatform ifFalse:[^ self].
6224e26f4f2b class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16892
diff changeset
  7362
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7363
    filename := 'extensions.' , lang sourceFileSuffix.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7364
    file := self packageDirectory / filename.
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7365
    file exists ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7366
	lang fileIn: file.
15950
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7367
    ]
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7368
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7369
    "Created: / 17-08-2006 / 00:21:39 / cg"
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7370
    "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
  7371
!
190e31166cba merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 15916
diff changeset
  7372
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7373
loadMandatoryPreRequisitesAsAutoloaded:asAutoloaded
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7374
    "load those packages which are required for loading.
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7375
     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
  7376
     package is."
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7377
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7378
    |prereq|
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7379
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7380
    self supportedOnPlatform ifFalse:[^ self].
22186
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  7381
678e7ba2122f #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 22160
diff changeset
  7382
    prereq := self effectiveMandatoryPreRequisites.
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7383
    prereq notEmpty ifTrue:[
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7384
        Verbose ifTrue:[
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7385
            Transcript showCR:('  %1 loading mandatory prerequisites...' bindWith:self name).
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7386
        ].
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7387
        self loadPackages:prereq asAutoloaded:asAutoloaded
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7388
    ].
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7389
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  7390
    "Modified (format): / 07-02-2019 / 14:23:00 / Claus Gittinger"
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7391
!
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7392
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7393
loadPackages:aListOfPackages asAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7394
    "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
  7395
     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
  7396
14764
2497dc2ff1ab tuned prereq-package loading
Claus Gittinger <cg@exept.de>
parents: 14748
diff changeset
  7397
    Class withoutUpdatingChangesDo:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7398
	aListOfPackages do:[:eachPackageID |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7399
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7400
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7401
	    cls := self definitionClassForPackage:eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7402
	    (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
  7403
		Smalltalk loadPackage:eachPackageID asAutoloaded:asAutoloaded.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7404
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7405
	].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7406
    ].
13166
aa93e348e5d3 changed: #loadPackages:asAutoloaded:
Claus Gittinger <cg@exept.de>
parents: 13154
diff changeset
  7407
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  7408
    "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
  7409
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7410
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7411
loadPreRequisitesAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7412
    "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
  7413
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7414
    |prereq|
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7415
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7416
    prereq := self effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7417
    prereq notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7418
	Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7419
	    Transcript showCR:('  %1 loading prerequisites...' bindWith:self name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7420
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7421
	self loadPackages:prereq asAutoloaded:asAutoloaded
12743
c39a4553e1ed changed:5 methods
Claus Gittinger <cg@exept.de>
parents: 12742
diff changeset
  7422
    ].
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7423
!
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7424
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7425
loadSubProjects
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7426
    "load other packages (at least the projectDefinitions and their extensions)"
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7427
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7428
    self loadSubProjectsAsAutoloaded:false.
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7429
    self effectiveSubProjects do:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7430
	|subDef|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7431
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7432
	subDef := self definitionClassForPackage:p.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7433
	subDef notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7434
	    subDef loadSubProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7435
	].
12596
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7436
    ].
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7437
!
5ed54f811010 added: #loadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12575
diff changeset
  7438
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7439
loadSubProjectsAsAutoloaded:asAutoloaded
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7440
    "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
  7441
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7442
    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
  7443
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7444
    "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
  7445
!
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7446
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7447
old_loadAllClassesAsAutoloaded:asAutoloaded
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7448
    "load (fileIn) classes that should be present -
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7449
     install as autoloaded classes marked to be autoloaded.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7450
     If asAutoloaded == true, all classes will be installed as autoloaded, even if not marked.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7451
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7452
     Answer true, if classes have been loaded"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7453
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7454
    |classNamesToLoad classNamesToAutoload hasClassesToLoad loadedClasses platformName
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7455
     classesWhichFailedToLoad|
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7456
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7457
    platformName := OperatingSystem platformName.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7458
    classNamesToLoad := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7459
    classNamesToAutoload := OrderedCollection new.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7460
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7461
    hasClassesToLoad := false.
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  7462
    self classNamesAndAttributesDo:[:eachClassname :eachAttributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7463
	|eachClassnameSym isAutoload cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7464
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7465
	eachClassnameSym := eachClassname asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7466
	isAutoload := asAutoloaded or:[eachAttributes includes:#autoload].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7467
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7468
	"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
  7469
	cls := Smalltalk loadedClassNamed:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7470
	(cls isNil or:[cls isLoaded not and:[isAutoload not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7471
	    (eachAttributes isEmpty
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7472
	     or:[(eachAttributes size == 1 and:[isAutoload])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7473
	     or:[eachAttributes includes:platformName]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7474
		hasClassesToLoad := true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7475
		isAutoload ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7476
		    classNamesToAutoload add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7477
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7478
		    classNamesToLoad add:eachClassnameSym.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7479
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7480
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7481
	].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7482
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7483
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7484
    hasClassesToLoad ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7485
	loadedClasses := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7486
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7487
	self packageDirectory isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7488
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7489
		error:(self name,'[error] cannot install because packageDirectory is unknown')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7490
		mayProceed:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7491
	    ^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7492
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7493
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7494
	"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
  7495
	 of class name to file name"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7496
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7497
	Smalltalk recursiveReadAllAbbreviationsFrom:self packageDirectory maxLevels:1.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7498
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7499
	"install autoloaded classes first,
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7500
	 some others may depend on them"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7501
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7502
	classNamesToAutoload withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7503
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7504
		raiseRequestWith: ((100 / classNamesToAutoload size ) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7505
		errorString: 'Autoloading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7506
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7507
	    Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7508
		installAutoloadedClassNamed:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7509
		category:#autoloaded    "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7510
		package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7511
		revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7512
		numClassInstVars:0.     "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7513
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7514
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7515
	classesWhichFailedToLoad := OrderedCollection new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7516
	classNamesToLoad notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7517
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7518
		Transcript showCR:('  %1: filing in missing classes (%2) individually...'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7519
				    bindWith:self name with:classNamesToLoad size).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7520
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7521
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7522
	classNamesToLoad withIndexDo:[:eachClassName :index|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7523
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7524
	    ActivityNotification
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7525
		raiseRequestWith: ((100 / classNamesToLoad size) * index) rounded
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7526
		errorString: 'Loading class ', eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7527
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7528
	    Error handle:[:ex |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7529
		"maybe, fileIn failed, because the load order is wrong.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7530
		 Work around this by installing the class as autoloaded and
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7531
		 loading it"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7532
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7533
		classesWhichFailedToLoad add:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7534
		Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7535
		    installAutoloadedClassNamed:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7536
		    category:#autoloaded    "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7537
		    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7538
		    revision:nil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7539
		    numClassInstVars:0.     "FIXME"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7540
	    ] do:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7541
		Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7542
		    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
  7543
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7544
		cls := Smalltalk
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7545
			    fileInClass:eachClassName
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7546
			    package:self package
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7547
			    initialize:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7548
			    lazy:false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7549
			    silent:true.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7550
		cls notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7551
		    loadedClasses add:cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7552
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7553
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7554
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7555
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7556
	classesWhichFailedToLoad do:[:eachClassName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7557
	    (Smalltalk at:eachClassName) autoload.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7558
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7559
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7560
	loadedClasses do:[:eachLoadedClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7561
	    "do not initialize, if initialize method is inherited"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7562
	    (eachLoadedClass theMetaclass includesSelector:#initialize) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7563
		eachLoadedClass initialize
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7564
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7565
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7566
	^ true.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7567
    ].
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7568
    ^ false.
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7569
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7570
    "Modified: / 26-10-2006 / 12:30:01 / cg"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7571
    "Modified: / 16-08-2009 / 13:31:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7572
    "Created: / 19-06-2010 / 11:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7573
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  7574
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7575
unloadAllClasses
20605
0976069c6263 #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20604
diff changeset
  7576
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7577
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7578
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7579
unloadClassLibrary
20604
b648faace1ab #QUALITY by stefan
Stefan Vogel <sv@exept.de>
parents: 20601
diff changeset
  7580
    Logger warning:'unloading not yet fully supported'
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7581
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7582
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7583
unloadSubProjects
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7584
    "unload other packages"
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7585
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  7586
    self effectiveSubProjects do:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7587
	|subDef|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7588
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7589
	subDef := self definitionClassForPackage:p.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7590
	subDef notNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7591
	    subDef unloadSubProjects.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7592
	    subDef unloadPackage.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7593
	].
12624
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7594
    ].
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7595
!
Claus Gittinger <cg@exept.de>
parents: 12596
diff changeset
  7596
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7597
update:anAspectSymbol with:argument from:changedObject
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7598
    "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
  7599
     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
  7600
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7601
    (changedObject == self class and:[anAspectSymbol == #methodDictionary]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7602
	self projectIsLoaded:false.
10434
25f76184bf81 project definition change marks project as unloaded
Stefan Vogel <sv@exept.de>
parents: 10433
diff changeset
  7603
    ]
10399
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7604
! !
6c16947a05ca Allow to load all classes of a project as autoloaded
Stefan Vogel <sv@exept.de>
parents: 10397
diff changeset
  7605
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7606
!ProjectDefinition class methodsFor:'private-prerequisites'!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7607
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7608
addReferencesToClassesFromGlobalsIn:aSetOfClasses to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7609
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7610
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7611
    aSetOfClasses
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7612
	do:[:aClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7613
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7614
		addReferencesToClassesFromGlobalsInMethods:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7615
		    (aClass theNonMetaclass methodDictionary values
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7616
			reject:[:m | m isExtension])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7617
		to:usedClassReasons.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7618
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7619
	    self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7620
		addReferencesToClassesFromGlobalsInMethods:
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7621
		    (aClass theMetaclass methodDictionary values
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7622
			reject:[:m | m isExtension])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7623
		to:usedClassReasons.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7624
	].
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7625
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7626
    "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
  7627
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7628
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7629
addReferencesToClassesFromGlobalsInMethods:someMethods to:usedClassReasons
12371
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7630
    "helper for searchForPreRequisites"
Claus Gittinger <cg@exept.de>
parents: 12370
diff changeset
  7631
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7632
    someMethods do:[:method |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7633
	|resources|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7634
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7635
	resources := method resources.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7636
	(resources isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7637
	or:[ ((resources includesKey:#'ignoreInPrerequisites') not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7638
	      and:[(resources includesKey:#'example') not])])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7639
	ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7640
	    method usedGlobals
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7641
		do:[:global |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7642
		    |globalsName usedClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7643
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7644
		    globalsName := global asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7645
		    usedClass := Smalltalk at:globalsName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7646
		    (usedClass notNil and:[usedClass isClass and:[usedClass isNameSpace not]]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7647
			usedClass name == globalsName ifTrue:[ "/ skip aliases
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7648
			    (usedClassReasons at:usedClass ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7649
				add:(usedClass name, ' - referenced by ', method mclass name,'>>',method selector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7650
			]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7651
		    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7652
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7653
	    ]
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7654
    ]
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7655
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7656
    "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
  7657
    "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
  7658
!
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7659
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7660
addReferencesToExtensionMethodsIn:someClasses to:usedMethodReasons
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7661
    "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
  7662
     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
  7663
     If found, add the extension method and a reason string to usedReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7664
     This should find especially sends to extension methods from libcompat."
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7665
16257
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7666
    |allRealExtensions|
5772bfdc494b class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16256
diff changeset
  7667
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7668
    "/ 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
  7669
    allRealExtensions := Smalltalk allExtensions
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7670
			    select:[:mthd |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7671
				|superClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7672
				superClass := mthd mclass superclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7673
				(superClass isNil or:[superClass whichClassIncludesSelector:mthd selector]) isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7674
			    ].
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7675
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7676
    someClasses do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7677
	eachClass instAndClassMethodsDo:[:method |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7678
	    |resources extensionsSent|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7679
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7680
	    resources := method resources.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7681
	    (resources isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7682
	    or:[ ((resources includesKey:#'ignoreInPrerequisites') not
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7683
		  and:[(resources includesKey:#'example') not])])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7684
	    ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7685
		extensionsSent := allRealExtensions select:[:ext | method messagesSent includes:ext selector].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7686
		extensionsSent do:[:eachExtensionMethod |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7687
		    (usedMethodReasons at:eachExtensionMethod ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7688
			add:(eachExtensionMethod selector, ' - sent by ', method mclass name,'>>',method selector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7689
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7690
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7691
	]
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7692
    ]
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7693
!
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  7694
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7695
allMandatoryPreRequisites
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7696
    "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
  7697
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7698
    ^ self allPreRequisites:#effectiveMandatoryPreRequisites.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7699
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7700
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7701
     stx_libbasic allMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7702
     stx_libbasic2 allMandatoryPreRequisites
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7703
     stx_libview2 allMandatoryPreRequisites
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7704
     stx_libcomp allMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7705
    "
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7706
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7707
    "Created: / 06-06-2016 / 12:19:39 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7708
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7709
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7710
allMandatoryPreRequisitesSorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7711
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7712
	^ self allPreRequisitesSorted:#effectiveMandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7713
    ] on:Error do:[:ex |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7714
	(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
  7715
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7716
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7717
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7718
	^ self allPreRequisitesSorted:#mandatoryPreRequisites
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7719
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7720
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7721
    "Created: / 06-06-2016 / 12:20:40 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7722
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7723
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7724
allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7725
    "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
  7726
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  7727
    ^ self allPreRequisites:#effectivePreRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7728
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7729
    "
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7730
     stx_libbasic allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7731
     stx_libbasic2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7732
     stx_libview2 allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7733
     ubs_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7734
     ubs_application allPreRequisitesSorted
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7735
     exept_expecco_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7736
     exept_expeccoNET_application allPreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7737
     alspa_batch_application allPreRequisites"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7738
    "Modified: / 13-04-2011 / 15:30:45 / sr"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7739
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7740
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7741
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7742
allPreRequisites:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7743
    "answer all (recursive) prerequisite project ids of myself - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7744
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7745
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7746
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7747
    result := self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7748
	allPreRequisites:aSelector withParentDo:[:parent :prereq |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7749
	    prereq = self package ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7750
		Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7751
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7752
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7753
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7754
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7755
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7756
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7757
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7758
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7759
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7760
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7761
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7762
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7763
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7764
     alspa_batch_application allPreRequisites"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7765
    "Modified: / 13-04-2011 / 15:30:45 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7766
    "Modified (comment): / 06-09-2011 / 08:26:06 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7767
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7768
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7769
allPreRequisites:aSelector withParentDo:aBlock
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7770
    "answer all (recursive) prerequisite project ids of myself - in random order.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7771
     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
  7772
     then what ????"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7773
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7774
    |setOfAllPreRequisites toAdd|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7775
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7776
    setOfAllPreRequisites := Set new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7777
    toAdd := Set withAll:(self perform:aSelector).
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7778
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7779
    "is a subproject really a prerequisite??
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7780
     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
  7781
     so the following line has been deleted.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7782
     Unfortunately the meaning of 'subproject' has never been well defined. SV."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7783
"/    toAdd addAll:self effectiveSubProjects.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7784
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7785
    [toAdd notEmpty] whileTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7786
	|aPreRequisiteProjectID def|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7787
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7788
	aPreRequisiteProjectID := toAdd removeFirst.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7789
	(setOfAllPreRequisites includes:aPreRequisiteProjectID) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7790
	    setOfAllPreRequisites add:aPreRequisiteProjectID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7791
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7792
	    def := self definitionClassForPackage:aPreRequisiteProjectID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7793
	    def isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7794
		Transcript showCR:'ProjectDefinition ', aPreRequisiteProjectID, ' is missing - cannot find its preRequisites.'.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7795
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7796
		(def perform:aSelector)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7797
		    select:[:eachSubPreRequisite | (setOfAllPreRequisites includes:eachSubPreRequisite) not]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7798
		    thenDo:[:eachSubPreRequisite |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7799
				Verbose == true ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7800
				    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' requires ', eachSubPreRequisite).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7801
				].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7802
				aBlock value:def value:eachSubPreRequisite.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7803
				toAdd add:eachSubPreRequisite
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
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7806
		"but subprojects of our prerequisites are also prerequisites"
14994
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7807
"/ 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
  7808
"/ 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
  7809
"/ 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
  7810
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7811
"/                def effectiveSubProjects
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7812
"/                    select:[:eachSubSubRequisite | eachSubSubRequisite ~= self package and:[ (setOfAllPreRequisites includes:eachSubSubRequisite) not ]]
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7813
"/                    thenDo:[:eachSubSubRequisite |
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7814
"/                                Verbose == true ifTrue:[
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7815
"/                                    Transcript show:'ProjectDefinition preRequisites: '; showCR:(aPreRequisiteProjectID, ' hasSub ', eachSubSubRequisite).
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7816
"/                                ].
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7817
"/                                aBlock value:def value:eachSubSubRequisite.
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7818
"/                                toAdd add:eachSubSubRequisite
169c11c0ec6f class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14988
diff changeset
  7819
"/                           ].
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7820
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7821
	]
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7822
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7823
    ^ setOfAllPreRequisites.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7824
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7825
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7826
     stx_libbasic allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7827
     stx_libbasic2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7828
     stx_libview2 allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7829
     ubs_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7830
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7831
     exept_expecco_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7832
     exept_expeccoNET_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7833
     alspa_batch_application allPreRequisites
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7834
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7835
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7836
    "Created: / 13-04-2011 / 15:23:21 / sr"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7837
    "Modified: / 20-07-2012 / 18:29:31 / cg"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7838
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7839
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7840
allPreRequisitesSorted
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7841
    [
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7842
	^ self allPreRequisitesSorted:#effectivePreRequisites
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7843
    ] on:Error do:[:ex |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7844
	(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
  7845
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7846
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7847
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7848
	^ self allPreRequisitesSorted:#mandatoryPreRequisites
18178
26a44bf122c7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 18170
diff changeset
  7849
    ].
21509
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7850
a02e65126cb3 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 21451
diff changeset
  7851
    "Modified: / 21-02-2017 / 17:53:35 / cg"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7852
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7853
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7854
allPreRequisitesSorted:aSelector
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7855
    "answer all the prerequisites of this projects sorted in
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7856
     the order they are needed.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7857
     Use this to e.g. compile packages in the dependency order"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7858
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7859
    |allPreRequisites orderedTuples sortedPackages|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7860
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7861
    orderedTuples := OrderedCollection new.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7862
    allPreRequisites := self allPreRequisites:aSelector.
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7863
    allPreRequisites := allPreRequisites collect:[ :e | e asString ].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7864
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7865
    "/JV@2013-03-13: Added asSortedCollection to make the order of packages
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7866
    "/as stable as possible. Makes merging of makefiles a lot easier.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7867
    allPreRequisites asSortedCollection do:[:eachPackageID |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7868
	|def preRequisites|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7869
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7870
	self assert:(eachPackageID ~= self package).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7871
	orderedTuples add:(Array with:eachPackageID with:self package).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7872
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7873
	def := self definitionClassForPackage:eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7874
	def isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7875
	    Transcript showCR:'Warning: no definition class for package: ', eachPackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7876
	    ((self searchForPreRequisites: eachPackageID)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7877
		fold:[:d1 :d2| d1 addAll:d2; yourself]) keys
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7878
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7879
	    preRequisites := def perform:aSelector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7880
	    preRequisites := preRequisites copyWithoutAll:def excludedFromPreRequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7881
	    preRequisites do:[:eachPrerequisitePackageID|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7882
		self assert:(eachPrerequisitePackageID ~= eachPackageID).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7883
		orderedTuples add:(Array with:eachPrerequisitePackageID with:eachPackageID).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7884
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7885
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7886
    ].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7887
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  7888
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7889
	self halt:'something seems to depend upon itself'
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7890
    ].
16540
12807abd853b Use stable topological sort when sorting prerequisites.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16328
diff changeset
  7891
    sortedPackages := orderedTuples topologicalSortStable: true.
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7892
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7893
    "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
  7894
     but they are not added, if not present in the first place"
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7895
    ^ sortedPackages select:[:eachProject| allPreRequisites includes:eachProject]
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7896
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7897
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7898
     stx_libbasic allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7899
     stx_libbasic2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7900
     stx_libwidg2 allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7901
     exept_expecco allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7902
     alspa_batch_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7903
     ubs_application allPreRequisitesSorted
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7904
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7905
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7906
    "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
  7907
    "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
  7908
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7909
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7910
allPreRequisitesWithMandatorySorted
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7911
    "a list of all prerequisites (mandatory and non-mandatory,
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7912
     with the mandatory ones coming first and being sorted by dependency"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7913
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7914
    |pre mandatory|
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7915
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7916
    mandatory := self allMandatoryPreRequisitesSorted.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7917
    pre := OrderedSet withAll:mandatory.
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7918
    self allPreRequisites do:[:each |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7919
	(mandatory includes:each) ifFalse:[ pre add: each ]
19955
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7920
    ].
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7921
    ^ pre
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7922
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7923
    "Created: / 06-06-2016 / 14:30:25 / cg"
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7924
!
823336f6198b #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 19905
diff changeset
  7925
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7926
allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7927
    "answer all (recursive) projects to which I refer - in random order."
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7928
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7929
    |result|
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7930
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  7931
    result := self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7932
	allPreRequisites:#referencedPreRequisites withParentDo:[:parent :prereq |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7933
	    prereq = self package ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7934
		Transcript showCR:('oops: %1 depends on itself' bindWith:prereq)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7935
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7936
	].
14882
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7937
    result remove:self package ifAbsent:[].
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7938
    ^ result.
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7939
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7940
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7941
     stx_libbasic allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7942
     stx_libbasic2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7943
     stx_libview2 allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7944
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7945
     ubs_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7946
     exept_expecco_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7947
     exept_expeccoNET_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7948
     alspa_batch_application allReferences
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7949
    "
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7950
!
24cda9c60389 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14877
diff changeset
  7951
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7952
effectiveMandatoryPreRequisites
15372
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7953
    "get the preRequisites, that are not excluded, which are needed for loading
2cc4ed16ea63 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15371
diff changeset
  7954
     and compiling (i.e. which must be present BEFORE)"
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7955
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7956
    self mandatoryPreRequisites notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7957
	"this is a new subclass - avoid overhead"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7958
	^ OrderedSet new
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7959
	    addAll:self mandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7960
	    "/ addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7961
	    removeAllFoundIn:self excludedFromMandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7962
	    removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7963
	    yourself.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7964
    ].
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7965
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7966
    "I am an old subclass, where #preRequisites returns a plain array"
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7967
    ^ Set new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7968
	addAll:self preRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7969
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7970
	removeAllFoundIn:self excludedFromMandatoryPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7971
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7972
	remove:self package ifAbsent:[];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7973
	yourself.
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7974
!
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7975
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7976
effectivePreRequisites
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7977
    "get the preRequisites, that are not excluded.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7978
     This method appears to be obsolete, because its functionality
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7979
     is now included in #preRequisites.
20527
61e0576ed0fe #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 20522
diff changeset
  7980
     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
  7981
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7982
    self mandatoryPreRequisites notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7983
	"this is a new subclass - avoid overhead"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7984
	^ self preRequisites.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7985
    ].
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7986
15082
b8a34a971138 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15070
diff changeset
  7987
    "I am an old subclass, where #preRequisites returns a plain array"
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7988
    ^ Set new
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7989
	addAll:self preRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7990
	addAll:self includedInPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7991
	removeAllFoundIn:self excludedFromPreRequisites;
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7992
	remove:self package ifAbsent:[];
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  7993
	yourself.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7994
!
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  7995
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7996
searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  7997
    "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
  7998
     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
  7999
15024
492d300c4d50 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15006
diff changeset
  8000
    ^ self searchForPreRequisites:self package
11147
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8001
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8002
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8003
     self searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8004
     stx_libbasic3 searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8005
     bosch_dapasx_Application searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8006
     bosch_dapasx_pav_browser searchForPreRequisites
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8007
    "
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8008
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8009
    "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
  8010
    "Modified: / 07-08-2006 / 21:56:25 / fm"
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8011
    "Modified: / 06-09-2011 / 08:30:43 / cg"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8012
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8013
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8014
searchForPreRequisites: packageId
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  8015
    "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
  8016
     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
  8017
     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
  8018
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  8019
     Referenced prereqs are due to elements accessed at execution time (such as globals)"
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8020
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8021
    ^ self searchForPreRequisites: packageId withSubProjects:false
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8022
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8023
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8024
     self searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8025
     self searchForPreRequisites:#'stx:libwidg3'
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  8026
     self searchForPreRequisites:#'stx:libtool'
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8027
     bosch_dapasx_Application searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8028
     bosch_dapasx_pav_browser searchForPreRequisites
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8029
    "
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8030
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8031
    "Modified: / 07-08-2006 / 21:56:25 / fm"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8032
    "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
  8033
    "Modified: / 06-09-2011 / 08:30:20 / cg"
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8034
!
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8035
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8036
searchForPreRequisites:packageId withSubProjects:withSubProjectsBoolean
14860
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  8037
    "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
  8038
     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
  8039
     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
  8040
     the second entry are the referenced prereqs (required for loading).
b8bc6ecbd1b0 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14859
diff changeset
  8041
     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
  8042
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8043
    |requiredClasses mandatoryClassesForLoadingWithReasons referencedClassesWithReasons
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8044
     ignoredPackages packageExtractionBlock mandatoryPackageReasons referencedPackageReasons referencedMethodsWithReasons|
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8045
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8046
    mandatoryClassesForLoadingWithReasons := Dictionary new.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8047
    referencedClassesWithReasons := Dictionary new.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8048
    referencedMethodsWithReasons := Dictionary new.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8049
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8050
    "my classes are required"
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  8051
    requiredClasses := self searchForClassesWithProject: packageId.
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8052
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8053
    withSubProjectsBoolean ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8054
	"my subproject's classes are required"
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8055
	self effectiveSubProjects do:[:eachProjectName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8056
	    requiredClasses addAll:(self searchForClassesWithProject:eachProjectName asSymbol)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8057
	].
13635
b07e00f94949 searchForPreRequisites:withSubProjects:
Claus Gittinger <cg@exept.de>
parents: 13623
diff changeset
  8058
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8059
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
  8060
    "/ ..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
  8061
    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
  8062
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8063
    "all superclasses of my classes
15098
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  8064
     and my subProject's classes (if required) are mandatory.
18e2c7815f52 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15082
diff changeset
  8065
     All shared pools used by my classes are required as well"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8066
    requiredClasses do:[:cls |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8067
	(self autoloaded_classNames includes:cls name) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8068
	    cls allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8069
		(mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8070
		    add: (eachSuperclass name, ' - superclass of ', cls name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8071
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8072
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8073
	cls sharedPools do:[:eachSharedPool |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8074
	    (mandatoryClassesForLoadingWithReasons at: eachSharedPool ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8075
		add: (eachSharedPool name, ' - shared pool used by ', cls name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8076
	    eachSharedPool allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8077
		(mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8078
		    add: (eachSuperclass name, ' - superclass of shared pool ', eachSharedPool name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8079
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8080
	]
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8081
    ].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8082
    "all classes for which I define extensions are mandatory"
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8083
    self allExtensionClasses do:[:eachExtendedClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8084
	(mandatoryClassesForLoadingWithReasons at:eachExtendedClass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8085
	    add: (eachExtendedClass name, ' - extended').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8086
	eachExtendedClass allSuperclassesDo:[:eachSuperclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8087
	    (mandatoryClassesForLoadingWithReasons at: eachSuperclass ifAbsentPut:[OrderedSet new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8088
		add: (eachSuperclass name, ' - superclass of extended ', eachExtendedClass name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8089
	]
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8090
    ].
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8091
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8092
    "all classes referenced by my classes or my subproject's classes
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8093
     are required. But:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8094
	 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
  8095
	 prerequisites are specified in their package)."
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8096
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8097
    self addReferencesToClassesFromGlobalsIn:requiredClasses to:referencedClassesWithReasons.
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8098
    self addReferencesToClassesFromGlobalsInMethods:(self searchForExtensionsWithProject:self package) to:referencedClassesWithReasons.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8099
    self addReferencesToExtensionMethodsIn:requiredClasses to:referencedMethodsWithReasons.
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8100
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8101
    "now map classes to packages and collect the reasons"
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8102
    packageExtractionBlock :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8103
	[:classesWithReasons|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8104
	    |requiredPackageReasons|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8105
	    requiredPackageReasons := Dictionary new.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8106
	    classesWithReasons keysAndValuesDo:[:usedClass :reasonsPerClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8107
		(requiredPackageReasons at:usedClass package ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8108
				addAll:reasonsPerClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8109
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8110
	    "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
  8111
	    requiredPackageReasons
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8112
	].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8113
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8114
    mandatoryPackageReasons := packageExtractionBlock value:mandatoryClassesForLoadingWithReasons.
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  8115
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8116
    referencedPackageReasons := packageExtractionBlock value:referencedClassesWithReasons.
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8117
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8118
    "and map extension method invocations to packages and collect the reasons"
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8119
    referencedMethodsWithReasons keysAndValuesDo:[:usedMethod :reasonsPerMethod |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8120
	(referencedPackageReasons at:usedMethod package ifAbsentPut:[Set new])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8121
	    addAll:reasonsPerMethod.
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8122
    ].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8123
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8124
    ignoredPackages := Set
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8125
	with:packageId
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8126
	with:PackageId noProjectID.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8127
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8128
    referencedPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  8129
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  8130
    referencedPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | referencedPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8131
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8132
    "don't put classes from subProjects into the required list"
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8133
    ignoredPackages addAll:(self siblingsAreSubProjects
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8134
				ifTrue:[ self searchForSiblingProjects ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8135
				ifFalse:[ self searchForSubProjects ]) asSet.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8136
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8137
    mandatoryPackageReasons removeAllKeys:ignoredPackages ifAbsent:[].
15126
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  8138
    "sort, to avoid differences from one generation to the next one"
5b6a3c2f3c03 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15124
diff changeset
  8139
    mandatoryPackageReasons keysAndValuesDo:[:eachPackageId :eachReasons | mandatoryPackageReasons at:eachPackageId put:eachReasons asSortedCollection].
14843
93eb3b7e0db1 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14834
diff changeset
  8140
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8141
    ^ Array
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8142
	with:mandatoryPackageReasons
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8143
	with:referencedPackageReasons.
14885
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8144
eda1041261e5 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14882
diff changeset
  8145
    "
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8146
     self searchForPreRequisites:#'stx:libwidg3'
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8147
     bosch_dapasx_Application searchForPreRequisites
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8148
     bosch_dapasx_pav_browser searchForPreRequisites
15066
ac1ed59382ed class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15059
diff changeset
  8149
     self searchForPreRequisites:#'stx:goodies/json' withSubProjects:false
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8150
    "
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8151
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8152
    "Modified: / 07-08-2006 / 21:56:25 / fm"
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  8153
    "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
  8154
    "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
  8155
    "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
  8156
    "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
  8157
! !
ea616118c5b6 if method is marked as example- or ignoreInPreRequisite
Claus Gittinger <cg@exept.de>
parents: 11100
diff changeset
  8158
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8159
!ProjectDefinition class methodsFor:'queries'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8160
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8161
allClassNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8162
    ^ self classNamesForWhich:[:nm :attr | true ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8163
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8164
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  8165
allClasses
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8166
    ^ self allClassNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8167
	collect:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8168
	    |cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8169
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8170
	    cls := Smalltalk classNamed:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8171
	    cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8172
		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
  8173
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8174
	    cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8175
	]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8176
	thenSelect:[:cls | cls notNil ].
13559
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  8177
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  8178
    "Created: / 06-08-2011 / 15:47:36 / cg"
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  8179
!
9f9023caaf50 added: #allClasses
Claus Gittinger <cg@exept.de>
parents: 13544
diff changeset
  8180
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8181
allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8182
    "answer the set of classes, which are extended by the package.
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8183
     includes all superclasses of the extended classes"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8184
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8185
    ^ self extensionClassesWithSuperclasses:true
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8186
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8187
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8188
     stx_libboss allExtensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8189
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8190
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8191
    "Created: / 06-09-2011 / 10:15:54 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8192
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8193
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8194
autoloaded_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8195
    "the opposite of compiled class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8196
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8197
    ^ self classNamesForWhich:[:nm :attr | attr notEmptyOrNil and:[attr includes:#autoload]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8198
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8199
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8200
    "Created: / 30-08-2007 / 18:48:09 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8201
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8202
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8203
canHaveExtensions
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8204
    "return true, if this class allows extensions from other packages.
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8205
     Private classes, namespaces and projectDefinitions don't allow this"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8206
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8207
    ^ self isAbstract
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8208
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8209
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8210
     Smalltalk allClasses select:[:each | each canHaveExtensions not]
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8211
    "
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8212
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8213
    "Created: / 30-08-2006 / 15:29:49 / cg"
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8214
!
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8215
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8216
classNames
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8217
    "answer an array containing all the class names of the project's classes"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8218
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8219
    ^ self classNamesAndAttributesAsSpecArray collect:[:entry | entry first].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8220
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8221
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8222
     stx_libhtml classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8223
     stx_libhtml classNamesAndAttributesAsSpecArray
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8224
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8225
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8226
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8227
classNamesForWhich:aBlock
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8228
    "a correponding method with real names is generated in my subclasses"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8229
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8230
    |coll|
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8231
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8232
    coll := OrderedCollection new.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8233
    self classNamesAndAttributesDo:[:nm :attributes |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8234
	(aBlock value:nm value:attributes) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8235
	    coll add:nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8236
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8237
    ].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8238
    ^ coll
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8239
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8240
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8241
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8242
    "Modified: / 17-08-2006 / 20:47:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8243
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8244
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8245
classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8246
    "list my classes.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8247
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8248
     Use #classNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8249
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8250
    ^ self classNames collect:[:nm | Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8251
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8252
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8253
     stx_libbasic3 classNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8254
     stx_libbasic3 classes
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8255
    "
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8256
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8257
    "Modified: / 27-09-2011 / 18:12:33 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8258
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8259
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8260
compiled_classNames
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8261
    "the opposite of autoloaded class names"
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8262
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8263
    ^ self classNamesForWhich:[:nm :attr | attr isEmptyOrNil or:[(attr includes:#autoload) not]].
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8264
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8265
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8266
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8267
    "Modified: / 21-08-2006 / 18:48:31 / cg"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8268
    "Modified (comment): / 05-03-2012 / 12:21:23 / cg"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8269
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8270
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8271
compiled_classNamesForPlatform
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8272
    "answer the classes to be compiled only for the current platformName"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8273
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8274
    ^ self compiled_classNamesForPlatform:OperatingSystem platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8275
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8276
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8277
compiled_classNamesForPlatform:platformName
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8278
    "answer the classes to be compiled only for platformName
17638
a2feeffaea64 osx stuff
Claus Gittinger <cg@exept.de>
parents: 17587
diff changeset
  8279
     platformName is one of #unix, #win32, #vms or #osx (OperatingSystem platformName)"
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8280
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8281
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8282
	classNamesForWhich:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8283
	    (attr includes:#autoload) not and:[attr includes:platformName]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8284
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8285
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8286
    "Created: / 07-08-2006 / 19:02:57 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8287
    "Modified: / 07-08-2006 / 21:25:25 / fm"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8288
    "Modified: / 09-10-2006 / 13:30:08 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8289
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8290
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8291
compiled_classNames_common
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8292
    "classes to be compiled for any platform"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8293
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8294
    ^ self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8295
	classNamesForWhich:[:nm :attr |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8296
	    attr isEmptyOrNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8297
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8298
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8299
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8300
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8301
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8302
compiled_classNames_unix
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8303
    "class, only to be compiled under unix"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8304
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8305
    ^ self compiled_classNamesForPlatform:#unix.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8306
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8307
    "Created: / 18-08-2006 / 13:37:51 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8308
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8309
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8310
compiled_classNames_windows
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8311
    "class, only to be compiled under windows"
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8312
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8313
    ^ self compiled_classNamesForPlatform:#win32.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8314
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8315
    "Created: / 18-08-2006 / 13:37:56 / cg"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8316
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8317
17500
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8318
compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8319
    "list my classes for the current platform.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8320
     Project must be loaded - otherwise an error is reported here.
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8321
     Use #classNames if you are only interested in the names"
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8322
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8323
    ^ self compiled_classNamesForPlatform collect:[:nm |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8324
	    Smalltalk at:nm ifAbsent:[self error:'Missing class: ',nm]]
17500
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8325
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8326
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8327
     stx_libbasic compiled_classesForPlatform
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8328
     stx_libbasic classes
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8329
    "
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8330
!
51a43a7cc842 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17472
diff changeset
  8331
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8332
extensionClasses
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8333
    "answer the set of classes, which are extended by the package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8334
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8335
    ^ self extensionClassesWithSuperclasses:false
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8336
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8337
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8338
     stx_libboss extensionClasses
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8339
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8340
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8341
    "Modified: / 06-09-2011 / 10:21:44 / cg"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8342
!
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8343
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8344
extensionClassesWithSuperclasses:withSuperclassesBoolean
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8345
    "answer the set of classes, which are extended by the package"
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8346
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8347
    |classes|
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8348
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8349
    classes := IdentitySet new.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8350
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8351
    self extensionMethodNames pairWiseDo:[:className :selector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8352
	|mthdCls extendedClass|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8353
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8354
	mthdCls := Smalltalk classNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8355
	(mthdCls notNil and:[mthdCls isLoaded]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8356
	    extendedClass := mthdCls theNonMetaclass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8357
	    (classes includes:extendedClass) ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8358
		withSuperclassesBoolean ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8359
		    extendedClass withAllSuperclassesDo:[:eachClass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8360
			classes add:eachClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8361
		    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8362
		] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8363
		    classes add:extendedClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8364
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8365
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8366
	].
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8367
    ].
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8368
    ^ classes.
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8369
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8370
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8371
	stx_libboss extensionClasses
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8372
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8373
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8374
    "Created: / 06-09-2011 / 10:17:06 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8375
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8376
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8377
extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8378
    "list my extension methods.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8379
     Project must be loaded - otherwise an error is reported here.
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8380
     Use #extensionMethodsNames if you are only interested in the names"
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8381
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8382
    ^ self extensionMethodNames
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8383
	pairWiseCollect:[:className :selector |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8384
	    (Smalltalk classNamed:className) compiledMethodAt:selector.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8385
	].
12368
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8386
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8387
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8388
     stx_libbasic2 extensionMethodNames
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8389
     stx_libbasic2 extensionMethods
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8390
    "
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8391
!
Claus Gittinger <cg@exept.de>
parents: 12364
diff changeset
  8392
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8393
extensionPackages
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8394
    "answer the set of packages, which are extended by this package"
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8395
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8396
    ^ self allExtensionClasses collect:[:eachClass| eachClass package]
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8397
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8398
    "
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8399
	stx_libboss extensionPackages
13636
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8400
    "
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8401
Claus Gittinger <cg@exept.de>
parents: 13635
diff changeset
  8402
    "Modified: / 06-09-2011 / 10:20:47 / cg"
13081
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8403
!
Stefan Vogel <sv@exept.de>
parents: 12994
diff changeset
  8404
10144
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8405
hasAllClassesFullyLoaded
14957
ef9a1d4d38aa class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14952
diff changeset
  8406
    "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
  8407
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8408
    ^ self hasAllClassesLoaded:true
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8409
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8410
    "Created: / 25-10-2006 / 16:08:25 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8411
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8412
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8413
hasAllClassesLoaded
10205
33fadd7b4fd1 *** empty log message ***
Stefan Vogel <sv@exept.de>
parents: 10203
diff changeset
  8414
    "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
  8415
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8416
    ^ self hasAllClassesLoaded:false
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8417
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8418
    "Modified: / 25-10-2006 / 16:08:11 / cg"
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8419
!
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8420
89b932dbdacc *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10140
diff changeset
  8421
hasAllClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8422
    "check if all classes for this platform are present.
12421
67898c88eceb comment/format in: #hasAllClassesLoaded:
Claus Gittinger <cg@exept.de>
parents: 12416
diff changeset
  8423
     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
  8424
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8425
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8426
	    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
  8427
	    loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8428
    and:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8429
	self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8430
	    hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8431
	    loaded:checkIfFullyLoaded ]
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8432
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8433
    "Modified: / 07-11-2006 / 11:47:30 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8434
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8435
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8436
hasAllCompiledClassesFullyLoaded
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8437
    "return true, if all compiled classes are present and loaded"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8438
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8439
    ^ self hasAllCompiledClassesLoaded:true
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8440
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8441
    "Created: / 07-11-2006 / 11:48:02 / cg"
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8442
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8443
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8444
hasAllCompiledClassesLoaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8445
    "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
  8446
     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
  8447
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8448
    ^ (self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8449
	    hasClasses:(self classNamesForWhich:[:nm :attr | attr isEmptyOrNil])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8450
	    loaded:checkIfFullyLoaded)
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8451
    and:[
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8452
       self
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8453
	    hasClasses:(self compiled_classNamesForPlatform:OperatingSystem platformName)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8454
	    loaded:checkIfFullyLoaded
10366
8990764f8911 #compiled_classNamesForPlatform: does not return classes names,
Stefan Vogel <sv@exept.de>
parents: 10350
diff changeset
  8455
    ]
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8456
!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8457
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8458
hasAllExtensionsLoaded
10203
b210e7832fe1 Do not autoload when checking for extensions
Stefan Vogel <sv@exept.de>
parents: 10200
diff changeset
  8459
    "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
  8460
     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
  8461
18988
955c8abf6510 #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 18684
diff changeset
  8462
    (self extensionMethodNames ? #()) pairWiseDo:[:className :selector |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8463
	|cls|
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
	cls := Smalltalk loadedClassNamed:className.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8466
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8467
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8468
		Transcript showCR:(self name,' missing extension class "',className,'".').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8469
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8470
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8471
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8472
	"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
  8473
	(cls isLoaded not or:[(cls compiledMethodAt:selector) isNil]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8474
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8475
		Transcript showCR:(self name,' missing extension method "',className,'>>',selector,'".').
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8476
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8477
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8478
	].
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8479
    ].
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8480
    ^ true.
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8481
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8482
    "Created: / 17-08-2006 / 00:50:01 / cg"
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8483
    "Modified: / 25-10-2006 / 00:01:10 / cg"
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8484
!
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8485
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8486
hasClasses:classNames loaded:checkIfFullyLoaded
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8487
    "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
  8488
     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
  8489
     are not considered"
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8490
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8491
    classNames do:[:eachClassName |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8492
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8493
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8494
	cls := Smalltalk loadedClassNamed:eachClassName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8495
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8496
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8497
	       (self name, ' [info]: missing class: ', eachClassName) infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8498
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8499
	    ^ false
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8500
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8501
	(checkIfFullyLoaded and:[cls isLoaded not]) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8502
	    Verbose ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8503
		(self name,' [info]: unloaded class: ', eachClassName) infoPrintCR.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8504
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8505
	    ^ false.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8506
	].
10369
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8507
    ].
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8508
14baf6dc8ba6 No diag message about "unloaded classes" when loading packages
Stefan Vogel <sv@exept.de>
parents: 10368
diff changeset
  8509
    ^ true
10154
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8510
!
abf2c5f9ba8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 10149
diff changeset
  8511
9906
9efd21c9b1b6 hasExtensions is a bad name (conflicts with the other query)
Claus Gittinger <cg@exept.de>
parents: 9904
diff changeset
  8512
hasExtensionMethods
9850
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8513
    ^ self extensionMethodNames notEmpty
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8514
178f4c0ce2fd dependencies
Claus Gittinger <cg@exept.de>
parents: 9848
diff changeset
  8515
    "Created: / 14-09-2006 / 14:19:35 / cg"
10005
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  8516
!
407485f2a6e0 fix loading:
Stefan Vogel <sv@exept.de>
parents: 9998
diff changeset
  8517
12369
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8518
hasPostLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8519
    "/ true if postLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8520
    ^ (self class whichClassIncludesSelector:#postLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8521
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8522
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8523
hasPostUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8524
    "/ true if postUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8525
    ^ (self class whichClassIncludesSelector:#postUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8526
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8527
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8528
hasPreLoadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8529
    "/ true if preLoadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8530
    ^ (self class whichClassIncludesSelector:#preLoadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8531
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8532
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8533
hasPreUnloadAction
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8534
    "/ true if preUnloadAction has been redefined
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8535
    ^ (self class whichClassIncludesSelector:#preUnloadAction) theNonMetaclass isAbstract not
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8536
!
a369c34ec34e added:5 methods
Claus Gittinger <cg@exept.de>
parents: 12368
diff changeset
  8537
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8538
isAbstract
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8539
    ^ self == ProjectDefinition
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8540
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8541
    "Modified (format): / 20-08-2011 / 22:47:46 / cg"
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8542
!
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8543
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8544
isAutoloaded:aClassOrClassName
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8545
    |className|
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8546
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8547
    className := aClassOrClassName isBehavior
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8548
		    ifTrue:[ aClassOrClassName theNonMetaclass name ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8549
		    ifFalse:[ aClassOrClassName ].
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8550
    ^ self autoloaded_classNames includes:className
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8551
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8552
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8553
     'stx:goodies/soap/xe/tests' asPackageId projectDefinitionClass
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8554
	isAutoloaded:#'SOAP::XeAllTests'
17461
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8555
    "
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8556
!
209706784913 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 17454
diff changeset
  8557
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8558
isFullyLoaded
16160
f0b61d47a3d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16151
diff changeset
  8559
    "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
  8560
     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
  8561
13419
Claus Gittinger <cg@exept.de>
parents: 13411
diff changeset
  8562
    ^ self hasAllCompiledClassesFullyLoaded
13167
658fc3b51af4 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13166
diff changeset
  8563
    and:[self hasAllClassesLoaded and:[self hasAllExtensionsLoaded]]
10140
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8564
154f52dd6821 isLoaded queries fixed
Claus Gittinger <cg@exept.de>
parents: 10132
diff changeset
  8565
    "Created: / 24-10-2006 / 23:52:23 / cg"
13609
b46f07e8e7a3 comment/format in:
Claus Gittinger <cg@exept.de>
parents: 13592
diff changeset
  8566
    "Modified: / 20-08-2011 / 22:47:16 / cg"
12331
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8567
!
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8568
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8569
projectType
02c0437d7817 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12315
diff changeset
  8570
    ^ self subclassResponsibility
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8571
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8572
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8573
reasonForNotSupportedOnPlatform
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8574
    "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
  8575
     (if it is not, i.e. if supportedByPlatform returns false)"
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8576
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8577
    ^ 'not supported by this OS-platform'
23681
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8578
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8579
    "Created: / 07-02-2019 / 14:21:54 / Claus Gittinger"
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8580
!
8f017d9c2ed6 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 23629
diff changeset
  8581
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8582
supportedOnPlatform
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8583
    "answer false, if this package is not suitable for
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8584
     the current platform. The default here returns true.
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8585
     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
  8586
     for the given platform. For example, the OLE package is only
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8587
     usable under windows"
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8588
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8589
    ^ true
16892
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8590
!
8c354250e8a2 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16854
diff changeset
  8591
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8592
whoReferences:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8593
    "answer, which package references directly or indirectly a package defined by aPackageString"
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8594
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8595
    |referrers|
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8596
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8597
    referrers := OrderedCollection new.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8598
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8599
    self allSubclassesDo:[:eachPackageDefinitionClass|
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8600
	(eachPackageDefinitionClass allPreRequisites includes:aPackageString) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8601
	    referrers add:eachPackageDefinitionClass.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8602
	]
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8603
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8604
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8605
    ^ referrers.
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8606
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8607
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8608
      self whoReferences:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8609
      self whoReferences:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8610
      self whoReferences:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8611
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8612
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8613
    "Modified (format): / 02-08-2017 / 18:38:27 / cg"
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8614
!
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8615
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8616
whoReferencesSorted:aPackageString
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8617
    "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
  8618
     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
  8619
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8620
    |referers orderedTuples sortedPackages|
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8621
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8622
    referers := self whoReferences:aPackageString.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8623
    orderedTuples := OrderedCollection new.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8624
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8625
    referers do:[:eachProjectDefinition |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8626
	|preRequisites|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8627
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8628
	preRequisites := eachProjectDefinition effectivePreRequisites.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8629
	preRequisites do:[:eachPrerequisitePackageID|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8630
	    |eachPrerequisitePackage|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8631
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8632
	    eachPrerequisitePackage := self definitionClassForPackage:eachPrerequisitePackageID.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8633
	    (referers includes:eachPrerequisitePackage) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8634
		orderedTuples add:(Array with:eachPrerequisitePackage with:eachProjectDefinition).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8635
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8636
	].
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8637
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8638
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8639
    (orderedTuples contains:[:el | el first = el second]) ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8640
	self halt:'something seems to depend upon itself'
16812
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8641
    ].
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8642
    sortedPackages := orderedTuples topologicalSortStable: true.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8643
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8644
    ^ sortedPackages.
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8645
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8646
    "
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8647
      self whoReferencesSorted:'stx:libview3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8648
      self whoReferencesSorted:'stx:libwidg3'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8649
      self whoReferencesSorted:'stx:libbasic'
10e32d78fa92 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 16802
diff changeset
  8650
    "
22160
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8651
fbfa8355fc79 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21764
diff changeset
  8652
    "Modified (comment): / 02-08-2017 / 18:38:03 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8653
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8654
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8655
!ProjectDefinition class methodsFor:'queries-privacy'!
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8656
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8657
showClassDocumentationOf:aClass
12198
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8658
    "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
  8659
     or hidden.
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8660
     (used for expecco, to suppress documentation of workflow- and expecco classes
f3f15cc6a32e changed: #showClassDocumentationOf:
Claus Gittinger <cg@exept.de>
parents: 12192
diff changeset
  8661
     in the expecco-class browser)"
10774
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8662
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8663
    ^ true
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8664
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8665
    "Created: / 05-11-2007 / 16:44:16 / cg"
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8666
! !
c99a6da52fe4 html-doc privacy
Claus Gittinger <cg@exept.de>
parents: 10745
diff changeset
  8667
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8668
!ProjectDefinition class methodsFor:'sanity checks'!
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8669
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8670
validateDescription
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8671
    "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
  8672
     called before checking in build support files.
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8673
     Somewhat obsolete: use the ProjectChecker, which does more checks"
13808
0f696e30344a comment
Claus Gittinger <cg@exept.de>
parents: 13798
diff changeset
  8674
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8675
    |emptyProjects nonProjects emptyOrNonProjects classesInImage
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8676
     classesInDescription onlyInImage onlyInDescription missingPools myPackage|
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8677
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8678
    emptyProjects := Set withAll:self effectiveSubProjects.
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8679
    Smalltalk allClassesDo:[:cls |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8680
	emptyProjects remove:(cls package) ifAbsent:[].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8681
    ].
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8682
    nonProjects := self effectiveSubProjects select:[:p |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8683
		    (self definitionClassForPackage: p) isNil
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8684
		   ].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8685
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8686
    emptyOrNonProjects := Set withAll:emptyProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8687
    emptyOrNonProjects addAll:nonProjects.
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8688
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8689
    emptyOrNonProjects notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8690
	(Dialog
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8691
	    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
  8692
		    , ((emptyOrNonProjects
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8693
			    asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8694
				collect:[:p | p allBold])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8695
				asStringWith:'\    ')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8696
		    , '\\Continue ?') withCRs
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8697
	    yesLabel:'OK' noLabel:'Cancel')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8698
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8699
	    AbortSignal raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8700
	].
9956
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8701
    ].
7c5d9f3ae8ea *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9946
diff changeset
  8702
14510
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8703
    myPackage := self package.
5274ba4185d8 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14361
diff changeset
  8704
    classesInImage := Smalltalk allClasses select:[:cls | (cls package == myPackage) and:[cls isPrivate not]].
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8705
    "/ classesInDescription := self classes asIdentitySet.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8706
    classesInDescription := IdentitySet new.
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8707
    ((self compiled_classNamesForPlatform:(OperatingSystem platformName))
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8708
    , (self compiled_classNames_common)
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8709
    , (self autoloaded_classNames)) do:[:nm |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8710
	|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8711
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8712
	cls := Smalltalk at:nm asSymbol.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8713
	cls isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8714
	    (self autoloaded_classNames includes:nm) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8715
		Transcript showCR:'missing autoloaded class: ',nm.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8716
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8717
		self proceedableError:('missing class: ',nm).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8718
	    ]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8719
	] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8720
	    classesInDescription add:cls.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8721
	]
13728
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8722
    ].
Claus Gittinger <cg@exept.de>
parents: 13723
diff changeset
  8723
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8724
    missingPools := Set new.
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8725
    classesInDescription do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8726
	eachClass sharedPoolNames do:[:eachPoolName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8727
	    |pool|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8728
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8729
	    pool := eachClass nameSpace classNamed:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8730
	    pool isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8731
		eachClass nameSpace ~~ Smalltalk ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8732
		    pool := Smalltalk classNamed:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8733
		]
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8734
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8735
	    pool isNil ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8736
		Transcript showCR:'missing pool: ',eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8737
		missingPools add:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8738
	    ] ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8739
		pool isSharedPool ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8740
		    Transcript showCR:'not a shared pool: ',eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8741
		    missingPools add:eachPoolName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8742
		].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8743
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8744
	].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8745
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8746
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8747
    missingPools notEmpty ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8748
	(Dialog
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8749
	    confirm:('The following sharedpools are non-existent, or not pools:\\    '
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8750
		    , ((missingPools
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8751
			    asSortedCollection
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8752
				collect:[:p | p allBold])
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8753
				asStringWith:'\    ')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8754
		    , '\\Continue ?') withCRs
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8755
	    yesLabel:'OK' noLabel:'Cancel')
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8756
	ifFalse:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8757
	    AbortOperationRequest raise
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8758
	].
13809
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8759
    ].
da77d6869c9c changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13808
diff changeset
  8760
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8761
"/ also found by ProjectChecker...
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8762
    classesInImage ~= classesInDescription ifTrue:[
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8763
	onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8764
	onlyInImage notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8765
	    Transcript show:self name; show:': only in image: '; showCR:onlyInImage
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8766
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8767
	onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8768
	onlyInDescription notEmpty ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8769
	    Transcript show:self name; show:': only in description: '; showCR:onlyInDescription
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8770
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8771
	(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
  8772
	    AbortOperationRequest raiseRequest
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8773
	]
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8774
    ].
14981
7363807607d7 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14978
diff changeset
  8775
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8776
"/    self validateOrderOfClasses
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8777
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8778
    "
15395
780b606d17c0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 15390
diff changeset
  8779
     exept_expecco_application validateDescription
13694
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8780
     squeak_vmMaker validateDescription
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8781
    "
ff3118874df3 changed: #validateDescription
Claus Gittinger <cg@exept.de>
parents: 13692
diff changeset
  8782
14045
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8783
    "Modified: / 06-03-2012 / 11:31:37 / cg"
21259
7df4e7788299 #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 21236
diff changeset
  8784
    "Modified: / 17-01-2017 / 16:33:56 / stefan"
23013
7974b3297570 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 22971
diff changeset
  8785
    "Modified: / 24-05-2018 / 21:05:15 / Claus Gittinger"
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8786
!
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8787
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8788
validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8789
    "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
  8790
     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
  8791
     and superclasses must be compiled before subclasses (for the header files).
2a6a76d7b7f6 changed:
Claus Gittinger <cg@exept.de>
parents: 14042
diff changeset
  8792
     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
  8793
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8794
    |classesInDescriptionInOrder classesInProject already|
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8795
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8796
    classesInDescriptionInOrder := OrderedCollection new.
16911
e8a8231b0be1 class: ProjectDefinition
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 16894
diff changeset
  8797
    classesInDescriptionInOrder :=
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8798
	self compiled_classNames
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8799
	    collect:[:eachName |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8800
		|cls|
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8801
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8802
		cls := Smalltalk at:eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8803
		self assert:cls notNil message:'missing class: ',eachName.
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8804
		cls
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8805
	    ].
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8806
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8807
    classesInProject := classesInDescriptionInOrder asSet.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8808
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8809
    already := Set new.
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8810
    classesInDescriptionInOrder do:[:eachClass |
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8811
	eachClass allSuperclassesDo:[:superclass |
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8812
	    (classesInProject includes:superclass) ifTrue:[
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8813
		"/ if in the set, it must have been already listed
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8814
		self
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8815
		    assert:(already includes:superclass)
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8816
		    message:('superclass "%1" not compiled before "%2"'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8817
				    bindWith:superclass name
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8818
				    with:eachClass name).
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8819
	    ].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8820
	].
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8821
	already add:eachClass.
14042
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8822
    ].
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8823
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8824
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8825
     stx_goodies_refactoryBrowser_lint validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8826
     squeak_vmMaker validateOrderOfClasses
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8827
    "
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8828
05b7b61d7e59 added: #validateOrderOfClasses
Claus Gittinger <cg@exept.de>
parents: 14021
diff changeset
  8829
    "Created: / 05-03-2012 / 12:18:45 / cg"
9726
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8830
! !
305dc3397c51 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9714
diff changeset
  8831
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8832
!ProjectDefinition class methodsFor:'testing'!
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8833
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8834
isApplicationDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8835
    "true iff an application-package (i.e. not a library).
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8836
     Applications have a main and startup for standalon start"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8837
     
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8838
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8839
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8840
    "Created: / 23-08-2006 / 15:17:32 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8841
    "Modified: / 20-09-2006 / 14:59:56 / cg"
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8842
!
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8843
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8844
isConsoleApplication
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8845
    "Used with WIN32 only (i.e. affects bc.mak).
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8846
     Return true, if this is a console application.
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8847
     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
  8848
     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
  8849
     command line window."
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8850
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8851
    ^ false
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8852
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8853
    "Created: / 20-09-2006 / 14:59:49 / cg"
23051
52c5ea88977c #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23013
diff changeset
  8854
    "Modified (comment): / 06-06-2018 / 15:17:21 / Claus Gittinger"
12309
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8855
!
f51aaafd2131 added: #isConsoleApplication
Claus Gittinger <cg@exept.de>
parents: 12305
diff changeset
  8856
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8857
isFolderForProjectsDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8858
    "true iff an 'empty' project which only holds subprojects,
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8859
     but no own classes. Examples are stx, exept, etc."
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8860
16682
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8861
    ^ false
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8862
!
661c3ff3c3dd class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 16640
diff changeset
  8863
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8864
isGUIApplication
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8865
    "true iff a GUI application.
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8866
     Will include startup code to open a display"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8867
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8868
    ^ false
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8869
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8870
    "Created: / 20-09-2006 / 14:59:49 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8871
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8872
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8873
isLibraryDefinition
23294
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8874
    "true iff a library.
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8875
     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
  8876
     linked with an application"
d4171f508b2e #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 23293
diff changeset
  8877
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8878
    ^ false
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8879
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8880
    "Created: / 23-08-2006 / 15:17:46 / cg"
9983
f128c0a46573 preRequisite generation
Claus Gittinger <cg@exept.de>
parents: 9979
diff changeset
  8881
    "Modified: / 20-09-2006 / 15:00:00 / cg"
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8882
!
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8883
23866
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8884
isPluginDefinition
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8885
    ^ false
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8886
!
75b931b9ed4e #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 23865
diff changeset
  8887
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8888
isProjectDefinition
9664
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8889
    "concrete i.e. not abstract"
f2cda0054b21 boss stuff separated
Claus Gittinger <cg@exept.de>
parents: 9634
diff changeset
  8890
14978
e94ebaf2b920 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 14960
diff changeset
  8891
    ^ self isAbstract not
9627
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8892
685786ff2bdf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9625
diff changeset
  8893
    "Created: / 10-08-2006 / 16:24:02 / cg"
13285
bd6b2a49c8af comment
Claus Gittinger <cg@exept.de>
parents: 13251
diff changeset
  8894
    "Modified: / 08-02-2011 / 10:03:49 / cg"
9585
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8895
! !
b26c46ba7c2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9584
diff changeset
  8896
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8897
!ProjectDefinition::AbbrevEntry methodsFor:'accessing'!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8898
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8899
category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8900
    ^ category
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8901
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8902
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8903
className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8904
    ^ className
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8905
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8906
13695
Claus Gittinger <cg@exept.de>
parents: 13694
diff changeset
  8907
className:classNameArg fileName:fileNameArg category:categoryArg numClassInstVars:numClassInstVarsArg
13592
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8908
    className := classNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8909
    fileName := fileNameArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8910
    category := categoryArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8911
    numClassInstVars := numClassInstVarsArg.
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8912
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8913
    "Created: / 18-08-2011 / 14:18:30 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8914
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8915
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8916
fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8917
    ^ fileName
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8918
!
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8919
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8920
numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8921
    ^ numClassInstVars
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8922
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8923
    "Created: / 18-08-2011 / 14:18:37 / cg"
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8924
! !
11fec330be43 class definition
Claus Gittinger <cg@exept.de>
parents: 13568
diff changeset
  8925
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8926
!ProjectDefinition::ApplicationDocumentTypeDescription class methodsFor:'documentation'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8927
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8928
documentation
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8929
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8930
    for deployment, some systems can make use of additional information
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8931
    on which documents are handled by the application.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8932
    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
  8933
    If the deployed app can/should handle this, redefine the
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8934
    applicatinDocumentTypeDescriptions / applicatinDocumentTypeDescriptionsOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8935
    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
  8936
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8937
    [author:]
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8938
	cg
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8939
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8940
    For example:
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8941
	mimeType:  'application/x-expecco-testsuite
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8942
	extension: 'ets'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8943
	typeName:  'expecco test suite'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8944
	iconFileWindows:  'expeccoSuite.ico'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8945
	iconFileOSX:      'expeccoSuite.icns'
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8946
	roleOSX:          'Editor'
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8947
"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8948
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8949
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8950
!ProjectDefinition::ApplicationDocumentTypeDescription methodsFor:'accessing'!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8951
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8952
extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8953
    "the extension of the document"
23124
d02eecc4b7b1 Fix bad variable name
Stefan Vogel <sv@exept.de>
parents: 23123
diff changeset
  8954
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8955
    ^ extension
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8956
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8957
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8958
extension:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8959
    "the extension of the document"
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8960
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8961
    extension := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8962
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8963
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8964
iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8965
    ^ iconFileLinux
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8966
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8967
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8968
iconFileLinux:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8969
    iconFileLinux := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8970
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8971
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8972
iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8973
    ^ iconFileOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8974
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8975
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8976
iconFileOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8977
    iconFileOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8978
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8979
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8980
iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8981
    ^ iconFileWindows
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8982
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8983
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8984
iconFileWindows:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8985
    iconFileWindows := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8986
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8987
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8988
mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8989
    ^ mimeType
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8990
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8991
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8992
mimeType:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8993
    mimeType := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8994
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8995
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8996
roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8997
    ^ roleOSX
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8998
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  8999
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9000
roleOSX:aString
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9001
    roleOSX := aString.
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9002
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9003
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9004
typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9005
    "something like 'foo Document';
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9006
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9007
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9008
    ^ typeName
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9009
!
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9010
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  9011
typeName:aString
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  9012
    "aString like 'foo Document';
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9013
     eg. 'expecco test suite', 'expecco log file', etc."
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9014
21562
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  9015
    typeName := aString.
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  9016
1218cac5c5c5 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 21509
diff changeset
  9017
    "Modified (comment): / 24-02-2017 / 09:37:26 / cg"
20567
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9018
! !
63266d711ad0 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 20564
diff changeset
  9019
9569
b0bf179c9bf5 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9559
diff changeset
  9020
!ProjectDefinition class methodsFor:'documentation'!
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  9021
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  9022
version
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  9023
    ^ '$Header$'
13610
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  9024
!
ec7ea708ebd2 changed: #installAutoloadedClasses
Claus Gittinger <cg@exept.de>
parents: 13609
diff changeset
  9025
12086
9db1452d0645 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 12039
diff changeset
  9026
version_CVS
18477
02e08c7c3be0 class: ProjectDefinition
Stefan Vogel <sv@exept.de>
parents: 18428
diff changeset
  9027
    ^ '$Header$'
13411
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  9028
!
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  9029
9f50c450bdf9 Jan's changes
vrany
parents: 13336
diff changeset
  9030
version_SVN
15221
4d047c57a287 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 15216
diff changeset
  9031
    ^ '$ Id: ProjectDefinition.st 10645 2011-06-09 15:28:45Z vranyj1  $'
9536
3a835fa7e38b initial checkin
fm
parents:
diff changeset
  9032
! !
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  9033
14642
415f684f8808 class: ProjectDefinition
Claus Gittinger <cg@exept.de>
parents: 14586
diff changeset
  9034
9714
c7c36a28cc0a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9688
diff changeset
  9035
ProjectDefinition initialize!